41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import ScriptUtils from "../scripts/ScriptUtils"
|
|
import { Utils } from "../Utils"
|
|
import * as fakedom from "fake-dom"
|
|
import Locale from "../UI/i18n/Locale"
|
|
|
|
export const mochaHooks = {
|
|
beforeEach(done) {
|
|
ScriptUtils.fixUtils()
|
|
Locale.language.setData("en")
|
|
|
|
if (fakedom === undefined || window === undefined) {
|
|
throw "FakeDom not initialized"
|
|
}
|
|
|
|
// Block internet access
|
|
const realDownloadFunc = Utils.externalDownloadFunction
|
|
Utils.externalDownloadFunction = async (url) => {
|
|
console.error(
|
|
"Fetching ",
|
|
url,
|
|
"blocked in tests, use Utils.injectJsonDownloadForTests"
|
|
)
|
|
const data = await realDownloadFunc(url)
|
|
console.log(
|
|
"\n\n ----------- \nBLOCKED DATA\n Utils.injectJsonDownloadForTests(\n" + " ",
|
|
JSON.stringify(url),
|
|
", \n",
|
|
" ",
|
|
JSON.stringify(data),
|
|
"\n )\n------------------\n\n"
|
|
)
|
|
throw new Error(
|
|
"Detected internet access for URL " +
|
|
url +
|
|
", please inject it with Utils.injectJsonDownloadForTests"
|
|
)
|
|
}
|
|
|
|
done()
|
|
},
|
|
}
|