Skip to content

Commit 28dd3e6

Browse files
authored
test: Test browser and more Node.js versions (#16)
1 parent bffa6fe commit 28dd3e6

File tree

105 files changed

+436
-29
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+436
-29
lines changed

.github/workflows/CI.yml

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,66 @@ on:
77

88
jobs:
99
build:
10-
name: Build & Test
10+
name: Build
1111
runs-on: ubuntu-latest
1212
steps:
1313
- uses: actions/checkout@v4
1414
- uses: actions/setup-node@v4
1515
with:
16+
cache: yarn
1617
node-version-file: 'package.json'
1718
- name: Install
1819
run: yarn install
1920
- name: Lint
2021
run: yarn lint
2122
- name: Build
2223
run: yarn build
23-
- name: Test
24-
run: yarn test
24+
- name: Upload Artifacts
25+
uses: actions/upload-artifact@v4
26+
with:
27+
name: ${{ github.sha }}
28+
path: ./packages/**/dist/**/*
29+
30+
test_node:
31+
name: Test Node.js v${{ matrix.version }}
32+
runs-on: ubuntu-latest
33+
needs: build
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
version: [18, 20, 22]
38+
steps:
39+
- uses: actions/checkout@v4
40+
- uses: actions/setup-node@v4
41+
with:
42+
cache: yarn
43+
node-version: ${{ matrix.version }}
44+
- name: Install
45+
run: yarn install
46+
- name: Download Artifacts
47+
uses: actions/download-artifact@v4
48+
with:
49+
path: ./packages
50+
merge-multiple: true
51+
- name: Run Unit Tests
52+
run: yarn test:node
53+
54+
test_browser:
55+
name: Test Browser
56+
runs-on: macos-latest
57+
needs: build
58+
steps:
59+
- uses: actions/checkout@v4
60+
- uses: actions/setup-node@v4
61+
with:
62+
cache: yarn
63+
node-version-file: 'package.json'
64+
- name: Install
65+
run: yarn install
66+
- name: Download Artifacts
67+
uses: actions/download-artifact@v4
68+
with:
69+
path: ./packages
70+
merge-multiple: true
71+
- name: Run Unit Tests
72+
run: yarn playwright install && yarn test:browser

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ node_modules/
22
dist/
33
.DS_Store
44
.parcel-cache/
5+
test-results/

package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
"private": true,
66
"scripts": {
77
"build": "rollup --config rollup.config.mjs",
8-
"test": "vitest run ./test/src/**/*.test.ts",
8+
"test": "yarn test:node && yarn test:browser",
9+
"test:node": "cd test/node && yarn test",
10+
"test:browser": "cd test/browser && yarn test",
911
"lint": "biome check",
1012
"fix": "biome check --write"
1113
},
@@ -15,18 +17,17 @@
1517
"@rollup/plugin-typescript": "^12.1.0",
1618
"@rspack/cli": "^1.0.8",
1719
"@rspack/core": "^1.0.8",
18-
"@types/node": "^20.0.0",
20+
"@types/node": "^18.0.0",
1921
"esbuild": "^0.24.0",
2022
"parcel": "^2.12.0",
2123
"rolldown": "^0.13.2",
2224
"rollup": "^4.22.5",
2325
"typescript": "^5.6.2",
2426
"vite": "^5.4.8",
25-
"vitest": "^2.1.1",
2627
"webpack": "^5.95.0",
2728
"webpack-cli": "^5.1.4"
2829
},
29-
"workspaces": ["packages/*", "test"],
30+
"workspaces": ["packages/*", "test/*"],
3031
"volta": {
3132
"node": "20.18.0",
3233
"yarn": "1.22.22"

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"debugids": "./cli.js"
77
},
88
"engines": {
9-
"node": ">=14"
9+
"node": ">=18"
1010
},
1111
"dependencies": {
1212
"@debugids/common": "0.0.1"

test/browser/package.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "@debugids/integration-tests-browser",
3+
"version": "0.0.1",
4+
"private": true,
5+
"scripts": {
6+
"test": "yarn build && playwright test",
7+
"build": "vite build --target esnext",
8+
"server": "http-server ./dist --port 8080"
9+
},
10+
"dependencies": {
11+
"@sentry/browser": "^8.33.1",
12+
"@debugids/browser": "0.0.1",
13+
"@debugids/cli": "0.0.1"
14+
},
15+
"devDependencies": {
16+
"@playwright/test": "^1.48.0",
17+
"http-server": "^14.1.1"
18+
}
19+
}

test/browser/playwright.config.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { defineConfig, devices } from '@playwright/test';
2+
3+
export default defineConfig({
4+
testDir: './tests',
5+
fullyParallel: true,
6+
forbidOnly: !!process.env.CI,
7+
retries: process.env.CI ? 2 : 0,
8+
workers: process.env.CI ? 1 : undefined,
9+
reporter: process.env.CI ? 'github' : 'list',
10+
use: {
11+
baseURL: 'http://127.0.0.1:8080',
12+
trace: 'on-first-retry',
13+
},
14+
projects: [
15+
{
16+
name: 'chromium',
17+
use: { ...devices['Desktop Chrome'] },
18+
},
19+
20+
{
21+
name: 'firefox',
22+
use: { ...devices['Desktop Firefox'] },
23+
},
24+
25+
{
26+
name: 'webkit',
27+
use: { ...devices['Desktop Safari'] },
28+
},
29+
],
30+
webServer: {
31+
command: 'yarn server',
32+
url: 'http://127.0.0.1:8080',
33+
reuseExistingServer: false,
34+
},
35+
});

test/browser/src/first.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export async function doWork() {
2+
const { doWork } = await import('./second.js');
3+
await doWork();
4+
}

test/browser/src/main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import('./first.js').then(async ({ doWork }) => {
2+
await doWork();
3+
});

test/browser/src/second.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export async function doWork() {
2+
const { doWork } = await import('./third.js');
3+
await doWork();
4+
}

0 commit comments

Comments
 (0)