Skip to content

Commit 138807a

Browse files
authored
test: add test for vitest browser mode (#235)
- Enable cli e2e test on Linux in ci and skip failed tests - Add a test for caching vitest browser mode, stably reproducing the issue of https://github.com/voidzero-dev/vibe-dashboard/actions/runs/18532354385/job/52818262992. The added vitest browser mode test will be fixed and enabled in #234
1 parent 2d9277f commit 138807a

16 files changed

Lines changed: 320 additions & 10 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ jobs:
122122
fail-fast: false
123123
matrix:
124124
include:
125-
# - os: windows-latest
125+
- os: ubuntu-latest
126126
- os: namespace-profile-mac-default
127127
runs-on: ${{ matrix.os }}
128128
steps:
@@ -150,6 +150,9 @@ jobs:
150150
- name: Run CLI lint
151151
run: pnpm lint
152152

153+
- name: Install Playwright browsers
154+
run: pnpx playwright install chromium
155+
153156
- name: Run CLI E2E tests
154157
run: |
155158
pnpm test

packages/cli/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@
4545
"devDependencies": {
4646
"@napi-rs/cli": "catalog:",
4747
"@oxc-node/core": "catalog:",
48+
"@vitest/browser": "catalog:",
4849
"@voidzero-dev/vite-plus-tools": "workspace:",
50+
"playwright": "catalog:",
4951
"rolldown": "catalog:"
5052
},
5153
"napi": {

packages/cli/snap-tests/fingerprint-ignore-test/steps.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"ignoredPlatforms": ["linux"],
23
"env": {
34
"VITE_DISABLE_AUTO_INSTALL": "1"
45
},
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{
2+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
> vite test
2+
3+
RUN v<semver> <cwd>
4+
5+
✓ |chromium| src/foo.test.js (1 test) <variable>ms
6+
7+
Test Files 1 passed (1)
8+
Tests 1 passed (1)
9+
Start at <date>
10+
Duration <variable>ms (transform <variable>ms, setup <variable>ms, collect <variable>ms, tests <variable>ms, environment <variable>ms, prepare <variable>ms)
11+
12+
13+
14+
> echo //comment >> src/foo.js
15+
> vite test
16+
✗ cache miss: content of input 'src/foo.js' changed, executing
17+
18+
RUN v<semver> <cwd>
19+
20+
✓ |chromium| src/foo.test.js (1 test) <variable>ms
21+
22+
Test Files 1 passed (1)
23+
Tests 1 passed (1)
24+
Start at <date>
25+
Duration <variable>ms (transform <variable>ms, setup <variable>ms, collect <variable>ms, tests <variable>ms, environment <variable>ms, prepare <variable>ms)
26+
27+
28+
29+
> echo //comment >> src/bar.js
30+
> vite test
31+
✓ cache hit, replaying
32+
33+
RUN v<semver> <cwd>
34+
35+
✓ |chromium| src/foo.test.js (1 test) <variable>ms
36+
37+
Test Files 1 passed (1)
38+
Tests 1 passed (1)
39+
Start at <date>
40+
Duration <variable>ms (transform <variable>ms, setup <variable>ms, collect <variable>ms, tests <variable>ms, environment <variable>ms, prepare <variable>ms)
41+
42+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'bar';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'foo';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { describe, expect, it } from 'vitest';
2+
import foo from './foo';
3+
4+
describe('foo', () => {
5+
it('should equal "foo"', () => {
6+
expect(foo).toBe('foo');
7+
});
8+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"ignoredPlatforms": ["linux"],
3+
"env": {
4+
"VITE_DISABLE_AUTO_INSTALL": "1"
5+
},
6+
"commands": [
7+
"vite test",
8+
"echo //comment >> src/foo.js",
9+
"vite test",
10+
"echo //comment >> src/bar.js",
11+
"vite test"
12+
]
13+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// import { defineProject } from 'vitest/config';
2+
3+
export default {
4+
test: {
5+
browser: {
6+
enabled: true,
7+
provider: 'playwright',
8+
headless: true,
9+
instances: [
10+
{
11+
browser: 'chromium',
12+
},
13+
],
14+
},
15+
},
16+
};

0 commit comments

Comments
 (0)