From 4731442834408322aefbf89b991f10298e9e3f79 Mon Sep 17 00:00:00 2001 From: Tim Shamilov Date: Sun, 3 Dec 2023 12:25:11 -0500 Subject: [PATCH] browser groups --- .github/workflows/tests-ci.yml | 22 +++++++-------- packages/agent/web-test-runner.config.cjs | 27 +++++++++++++++++++ packages/api/web-test-runner.config.cjs | 26 ++++++++++++++++++ packages/common/web-test-runner.config.cjs | 26 ++++++++++++++++++ .../credentials/web-test-runner.config.cjs | 26 ++++++++++++++++++ packages/crypto/web-test-runner.config.cjs | 26 ++++++++++++++++++ packages/dids/web-test-runner.config.cjs | 26 ++++++++++++++++++ .../identity-agent/web-test-runner.config.cjs | 26 ++++++++++++++++++ .../proxy-agent/web-test-runner.config.cjs | 26 ++++++++++++++++++ .../user-agent/web-test-runner.config.cjs | 26 ++++++++++++++++++ 10 files changed, 246 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests-ci.yml b/.github/workflows/tests-ci.yml index 3bf4a3179..58d588d41 100644 --- a/.github/workflows/tests-ci.yml +++ b/.github/workflows/tests-ci.yml @@ -85,17 +85,17 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} test-with-browsers: - name: test-with-browsers (group ${{ matrix.group }}) + name: test-with-browsers (${{ matrix.browser }}) # Run browser tests using macOS so that WebKit tests don't fail under a Linux environment runs-on: macos-latest strategy: - # parallelism strategy: agent takes as long as roughly all other pkgs combined. matrix: - include: - - group: "A" - packages: "--workspace packages/agent --workspace packages/dids " - - group: "B" - packages: "--workspace packages/common --workspace packages/crypto --workspace packages/credentials --workspace packages/user-agent --workspace packages/proxy-agent --workspace packages/api --workspace packages/identity-agent" + browser: ['--group chromium', ' --group firefox', '--group webkit'] + # include: + # - group: "A" + # packages: "--workspace packages/agent" + # - group: "B" + # packages: "--workspace packages/common --workspace packages/crypto --workspace packages/dids --workspace packages/credentials --workspace packages/user-agent --workspace packages/proxy-agent --workspace packages/api --workspace packages/identity-agent" steps: - name: Checkout source uses: actions/checkout@v4 @@ -139,16 +139,16 @@ jobs: - name: Build esm run: npm run build:esm --ws - - name: Build browser for matrix ${{ matrix.group }} - run: npm run build:browser ${{ matrix.packages }} + - name: Build browser bundles + run: npm run build:browser --ws - name: Run dwn-server (background) run: | node node_modules/@web5/dwn-server/dist/esm/src/main.js & echo "DWN_SERVER_BACKGROUND_PROCESS=$!" >> $GITHUB_ENV - - name: Run tests for matrix ${{ matrix.group }} - run: npm run test:browser ${{ matrix.packages }} + - name: Run tests for matrix ${{ matrix.browser }} + run: npm run test:browser --ws -- ${{ matrix.browser }} - name: Terminate dwn-server run: kill $DWN_SERVER_BACKGROUND_PROCESS || true diff --git a/packages/agent/web-test-runner.config.cjs b/packages/agent/web-test-runner.config.cjs index 1e3a26457..d76784c3d 100644 --- a/packages/agent/web-test-runner.config.cjs +++ b/packages/agent/web-test-runner.config.cjs @@ -27,4 +27,31 @@ module.exports = { timeout: '30000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; + diff --git a/packages/api/web-test-runner.config.cjs b/packages/api/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/api/web-test-runner.config.cjs +++ b/packages/api/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/common/web-test-runner.config.cjs b/packages/common/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/common/web-test-runner.config.cjs +++ b/packages/common/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/credentials/web-test-runner.config.cjs b/packages/credentials/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/credentials/web-test-runner.config.cjs +++ b/packages/credentials/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/crypto/web-test-runner.config.cjs b/packages/crypto/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/crypto/web-test-runner.config.cjs +++ b/packages/crypto/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/dids/web-test-runner.config.cjs b/packages/dids/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/dids/web-test-runner.config.cjs +++ b/packages/dids/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/identity-agent/web-test-runner.config.cjs b/packages/identity-agent/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/identity-agent/web-test-runner.config.cjs +++ b/packages/identity-agent/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/proxy-agent/web-test-runner.config.cjs b/packages/proxy-agent/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/proxy-agent/web-test-runner.config.cjs +++ b/packages/proxy-agent/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], }; diff --git a/packages/user-agent/web-test-runner.config.cjs b/packages/user-agent/web-test-runner.config.cjs index e5adb980d..da250e811 100644 --- a/packages/user-agent/web-test-runner.config.cjs +++ b/packages/user-agent/web-test-runner.config.cjs @@ -27,4 +27,30 @@ module.exports = { timeout: '15000', }, }, + groups: [ + { + name : 'chromium', + browsers : [ + playwrightLauncher({ + product: 'chromium', + }), + ], + }, + { + name : 'firefox', + browsers : [ + playwrightLauncher({ + product: 'firefox', + }), + ], + }, + { + name : 'webkit', + browsers : [ + playwrightLauncher({ + product: 'webkit', + }), + ], + }, + ], };