mediawiki-extensions-Popups/tests/node-qunit/run.js
jdlrobson 01fc2db19f Use 6.1.0 of @wikimedia/mw-node-qunit
Bug: T203137
Change-Id: I9fd701cc9575ad250c919d88bf1fe74898b690eb
2019-10-22 10:42:49 -07:00

58 lines
1.3 KiB
JavaScript
Executable file

#!/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' );
require( '@babel/register' )( {
presets: [
[ '@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 );
}
}
} );
};