From cf5401c32ba90631532754aafb4f2cdfb574f2f5 Mon Sep 17 00:00:00 2001 From: tanhauhau Date: Sun, 1 Aug 2021 10:24:34 +0800 Subject: [PATCH] split out unit test and browser test --- .github/workflows/browser-test.yml | 20 ++++++++++++++++++++ package.json | 3 ++- test/test.ts | 13 ++++++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/browser-test.yml diff --git a/.github/workflows/browser-test.yml b/.github/workflows/browser-test.yml new file mode 100644 index 0000000000..701e74c8c4 --- /dev/null +++ b/.github/workflows/browser-test.yml @@ -0,0 +1,20 @@ +name: Browser Test +on: [push, pull_request] +jobs: + Tests: + runs-on: ${{ matrix.os }} + timeout-minutes: 15 + strategy: + matrix: + node-version: [8, 10, 12, 14] + os: [ubuntu-latest, windows-latest, macOS-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: npm + - run: npm install + - run: npm test:browser + env: + CI: true diff --git a/package.json b/package.json index 0d39beb8f0..cf78a7814b 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,8 @@ }, "types": "types/runtime/index.d.ts", "scripts": { - "test": "mocha", + "test": "mocha --browser=false", + "test:browser": "mocha --browser=true", "test:unit": "mocha --require sucrase/register --recursive src/**/__test__.ts", "quicktest": "mocha", "precoverage": "c8 mocha", diff --git a/test/test.ts b/test/test.ts index 181e9351c1..7e10a24d97 100644 --- a/test/test.ts +++ b/test/test.ts @@ -8,7 +8,12 @@ require('../internal'); console.clear(); -const test_folders = glob('*/index.ts', { cwd: 'test' }); +const browser_tests = ['custom-elements', 'runtime-puppeteer']; +const to_run_browser_tests = get_to_run_browser_tests(); + +const test_folders = glob('*/index.ts', { cwd: 'test' }) + .filter(folder => to_run_browser_tests === browser_tests.some(test => folder.startsWith(test))); + const solo_folders = test_folders.filter(folder => /\.solo/.test(folder)); if (solo_folders.length) { @@ -19,3 +24,9 @@ if (solo_folders.length) { } else { test_folders.forEach(name => require('./' + name)); } + +function get_to_run_browser_tests() { + const browser_flag = '--browser='; + const argv = process.argv.find(argv => argv.startsWith(browser_flag)); + return !!argv && argv.slice(browser_flag.length) === 'true'; +} \ No newline at end of file