mirror of
https://github.com/openpgpjs/openpgpjs.git
synced 2025-06-12 00:56:41 +00:00
Tests: drop karma (deprecated) in favor of web-test-runner
This commit is contained in:
parent
e924a50c31
commit
4b017f6c67
8
.github/workflows/tests.yml
vendored
8
.github/workflows/tests.yml
vendored
@ -100,12 +100,12 @@ jobs:
|
|||||||
run: npx playwright install --with-deps webkit
|
run: npx playwright install --with-deps webkit
|
||||||
|
|
||||||
- name: Run browser tests
|
- name: Run browser tests
|
||||||
run: npm run test-browser
|
run: npm run test-browser -- --static-logging
|
||||||
|
|
||||||
- name: Run browser tests (lightweight) # overwrite test/lib
|
- name: Run browser tests (lightweight) # overwrite test/lib
|
||||||
run: |
|
run: |
|
||||||
npm run build-test --lightweight
|
npm run build-test --lightweight
|
||||||
npm run test-browser
|
npm run test-browser -- --static-logging
|
||||||
|
|
||||||
test-browsers-compatibility:
|
test-browsers-compatibility:
|
||||||
name: Browsers (older, on Browserstack)
|
name: Browsers (older, on Browserstack)
|
||||||
@ -139,12 +139,12 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Run browserstack tests
|
- name: Run browserstack tests
|
||||||
run: npm run test-browserstack
|
run: npm run test-browserstack -- --static-logging
|
||||||
|
|
||||||
- name: Run browserstack tests (lightweight) # overwrite test/lib
|
- name: Run browserstack tests (lightweight) # overwrite test/lib
|
||||||
run: |
|
run: |
|
||||||
npm run build-test --lightweight
|
npm run build-test --lightweight
|
||||||
npm run test-browserstack
|
npm run test-browserstack -- --static-logging
|
||||||
env:
|
env:
|
||||||
LIGHTWEIGHT: true
|
LIGHTWEIGHT: true
|
||||||
|
|
||||||
|
5671
package-lock.json
generated
5671
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
19
package.json
19
package.json
@ -49,11 +49,10 @@
|
|||||||
"test-type-definitions": "tsx test/typescript/definitions.ts",
|
"test-type-definitions": "tsx test/typescript/definitions.ts",
|
||||||
"benchmark-time": "node test/benchmarks/time.js",
|
"benchmark-time": "node test/benchmarks/time.js",
|
||||||
"benchmark-memory-usage": "node test/benchmarks/memory_usage.js",
|
"benchmark-memory-usage": "node test/benchmarks/memory_usage.js",
|
||||||
"start": "http-server",
|
|
||||||
"prebrowsertest": "npm run build-test",
|
"prebrowsertest": "npm run build-test",
|
||||||
"browsertest": "npm start -- -o test/unittests.html",
|
"browsertest": "web-test-runner --config test/web-test-runner.config.js --group local --manual --open",
|
||||||
"test-browser": "karma start test/karma.conf.cjs",
|
"test-browser": "web-test-runner --config test/web-test-runner.config.js --group local --playwright --browsers chromium firefox webkit",
|
||||||
"test-browserstack": "karma start test/karma.conf.cjs --browsers bs_safari_latest,bs_ios_14,bs_safari_14",
|
"test-browserstack": "web-test-runner --config test/web-test-runner.config.js --group browserstack",
|
||||||
"coverage": "c8 npm test",
|
"coverage": "c8 npm test",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"docs": "jsdoc --configure .jsdocrc.cjs --destination docs --recurse README.md src && printf '%s' 'docs.openpgpjs.org' > docs/CNAME",
|
"docs": "jsdoc --configure .jsdocrc.cjs --destination docs --recurse README.md src && printf '%s' 'docs.openpgpjs.org' > docs/CNAME",
|
||||||
@ -79,6 +78,10 @@
|
|||||||
"@types/chai": "^4.3.19",
|
"@types/chai": "^4.3.19",
|
||||||
"@types/sinon": "^17.0.3",
|
"@types/sinon": "^17.0.3",
|
||||||
"@typescript-eslint/parser": "^7.18.0",
|
"@typescript-eslint/parser": "^7.18.0",
|
||||||
|
"@web/test-runner": "^0.19.0",
|
||||||
|
"@web/test-runner-browserstack": "^0.7.2",
|
||||||
|
"@web/test-runner-mocha": "^0.9.0",
|
||||||
|
"@web/test-runner-playwright": "^0.11.0",
|
||||||
"argon2id": "^1.0.1",
|
"argon2id": "^1.0.1",
|
||||||
"benchmark": "^2.1.4",
|
"benchmark": "^2.1.4",
|
||||||
"bn.js": "^5.2.1",
|
"bn.js": "^5.2.1",
|
||||||
@ -95,14 +98,6 @@
|
|||||||
"eslint-plugin-import": "^2.30.0",
|
"eslint-plugin-import": "^2.30.0",
|
||||||
"eslint-plugin-unicorn": "^48.0.1",
|
"eslint-plugin-unicorn": "^48.0.1",
|
||||||
"fflate": "^0.7.4",
|
"fflate": "^0.7.4",
|
||||||
"http-server": "^14.1.1",
|
|
||||||
"karma": "^6.4.4",
|
|
||||||
"karma-browserstack-launcher": "^1.6.0",
|
|
||||||
"karma-chrome-launcher": "^3.2.0",
|
|
||||||
"karma-firefox-launcher": "^2.1.3",
|
|
||||||
"karma-mocha": "^2.0.1",
|
|
||||||
"karma-mocha-reporter": "^2.2.5",
|
|
||||||
"karma-webkit-launcher": "^2.6.0",
|
|
||||||
"mocha": "^10.7.3",
|
"mocha": "^10.7.3",
|
||||||
"playwright": "^1.47.0",
|
"playwright": "^1.47.0",
|
||||||
"rollup": "^4.21.2",
|
"rollup": "^4.21.2",
|
||||||
|
@ -1,136 +0,0 @@
|
|||||||
/* eslint-disable no-process-env */
|
|
||||||
const { chromium, firefox, webkit } = require('playwright');
|
|
||||||
|
|
||||||
process.env.CHROME_BIN = chromium.executablePath();
|
|
||||||
process.env.FIREFOX_BIN = firefox.executablePath();
|
|
||||||
process.env.WEBKIT_HEADLESS_BIN = webkit.executablePath();
|
|
||||||
|
|
||||||
module.exports = function(config) {
|
|
||||||
config.set({
|
|
||||||
|
|
||||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
||||||
basePath: '..',
|
|
||||||
|
|
||||||
// hostname for local
|
|
||||||
hostname: '127.0.0.1',
|
|
||||||
|
|
||||||
// frameworks to use
|
|
||||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
||||||
frameworks: ['mocha'],
|
|
||||||
|
|
||||||
// plugins
|
|
||||||
plugins: [
|
|
||||||
'karma-mocha',
|
|
||||||
'karma-chrome-launcher',
|
|
||||||
'karma-firefox-launcher',
|
|
||||||
'karma-webkit-launcher',
|
|
||||||
'karma-mocha-reporter',
|
|
||||||
'karma-browserstack-launcher'
|
|
||||||
],
|
|
||||||
|
|
||||||
client: {
|
|
||||||
mocha: {
|
|
||||||
timeout: 30000,
|
|
||||||
grep: process.env.LIGHTWEIGHT ? '@lightweight' : undefined
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// list of files / patterns to load in the browser
|
|
||||||
files: [
|
|
||||||
{
|
|
||||||
pattern: 'test/lib/unittests-bundle.js',
|
|
||||||
type: 'module'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern: 'dist/**/*',
|
|
||||||
included: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern: 'test/**/*',
|
|
||||||
included: false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
proxies: {
|
|
||||||
'/lib': '/base/test/lib',
|
|
||||||
'/worker': '/base/test/worker',
|
|
||||||
'/dist': '/base/dist'
|
|
||||||
},
|
|
||||||
|
|
||||||
// list of files to exclude
|
|
||||||
exclude: [
|
|
||||||
],
|
|
||||||
|
|
||||||
// preprocess matching files before serving them to the browser
|
|
||||||
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
||||||
preprocessors: {
|
|
||||||
},
|
|
||||||
|
|
||||||
// test results reporter to use
|
|
||||||
// possible values: 'dots', 'progress'
|
|
||||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
||||||
reporters: ['mocha', 'BrowserStack'],
|
|
||||||
|
|
||||||
// web server host and port
|
|
||||||
port: 9876,
|
|
||||||
|
|
||||||
// enable / disable colors in the output (reporters and logs)
|
|
||||||
colors: true,
|
|
||||||
|
|
||||||
// level of logging
|
|
||||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
|
|
||||||
// enable / disable watching file and executing tests whenever any file changes
|
|
||||||
autoWatch: false,
|
|
||||||
|
|
||||||
browserStack: {
|
|
||||||
username: process.env.BROWSERSTACK_USERNAME,
|
|
||||||
accessKey: process.env.BROWSERSTACK_ACCESS_KEY,
|
|
||||||
build: process.env.GITHUB_SHA,
|
|
||||||
name: process.env.GITHUB_WORKFLOW,
|
|
||||||
project: `openpgpjs/${process.env.GITHUB_EVENT_NAME || 'push'}${process.env.LIGHTWEIGHT ? '/lightweight' : ''}`,
|
|
||||||
timeout: 450
|
|
||||||
},
|
|
||||||
|
|
||||||
// define browsers
|
|
||||||
customLaunchers: {
|
|
||||||
bs_safari_latest: { // Webkit and Safari can differ in behavior
|
|
||||||
base: 'BrowserStack',
|
|
||||||
browser: 'Safari',
|
|
||||||
browser_version: 'latest',
|
|
||||||
os: 'OS X',
|
|
||||||
os_version: 'Ventura'
|
|
||||||
},
|
|
||||||
bs_safari_14: {
|
|
||||||
base: 'BrowserStack',
|
|
||||||
browser: 'Safari',
|
|
||||||
browser_version: '14',
|
|
||||||
os: 'OS X',
|
|
||||||
os_version: 'Big Sur'
|
|
||||||
},
|
|
||||||
bs_ios_14: {
|
|
||||||
base: 'BrowserStack',
|
|
||||||
device: 'iPhone 12',
|
|
||||||
real_mobile: true,
|
|
||||||
os: 'ios',
|
|
||||||
os_version: '14'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
captureTimeout: 6e5,
|
|
||||||
browserDisconnectTolerance: 0,
|
|
||||||
browserDisconnectTimeout: 6e5,
|
|
||||||
browserSocketTimeout: 3e5,
|
|
||||||
browserNoActivityTimeout: 6e5,
|
|
||||||
|
|
||||||
// start these browsers
|
|
||||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
|
||||||
browsers: ['ChromeHeadless', 'FirefoxHeadless', 'WebkitHeadless'],
|
|
||||||
|
|
||||||
// Continuous Integration mode
|
|
||||||
// if true, Karma captures browsers, runs the tests and exits
|
|
||||||
singleRun: true
|
|
||||||
|
|
||||||
});
|
|
||||||
};
|
|
@ -3,38 +3,31 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>OpenPGPJS Unit Tests</title>
|
<title>OpenPGPJS Unit Tests</title>
|
||||||
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
|
<link rel="stylesheet" href="../node_modules/mocha/mocha.css">
|
||||||
|
|
||||||
<!-- libs -->
|
|
||||||
<script src="../node_modules/mocha/mocha.js"></script>
|
|
||||||
<script>
|
|
||||||
mocha.setup('bdd');
|
|
||||||
mocha.timeout(240000);
|
|
||||||
</script>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="mocha"></div>
|
<div id="mocha"></div>
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import './lib/unittests-bundle.js';
|
import { mocha, sessionFinished, sessionFailed } from '@web/test-runner-mocha';
|
||||||
if (typeof openpgp !== 'undefined') {
|
|
||||||
const runner = mocha.run();
|
try {
|
||||||
var wasScrolledDown = true;
|
// setup mocha
|
||||||
function beforeTestReport() {
|
mocha.setup({
|
||||||
wasScrolledDown = document.documentElement.scrollHeight - document.documentElement.scrollTop - document.documentElement.clientHeight < 50;
|
ui: 'bdd',
|
||||||
}
|
timeout: 30000
|
||||||
function afterTestReport() {
|
});
|
||||||
if (wasScrolledDown || openpgp.config.ci) {
|
|
||||||
window.scrollTo(0, document.documentElement.scrollHeight);
|
await import('./lib/unittests-bundle.js');
|
||||||
}
|
|
||||||
}
|
// run the tests, and notify the test runner after finishing
|
||||||
runner._events['suite'].unshift(beforeTestReport);
|
mocha.run(() => {
|
||||||
runner._events['pass'].unshift(beforeTestReport);
|
sessionFinished();
|
||||||
runner._events['fail'].unshift(beforeTestReport);
|
});
|
||||||
runner._events['pending'].unshift(beforeTestReport);
|
} catch (error) {
|
||||||
document.addEventListener('scroll', beforeTestReport);
|
console.error(error);
|
||||||
runner.on('suite', afterTestReport);
|
// notify the test runner about errors
|
||||||
runner.on('test end', afterTestReport);
|
sessionFailed(error);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
52
test/web-test-runner.config.js
Normal file
52
test/web-test-runner.config.js
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
import { browserstackLauncher } from '@web/test-runner-browserstack';
|
||||||
|
|
||||||
|
const sharedBrowserstackCapabilities = {
|
||||||
|
'browserstack.user': process.env.BROWSERSTACK_USERNAME,
|
||||||
|
'browserstack.key': process.env.BROWSERSTACK_ACCESS_KEY,
|
||||||
|
|
||||||
|
project: `openpgpjs/${process.env.GITHUB_EVENT_NAME || 'push'}${process.env.LIGHTWEIGHT ? '/lightweight' : ''}`,
|
||||||
|
name: process.env.GITHUB_WORKFLOW,
|
||||||
|
build: process.env.GITHUB_SHA,
|
||||||
|
timeout: 450
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
nodeResolve: true, // to resolve npm module imports in `unittests.html`
|
||||||
|
files: './test/unittests.html',
|
||||||
|
|
||||||
|
groups: [
|
||||||
|
{ name: 'local' }, // group meant to be used with either --browser or --manual options via CLI
|
||||||
|
{
|
||||||
|
name: 'browserstack',
|
||||||
|
browsers: process.env.BROWSERSTACK_USERNAME && [
|
||||||
|
browserstackLauncher({
|
||||||
|
capabilities: {
|
||||||
|
...sharedBrowserstackCapabilities,
|
||||||
|
browserName: 'Safari',
|
||||||
|
browser_version: 'latest', // Webkit and Safari can differ in behavior
|
||||||
|
os: 'OS X',
|
||||||
|
os_version: 'Ventura'
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
browserstackLauncher({
|
||||||
|
capabilities: {
|
||||||
|
...sharedBrowserstackCapabilities,
|
||||||
|
browserName: 'Safari',
|
||||||
|
browser_version: '14', // min supported version
|
||||||
|
os: 'OS X',
|
||||||
|
os_version: 'Big Sur'
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
browserstackLauncher({
|
||||||
|
capabilities: {
|
||||||
|
...sharedBrowserstackCapabilities,
|
||||||
|
device: 'iPhone 12',
|
||||||
|
real_mobile: true,
|
||||||
|
os: 'ios',
|
||||||
|
os_version: '14'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user