0
Il existe des questions similaires, mais il ne semble pas y avoir de réponse définitive et la plupart des réponses sont anciennes et obsolètes. C'est pourquoi je demande cela.Mocha Modules de test dont jQuery est une dépendance
J'ai donc un test comme celui-ci
// B2CPopup_methods_test.js
import './domTestsHelper'
import { expect } from 'chai'
import newB2CPopup from './popupFromDbBoilerplate'
describe('B2CPopup class method - ',() => {
const popup = newB2CPopup
it('prependHTMLToDOM prepends html to dom',() => {
popup.prependHTMLToDOM()
expect($('.b2cPopupOverlay')).to.exist
})
})
et mon domTestsHelper.js
ressemble à ceci
import jquery from 'jquery'
import jsdom from 'jsdom'
import chai from 'chai'
import chaiJquery from 'chai-jquery'
// Set up testing environment to run like a browser in the command line
const { JSDOM } = jsdom
const { window } = new JSDOM('<!doctype html><html><body></body></html>')
const $ = jquery(window)
chaiJquery(chai, chai.util, $)
export { $ }
Enfin, le fichier que je teste est
// B2CPopup.js
import $ from 'jquery'
export default class B2CPopup {
constructor ({ _id, options }, html) {
this._id = _id
this.options = options
this.html = html
}
start =() => {}
createOptions =() => {}
prependHTMLToDOM =() => $(this.html).prependTo('body')
show =() => {}
}
Et bien sûr, mon test échoue avec cette erreur
Error: jQuery requires a window with a document