terriajs
Version:
Geospatial data visualization platform.
74 lines (63 loc) • 1.99 kB
text/typescript
/// <reference types="jasmine" />
import "../lib/Core/prerequisites";
import { configure, spy } from "mobx";
import i18next from "i18next";
import registerCatalogMembers from "../lib/Models/Catalog/registerCatalogMembers";
import JasmineDOM from "@testing-library/jasmine-dom";
import { initReactI18next } from "react-i18next";
import english from "../wwwroot/languages/en/translation.json";
import { worker } from "./mocks/browser";
configure({
enforceActions: "always",
computedRequiresReaction: true,
// Turn off safeDescriptors required for spying on computed items
// TODO: mobx docs says this should only be enabled when need and not globally,
// see if we can remove this global setting
safeDescriptors: false
});
registerCatalogMembers();
// Fail the test if a MobX computed property throws an exception.
spy((event) => {
if (event.type === "error") {
fail(event.message);
}
});
beforeAll(async function () {
jasmine.addMatchers(JasmineDOM);
// Unregister stale service workers from previous test runs,
// then start MSW worker for network interception.
const registrations = await navigator.serviceWorker.getRegistrations();
for (const reg of registrations) {
await reg.unregister();
}
await worker.start({
onUnhandledRequest: (request, print) => {
print.error();
fail(`Unhandled ${request.method} request to ${request.url}`);
throw new Error(`Unhandled ${request.method} request to ${request.url}`);
},
quiet: true
});
await i18next.use(initReactI18next).init({
lng: "cimode",
debug: false,
resources: {
en: {
translation: english
}
}
});
});
beforeEach(function () {
worker.resetHandlers();
});
afterAll(function () {
worker.resetHandlers();
});
jasmine.getEnv().addReporter({
specDone: (result) =>
(result.failedExpectations || []).forEach((expectation) =>
console.warn(expectation.stack)
)
});
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;