TEMP: Switch to web-test-runner
Karma is deprecated, so switch to something that is still maintained.
This commit is contained in:
parent
236fa87af4
commit
88e95cba63
|
@ -1,92 +0,0 @@
|
||||||
// Karma configuration
|
|
||||||
|
|
||||||
// The Safari launcher is broken, so construct our own
|
|
||||||
function SafariBrowser(id, baseBrowserDecorator, args) {
|
|
||||||
baseBrowserDecorator(this);
|
|
||||||
|
|
||||||
this._start = function(url) {
|
|
||||||
this._execCommand('/usr/bin/open', ['-W', '-n', '-a', 'Safari', url]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SafariBrowser.prototype = {
|
|
||||||
name: 'Safari'
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = (config) => {
|
|
||||||
let browsers = [];
|
|
||||||
|
|
||||||
if (process.env.TEST_BROWSER_NAME) {
|
|
||||||
browsers = process.env.TEST_BROWSER_NAME.split(',');
|
|
||||||
}
|
|
||||||
|
|
||||||
const my_conf = {
|
|
||||||
|
|
||||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
||||||
basePath: '',
|
|
||||||
|
|
||||||
// frameworks to use
|
|
||||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
||||||
frameworks: ['mocha'],
|
|
||||||
|
|
||||||
// list of files / patterns to load in the browser
|
|
||||||
files: [
|
|
||||||
// node modules
|
|
||||||
{ pattern: 'node_modules/chai/**', included: false },
|
|
||||||
{ pattern: 'node_modules/sinon/**', included: false },
|
|
||||||
{ pattern: 'node_modules/sinon-chai/**', included: false },
|
|
||||||
// modules to test
|
|
||||||
{ pattern: 'app/localization.js', included: false, type: 'module' },
|
|
||||||
{ pattern: 'app/webutil.js', included: false, type: 'module' },
|
|
||||||
{ pattern: 'core/**/*.js', included: false, type: 'module' },
|
|
||||||
{ pattern: 'vendor/pako/**/*.js', included: false, type: 'module' },
|
|
||||||
// tests
|
|
||||||
{ pattern: 'tests/test.*.js', type: 'module' },
|
|
||||||
// test support files
|
|
||||||
{ pattern: 'tests/fake.*.js', included: false, type: 'module' },
|
|
||||||
{ pattern: 'tests/assertions.js', included: false, type: 'module' },
|
|
||||||
],
|
|
||||||
|
|
||||||
client: {
|
|
||||||
mocha: {
|
|
||||||
// replace Karma debug page with mocha display
|
|
||||||
'reporter': 'html',
|
|
||||||
'ui': 'bdd'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// list of files to exclude
|
|
||||||
exclude: [
|
|
||||||
],
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
'karma-*',
|
|
||||||
'@chiragrupani/karma-chromium-edge-launcher',
|
|
||||||
{ 'launcher:Safari': [ 'type', SafariBrowser ] },
|
|
||||||
],
|
|
||||||
|
|
||||||
// start these browsers
|
|
||||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
|
||||||
browsers: browsers,
|
|
||||||
|
|
||||||
// test results reporter to use
|
|
||||||
// possible values: 'dots', 'progress'
|
|
||||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
||||||
reporters: ['mocha'],
|
|
||||||
|
|
||||||
|
|
||||||
// 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,
|
|
||||||
|
|
||||||
// Continuous Integration mode
|
|
||||||
// if true, Karma captures browsers, runs the tests and exits
|
|
||||||
singleRun: true,
|
|
||||||
};
|
|
||||||
|
|
||||||
config.set(my_conf);
|
|
||||||
};
|
|
15
package.json
15
package.json
|
@ -18,7 +18,7 @@
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint app core po/po2js po/xgettext-html tests utils",
|
"lint": "eslint app core po/po2js po/xgettext-html tests utils",
|
||||||
"test": "karma start karma.conf.js",
|
"test": "web-test-runner",
|
||||||
"prepublish": "node ./utils/convert.js --clean"
|
"prepublish": "node ./utils/convert.js --clean"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -46,22 +46,13 @@
|
||||||
"fs-extra": "latest",
|
"fs-extra": "latest",
|
||||||
"globals": "latest",
|
"globals": "latest",
|
||||||
"jsdom": "latest",
|
"jsdom": "latest",
|
||||||
"karma": "latest",
|
|
||||||
"karma-mocha": "latest",
|
|
||||||
"karma-chrome-launcher": "latest",
|
|
||||||
"@chiragrupani/karma-chromium-edge-launcher": "latest",
|
|
||||||
"karma-firefox-launcher": "latest",
|
|
||||||
"karma-ie-launcher": "latest",
|
|
||||||
"karma-mocha-reporter": "latest",
|
|
||||||
"karma-safari-launcher": "latest",
|
|
||||||
"karma-script-launcher": "latest",
|
|
||||||
"mocha": "latest",
|
"mocha": "latest",
|
||||||
"node-getopt": "latest",
|
"node-getopt": "latest",
|
||||||
"po2json": "latest",
|
"po2json": "latest",
|
||||||
"sinon": "latest",
|
"sinon": "latest",
|
||||||
"sinon-chai": "latest"
|
"sinon-chai": "latest",
|
||||||
|
"@web/test-runner": "latest"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"vnc",
|
"vnc",
|
||||||
"rfb",
|
"rfb",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import * as chai from '../node_modules/chai/chai.js';
|
import * as chai from 'chai';
|
||||||
import sinonChai from '../node_modules/sinon-chai/lib/sinon-chai.js';
|
import sinonChai from 'sinon-chai';
|
||||||
|
|
||||||
chai.use(sinonChai);
|
chai.use(sinonChai);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Base64 from '../core/base64.js';
|
import Base64 from '../core/base64.js';
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { isMac, isWindows, isIOS, isAndroid, isChromeOS,
|
import { isMac, isWindows, isIOS, isAndroid, isChromeOS,
|
||||||
isSafari, isFirefox, isChrome, isChromium, isOpera, isEdge,
|
isSafari, isFirefox, isChrome, isChromium, isOpera, isEdge,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { inflateInit, inflate } from "../vendor/pako/lib/zlib/inflate.js";
|
import { inflateInit, inflate } from "../vendor/pako/lib/zlib/inflate.js";
|
||||||
import ZStream from "../vendor/pako/lib/zlib/zstream.js";
|
import ZStream from "../vendor/pako/lib/zlib/zstream.js";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import Base64 from '../core/base64.js';
|
import Base64 from '../core/base64.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import EventTargetMixin from '../core/util/eventtarget.js';
|
import EventTargetMixin from '../core/util/eventtarget.js';
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import keysyms from '../core/input/keysymdef.js';
|
import keysyms from '../core/input/keysymdef.js';
|
||||||
import * as KeyboardUtil from "../core/input/util.js";
|
import * as KeyboardUtil from "../core/input/util.js";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { deflateInit, deflate, Z_FULL_FLUSH } from "../vendor/pako/lib/zlib/deflate.js";
|
import { deflateInit, deflate, Z_FULL_FLUSH } from "../vendor/pako/lib/zlib/deflate.js";
|
||||||
import ZStream from "../vendor/pako/lib/zlib/zstream.js";
|
import ZStream from "../vendor/pako/lib/zlib/zstream.js";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { toUnsigned32bit, toSigned32bit } from '../core/util/int.js';
|
import { toUnsigned32bit, toSigned32bit } from '../core/util/int.js';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import Keyboard from '../core/input/keyboard.js';
|
import Keyboard from '../core/input/keyboard.js';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import _, { Localizer, l10n } from '../app/localization.js';
|
import _, { Localizer, l10n } from '../app/localization.js';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import RFB from '../core/rfb.js';
|
import RFB from '../core/rfb.js';
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import * as Log from '../core/util/logging.js';
|
import * as Log from '../core/util/logging.js';
|
||||||
import { encodeUTF8, decodeUTF8 } from '../core/util/strings.js';
|
import { encodeUTF8, decodeUTF8 } from '../core/util/strings.js';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import FakeWebSocket from './fake.websocket.js';
|
import FakeWebSocket from './fake.websocket.js';
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* jshint expr: true */
|
/* jshint expr: true */
|
||||||
|
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
import sinon from '../node_modules/sinon/pkg/sinon-esm.js';
|
import sinon from 'sinon';
|
||||||
|
|
||||||
import * as WebUtil from '../app/webutil.js';
|
import * as WebUtil from '../app/webutil.js';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import './assertions.js';
|
import './assertions.js';
|
||||||
import { expect } from '../node_modules/chai/chai.js';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import Websock from '../core/websock.js';
|
import Websock from '../core/websock.js';
|
||||||
import Display from '../core/display.js';
|
import Display from '../core/display.js';
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { defaultReporter } from '@web/test-runner';
|
||||||
|
import { summaryReporter } from '@web/test-runner';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
nodeResolve: true,
|
||||||
|
files: [
|
||||||
|
'tests/test.*.js',
|
||||||
|
],
|
||||||
|
reporters: [
|
||||||
|
defaultReporter(),
|
||||||
|
summaryReporter(),
|
||||||
|
]
|
||||||
|
};
|
Loading…
Reference in New Issue