@wikimedia/mw-node-qunit
Advanced tools
Comparing version 6.2.0 to 6.2.1
@@ -1,2 +0,1 @@ | ||
/* global QUnit */ | ||
const dom = require( './src/dom' ), | ||
@@ -3,0 +2,0 @@ jQuery = require( './src/jQuery' ), |
@@ -6,4 +6,4 @@ #!/usr/bin/env node | ||
if ( process.argv.includes( '--globals' ) ) { | ||
mwNodeQunit.setUp(); | ||
if ( process.argv.indexOf( '--globals' ) !== -1 ) { | ||
mwNodeQunit.setUp(); | ||
} |
{ | ||
"name": "@wikimedia/mw-node-qunit", | ||
"version": "6.2.0", | ||
"version": "6.2.1", | ||
"description": "Node CLI qunit runner with mediawiki additions", | ||
"main": "index.js", | ||
"scripts": { | ||
"format": "prettier --write './**/*.js'", | ||
"test": "node mw-node-qunit.js 'tests/**/*.test.js' --globals", | ||
"lint": "eslint --cache --max-warnings 0 .", | ||
"test": "npm run lint && node mw-node-qunit.js 'tests/**/*.test.js' --globals", | ||
"test:raw": "./index.js 'tests/**/*.test.js'" | ||
@@ -25,2 +25,3 @@ }, | ||
"dependencies": { | ||
"eslint-config-wikimedia": "0.15.1", | ||
"glob": "7.1.2", | ||
@@ -27,0 +28,0 @@ "jquery": "3.6.0", |
@@ -1,2 +0,2 @@ | ||
var | ||
const | ||
headless = typeof window !== 'object'; | ||
@@ -12,4 +12,4 @@ | ||
if ( !sandbox || headless ) { | ||
const jsdom = require( 'jsdom' ); | ||
const window = new jsdom.JSDOM().window, | ||
const jsdom = require( 'jsdom' ), | ||
window = new jsdom.JSDOM().window, | ||
document = window.document; | ||
@@ -16,0 +16,0 @@ |
@@ -1,2 +0,2 @@ | ||
var headless = typeof window !== 'object'; | ||
const headless = typeof window !== 'object'; | ||
@@ -21,5 +21,5 @@ module.exports = { | ||
// prevent jQuery from caching the global window object. | ||
delete require.cache[require.resolve( 'jquery' )]; | ||
delete require.cache[ require.resolve( 'jquery' ) ]; | ||
} | ||
} | ||
}; |
@@ -1,2 +0,5 @@ | ||
var | ||
const | ||
MwUri = function () { | ||
this.query = {}; | ||
}, | ||
/* eslint-disable camelcase */ | ||
@@ -17,6 +20,2 @@ namespaceIDs = { | ||
const MwUri = function () { | ||
this.query = {}; | ||
}; | ||
MwUri.prototype.toString = function () { | ||
@@ -27,3 +26,3 @@ return `https://host?${Object.keys( this.query ).join( '=' )}`; | ||
module.exports = function newMockMediaWiki() { | ||
var config = { wgNamespaceIds: namespaceIDs }; | ||
const config = { wgNamespaceIds: namespaceIDs }; | ||
return { | ||
@@ -41,3 +40,3 @@ Api: Api, | ||
get: function ( name, fallback ) { | ||
return config[name] || fallback; | ||
return config[ name ] || fallback; | ||
} | ||
@@ -44,0 +43,0 @@ }, |
@@ -1,2 +0,2 @@ | ||
var headless = typeof window !== 'object'; | ||
const headless = typeof window !== 'object'; | ||
@@ -3,0 +3,0 @@ module.exports = { |
@@ -1,2 +0,2 @@ | ||
var | ||
const | ||
headless = typeof window !== 'object', | ||
@@ -3,0 +3,0 @@ newMockMediaWiki = require( './mockMediaWiki' ); |
@@ -1,2 +0,2 @@ | ||
var headless = typeof window !== 'object'; | ||
const headless = typeof window !== 'object'; | ||
@@ -10,3 +10,3 @@ module.exports = { | ||
setUp: function ( sandbox, global ) { | ||
var OO; | ||
let OO; | ||
if ( !sandbox || headless ) { | ||
@@ -13,0 +13,0 @@ OO = require( 'oojs' ); |
@@ -1,5 +0,5 @@ | ||
QUnit.module("Deeply nested test"); | ||
QUnit.module( 'Deeply nested test' ); | ||
QUnit.test("Glob should parse and this test be run", assert => { | ||
assert.ok("Run"); | ||
}); | ||
QUnit.test( 'Glob should parse and this test be run', ( assert ) => { | ||
assert.ok( 'Run' ); | ||
} ); |
@@ -1,42 +0,43 @@ | ||
QUnit.module("Globals"); | ||
QUnit.module( 'Globals' ); | ||
QUnit.test("mediaWiki global is defined", function(assert) { | ||
assert.equal(typeof mediaWiki, "object"); | ||
}); | ||
QUnit.test("QUnit global is defined", function(assert) { | ||
assert.equal(typeof QUnit, "object"); | ||
}); | ||
QUnit.test("window global is defined", function(assert) { | ||
assert.equal(typeof window, "object"); | ||
}); | ||
QUnit.test("document global is defined", function(assert) { | ||
assert.equal(typeof document, "object"); | ||
}); | ||
QUnit.test("jQuery global is defined", function(assert) { | ||
assert.equal(typeof jQuery, "function"); | ||
}); | ||
QUnit.test( 'mediaWiki global is defined', function ( assert ) { | ||
assert.strictEqual( typeof mediaWiki, 'object' ); | ||
} ); | ||
QUnit.test( 'QUnit global is defined', function ( assert ) { | ||
assert.strictEqual( typeof QUnit, 'object' ); | ||
} ); | ||
QUnit.test( 'window global is defined', function ( assert ) { | ||
assert.strictEqual( typeof window, 'object' ); | ||
} ); | ||
QUnit.test( 'document global is defined', function ( assert ) { | ||
assert.strictEqual( typeof document, 'object' ); | ||
} ); | ||
QUnit.test( 'jQuery global is defined', function ( assert ) { | ||
assert.strictEqual( typeof jQuery, 'function' ); | ||
} ); | ||
QUnit.module("QUnit patching", { | ||
beforeEach() { | ||
this.setup = true; | ||
} | ||
}); | ||
QUnit.module( 'QUnit patching', { | ||
beforeEach() { | ||
this.setup = true; | ||
} | ||
} ); | ||
QUnit.test("setup and teardown methods are patched to work", function(assert) { | ||
assert.equal(this.setup, true, "setup hook was run"); | ||
}); | ||
QUnit.test( 'setup and teardown methods are patched to work', function ( assert ) { | ||
assert.strictEqual( this.setup, true, 'setup hook was run' ); | ||
} ); | ||
QUnit.module("A test that uses the DOM", { | ||
beforeEach() { | ||
this.el = $('<div id="test"/>') | ||
.text("banana") | ||
.append(window.document.body); | ||
}, | ||
afterEach() { | ||
this.el.remove(); | ||
} | ||
}); | ||
QUnit.module( 'A test that uses the DOM', { | ||
beforeEach() { | ||
this.$el = $( '<div>' ) | ||
.attr( 'id', 'test' ) | ||
.text( 'banana' ) | ||
.append( window.document.body ); | ||
}, | ||
afterEach() { | ||
this.$el.remove(); | ||
} | ||
} ); | ||
QUnit.test("setting an element on the DOM works", function(assert) { | ||
assert.equal(this.el.text(), "banana", "text was set on the dom properly"); | ||
}); | ||
QUnit.test( 'setting an element on the DOM works', function ( assert ) { | ||
assert.strictEqual( this.$el.text(), 'banana', 'text was set on the dom properly' ); | ||
} ); |
@@ -1,11 +0,11 @@ | ||
var a = 500; | ||
var mw = mediaWiki; | ||
const a = 500, | ||
mw = mediaWiki; | ||
mw.testNamespace = { | ||
add(x, y) { | ||
return x + y; | ||
}, | ||
getA() { | ||
return a; | ||
} | ||
add( x, y ) { | ||
return x + y; | ||
}, | ||
getA() { | ||
return a; | ||
} | ||
}; |
@@ -1,12 +0,12 @@ | ||
QUnit.module("Require script that uses globals", { | ||
beforeEach() { | ||
require("./script"); | ||
}, | ||
afterEach() { | ||
delete mediaWiki.testNamespace; | ||
} | ||
}); | ||
QUnit.module( 'Require script that uses globals', { | ||
beforeEach() { | ||
require( './script' ); | ||
}, | ||
afterEach() { | ||
delete mediaWiki.testNamespace; | ||
} | ||
} ); | ||
QUnit.test("Can use the things created in the required script", assert => { | ||
assert.equal(mediaWiki.testNamespace.add(1, 2), 3); | ||
}); | ||
QUnit.test( 'Can use the things created in the required script', ( assert ) => { | ||
assert.equal( mediaWiki.testNamespace.add( 1, 2 ), 3 ); | ||
} ); |
@@ -1,6 +0,8 @@ | ||
var jsdom = require("jsdom"); | ||
var sinon = require("sinon"); | ||
const jsdom = require( 'jsdom' ), | ||
sinon = require( 'sinon' ), | ||
// Override Qunit.module to set up a sinon sandbox automatically | ||
QUnitModule = QUnit.module; | ||
// When a test() indicates asynchronicity with stop(), | ||
// allow 3 seconds to pass before killing the test(), | ||
// When a test indicates asynchronicity with stop(), | ||
// allow 3 seconds to pass before killing the test, | ||
// and assuming failure. | ||
@@ -10,53 +12,51 @@ QUnit.config.testTimeout = 3000; | ||
sinon.config = { | ||
injectIntoThis: true, | ||
injectInto: null, | ||
useFakeTimers: false, | ||
useFakeServer: false, | ||
properties: ["spy", "stub", "mock", "sandbox"] | ||
injectIntoThis: true, | ||
injectInto: null, | ||
useFakeTimers: false, | ||
useFakeServer: false, | ||
properties: [ 'spy', 'stub', 'mock', 'sandbox' ] | ||
}; | ||
// Override Qunit.module to set up a sinon sandbox automatically | ||
var QUnitModule = QUnit.module; | ||
QUnit.module = function(name, localEnv) { | ||
localEnv = localEnv || {}; | ||
QUnitModule(name, { | ||
beforeEach: function() { | ||
var config = Object.assign({}, sinon.config, { | ||
injectInto: this | ||
}); | ||
sinon.sandbox.create(config); | ||
QUnit.module = function ( name, localEnv ) { | ||
localEnv = localEnv || {}; | ||
QUnitModule( name, { | ||
beforeEach: function () { | ||
const config = Object.assign( {}, sinon.config, { | ||
injectInto: this | ||
} ); | ||
sinon.sandbox.create( config ); | ||
// Interop with old setup config on mediawiki codebases | ||
if (localEnv.setup) { | ||
localEnv.setup.call(this); | ||
} | ||
if (localEnv.beforeEach) { | ||
localEnv.beforeEach.call(this); | ||
} | ||
}, | ||
afterEach: function() { | ||
// Interop with old teardown config on mediawiki codebases | ||
if (localEnv.teardown) { | ||
localEnv.teardown.call(this); | ||
} | ||
if (localEnv.afterEach) { | ||
localEnv.afterEach.call(this); | ||
} | ||
// Interop with old setup config on mediawiki codebases | ||
if ( localEnv.setup ) { | ||
localEnv.setup.call( this ); | ||
} | ||
if ( localEnv.beforeEach ) { | ||
localEnv.beforeEach.call( this ); | ||
} | ||
}, | ||
afterEach: function () { | ||
// Interop with old teardown config on mediawiki codebases | ||
if ( localEnv.teardown ) { | ||
localEnv.teardown.call( this ); | ||
} | ||
if ( localEnv.afterEach ) { | ||
localEnv.afterEach.call( this ); | ||
} | ||
this.sandbox.restore(); | ||
} | ||
}); | ||
this.sandbox.restore(); | ||
} | ||
} ); | ||
}; | ||
setDOMEnvironment(); | ||
global.mediaWiki = window.mediaWiki = {}; | ||
// Set up the global environment with mediaWiki, QUnit, $ and a jsdom dom | ||
function setDOMEnvironment() { | ||
var dom = new jsdom.JSDOM("<!doctype html><html><body></body></html>"); | ||
global.window = dom.window; | ||
global.document = global.window.document; | ||
// No need to pass window to the required module given it is in the global | ||
// and will pick it up | ||
global.jQuery = global.$ = window.jQuery = window.$ = require("jquery"); | ||
const dom = new jsdom.JSDOM( '<!doctype html><html><body></body></html>' ); | ||
global.window = dom.window; | ||
global.document = global.window.document; | ||
// No need to pass window to the required module given it is in the global | ||
// and will pick it up | ||
global.jQuery = global.$ = window.jQuery = window.$ = require( 'jquery' ); | ||
} | ||
setDOMEnvironment(); | ||
global.mediaWiki = window.mediaWiki = {}; |
15565
20
391
9
+ Added@babel/code-frame@7.24.6(transitive)
+ Added@babel/helper-validator-identifier@7.24.6(transitive)
+ Added@babel/highlight@7.24.6(transitive)
+ Addedacorn@7.4.1(transitive)
+ Addedacorn-jsx@5.3.2(transitive)
+ Addedansi-escapes@4.3.2(transitive)
+ Addedansi-regex@4.1.15.0.1(transitive)
+ Addedansi-styles@3.2.14.3.0(transitive)
+ Addedargparse@1.0.10(transitive)
+ Addedastral-regex@1.0.0(transitive)
+ Addedcallsites@3.1.0(transitive)
+ Addedchalk@2.4.24.1.2(transitive)
+ Addedchardet@0.7.0(transitive)
+ Addedcli-cursor@3.1.0(transitive)
+ Addedcli-width@3.0.0(transitive)
+ Addedcolor-convert@1.9.32.0.1(transitive)
+ Addedcolor-name@1.1.31.1.4(transitive)
+ Addeddebug@4.3.4(transitive)
+ Addeddoctrine@3.0.0(transitive)
+ Addedemoji-regex@7.0.38.0.0(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedeslint@6.8.0(transitive)
+ Addedeslint-config-wikimedia@0.15.1(transitive)
+ Addedeslint-plugin-json@2.1.2(transitive)
+ Addedeslint-plugin-mediawiki@0.2.7(transitive)
+ Addedeslint-plugin-no-jquery@2.7.0(transitive)
+ Addedeslint-plugin-qunit@4.3.0(transitive)
+ Addedeslint-plugin-vue@7.20.0(transitive)
+ Addedeslint-scope@5.1.1(transitive)
+ Addedeslint-utils@1.4.32.1.0(transitive)
+ Addedeslint-visitor-keys@1.3.0(transitive)
+ Addedespree@6.2.1(transitive)
+ Addedesquery@1.5.0(transitive)
+ Addedesrecurse@4.3.0(transitive)
+ Addedestraverse@5.3.0(transitive)
+ Addedexternal-editor@3.1.0(transitive)
+ Addedfigures@3.2.0(transitive)
+ Addedfile-entry-cache@5.0.1(transitive)
+ Addedflat-cache@2.0.1(transitive)
+ Addedflatted@2.0.2(transitive)
+ Addedfunctional-red-black-tree@1.0.1(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedglob-parent@5.1.2(transitive)
+ Addedglobals@12.4.0(transitive)
+ Addedhas-flag@4.0.0(transitive)
+ Addedignore@4.0.6(transitive)
+ Addedimport-fresh@3.3.0(transitive)
+ Addedimurmurhash@0.1.4(transitive)
+ Addedinquirer@7.3.3(transitive)
+ Addedis-fullwidth-code-point@2.0.03.0.0(transitive)
+ Addedis-glob@4.0.3(transitive)
+ Addedjs-tokens@4.0.0(transitive)
+ Addedjs-yaml@3.14.1(transitive)
+ Addedjson-stable-stringify-without-jsonify@1.0.1(transitive)
+ Addedjsonc-parser@3.2.1(transitive)
+ Addedmimic-fn@2.1.0(transitive)
+ Addedmkdirp@0.5.6(transitive)
+ Addedms@2.1.2(transitive)
+ Addedmute-stream@0.0.8(transitive)
+ Addednatural-compare@1.4.0(transitive)
+ Addedonetime@5.1.2(transitive)
+ Addedos-tmpdir@1.0.2(transitive)
+ Addedparent-module@1.0.1(transitive)
+ Addedpicocolors@1.0.1(transitive)
+ Addedprogress@2.0.3(transitive)
+ Addedregexpp@2.0.1(transitive)
+ Addedresolve-from@4.0.0(transitive)
+ Addedrestore-cursor@3.1.0(transitive)
+ Addedrimraf@2.6.3(transitive)
+ Addedrun-async@2.4.1(transitive)
+ Addedrxjs@6.6.7(transitive)
+ Addedsemver@6.3.1(transitive)
+ Addedslice-ansi@2.1.0(transitive)
+ Addedsprintf-js@1.0.3(transitive)
+ Addedstring-width@3.1.04.2.3(transitive)
+ Addedstrip-ansi@5.2.06.0.1(transitive)
+ Addedstrip-json-comments@3.1.1(transitive)
+ Addedsupports-color@7.2.0(transitive)
+ Addedtable@5.4.6(transitive)
+ Addedtext-table@0.2.0(transitive)
+ Addedthrough@2.3.8(transitive)
+ Addedtmp@0.0.33(transitive)
+ Addedtslib@1.14.1(transitive)
+ Addedtype-fest@0.21.30.8.1(transitive)
+ Addedupath@1.2.0(transitive)
+ Addedv8-compile-cache@2.4.0(transitive)
+ Addedvscode-json-languageservice@3.11.0(transitive)
+ Addedvscode-languageserver-textdocument@1.0.11(transitive)
+ Addedvscode-languageserver-types@3.16.0-next.2(transitive)
+ Addedvscode-nls@5.2.0(transitive)
+ Addedvscode-uri@2.1.2(transitive)
+ Addedvue-eslint-parser@7.11.0(transitive)
+ Addedwrite@1.0.3(transitive)