mediawiki-extensions-Popups/tests/node-qunit/run.js

58 lines
1.3 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
const fs = require( 'fs' ),
mwNodeQunit = require( '@wikimedia/mw-node-qunit' ),
sinon = mwNodeQunit.sinon,
QUnitModule = QUnit.module,
svgInlineLoader = require( 'svg-inline-loader' );
Switch from babel-preset-env to @babel/preset-env Replace: - babel-preset-env@1.6.0 with @babel/preset-env@7.2.0 - babel-register@6.24.1 with @babel/register@7.0.0 - babel-loader@7.1.4 with babel-loader@8.0.4 Add: - @babel/core@7.2.0 --- - babel-preset-env, @babel/preset-env babel-preset-env moved to @babel/preset-env in the Babel monorepo. This appears to have incremented the version from v1.6.0[0] to 7.x to match the rest of the Babel packages but appears to otherwise be undocumented.[1,3] [0] https://github.com/babel/babel-preset-env/blob/24b99ec/README.md [1] https://github.com/babel/babel/blob/efa571a/CHANGELOG.md - @babel/preset-env, @babel/register *Many* changes as identified by package [2] and summarized [3]. Node.js v6 or above now required. New dependency on @babel/core. Support for ES2018 and browserslist v4. `modules: false` is now the default for preset-env + babel-loader. The .babelrc has been updated. New babel-upgrade tool. babel.config.js can replace .babelrc. Popups doesn't seem to need it. TypeScript and JSX fragment support. [2] https://github.com/babel/babel/blob/efa571a/CHANGELOG.md [3] https://babeljs.io/blog/2018/08/27/7.0.0 - babel-loader Support for Babel 7.x. The following warning is printed when building but perhaps this is due to another dependency: (node:14559) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56 parseQuery() will be replaced with getOptions() in the next major version of loader-utils. https://github.com/webpack/loader-utils/issues/56#issuecomment-286117000 https://github.com/babel/babel-loader/releases/tag/v7.1.5 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.0 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.1 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.2 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.3 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.4 (v8.0.0-beta.5 was erroneous.) https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.6 https://github.com/babel/babel-loader/releases/tag/v8.0.0 https://github.com/babel/babel-loader/releases/tag/v8.0.1 https://github.com/babel/babel-loader/releases/tag/v8.0.2 https://github.com/babel/babel-loader/releases/tag/v8.0.3 https://github.com/babel/babel-loader/releases/tag/v8.0.4 Bug: T197883 Change-Id: Ie3a5404630fde87ea7fe618a842950ed8c0c6494
2018-12-03 10:08:49 +00:00
require( '@babel/register' )( {
presets: [
Switch from babel-preset-env to @babel/preset-env Replace: - babel-preset-env@1.6.0 with @babel/preset-env@7.2.0 - babel-register@6.24.1 with @babel/register@7.0.0 - babel-loader@7.1.4 with babel-loader@8.0.4 Add: - @babel/core@7.2.0 --- - babel-preset-env, @babel/preset-env babel-preset-env moved to @babel/preset-env in the Babel monorepo. This appears to have incremented the version from v1.6.0[0] to 7.x to match the rest of the Babel packages but appears to otherwise be undocumented.[1,3] [0] https://github.com/babel/babel-preset-env/blob/24b99ec/README.md [1] https://github.com/babel/babel/blob/efa571a/CHANGELOG.md - @babel/preset-env, @babel/register *Many* changes as identified by package [2] and summarized [3]. Node.js v6 or above now required. New dependency on @babel/core. Support for ES2018 and browserslist v4. `modules: false` is now the default for preset-env + babel-loader. The .babelrc has been updated. New babel-upgrade tool. babel.config.js can replace .babelrc. Popups doesn't seem to need it. TypeScript and JSX fragment support. [2] https://github.com/babel/babel/blob/efa571a/CHANGELOG.md [3] https://babeljs.io/blog/2018/08/27/7.0.0 - babel-loader Support for Babel 7.x. The following warning is printed when building but perhaps this is due to another dependency: (node:14559) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56 parseQuery() will be replaced with getOptions() in the next major version of loader-utils. https://github.com/webpack/loader-utils/issues/56#issuecomment-286117000 https://github.com/babel/babel-loader/releases/tag/v7.1.5 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.0 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.1 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.2 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.3 https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.4 (v8.0.0-beta.5 was erroneous.) https://github.com/babel/babel-loader/releases/tag/v8.0.0-beta.6 https://github.com/babel/babel-loader/releases/tag/v8.0.0 https://github.com/babel/babel-loader/releases/tag/v8.0.1 https://github.com/babel/babel-loader/releases/tag/v8.0.2 https://github.com/babel/babel-loader/releases/tag/v8.0.3 https://github.com/babel/babel-loader/releases/tag/v8.0.4 Bug: T197883 Change-Id: Ie3a5404630fde87ea7fe618a842950ed8c0c6494
2018-12-03 10:08:49 +00:00
[ '@babel/preset-env', {
targets: {
node: 6
}
} ]
]
} );
require.extensions[ '.svg' ] = ( module, filename ) => {
const svg = fs.readFileSync( filename, { encoding: 'utf8' } );
// eslint-disable-next-line no-underscore-dangle
module._compile( svgInlineLoader( svg ), filename );
};
sinon.config = {
injectIntoThis: true,
injectInto: null,
useFakeTimers: false,
useFakeServer: false,
properties: [ 'spy', 'stub', 'mock', 'sandbox' ]
};
mwNodeQunit.setUp();
// Override Qunit.module to set up a sinon sandbox automatically
QUnit.module = function ( name, localEnv ) {
localEnv = localEnv || {};
QUnitModule( name, {
beforeEach: function () {
const config = Object.assign( {}, sinon.config, {
injectInto: this
} );
sinon.sandbox.create( config );
if ( localEnv.beforeEach ) {
localEnv.beforeEach.call( this );
}
},
afterEach: function () {
// Interop with old teardown config on mediawiki codebases
this.sandbox.restore();
if ( localEnv.afterEach ) {
localEnv.afterEach.call( this );
}
}
} );
};