forked from firefox-devtools/debugger
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests-setup.js
More file actions
113 lines (93 loc) · 2.88 KB
/
tests-setup.js
File metadata and controls
113 lines (93 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
// @flow
// $FlowIgnore
global.Worker = require("workerjs");
import path from "path";
// import getConfig from "../../bin/getConfig";
import { readFileSync } from "fs";
import Enzyme from "enzyme";
// $FlowIgnore
import Adapter from "enzyme-adapter-react-16";
import { setupHelper } from "../utils/dbg";
import { prefs } from "../utils/prefs";
import { startSourceMapWorker, stopSourceMapWorker } from "devtools-source-map";
import {
start as startPrettyPrintWorker,
stop as stopPrettyPrintWorker
} from "../workers/pretty-print";
import {
start as startParserWorker,
stop as stopParserWorker,
clearSymbols,
clearASTs
} from "../workers/parser";
import {
start as startSearchWorker,
stop as stopSearchWorker
} from "../workers/search";
import { clearDocuments } from "../utils/editor";
import { clearHistory } from "./utils/history";
import env from "devtools-environment/test-flag";
env.testing = true;
const rootPath = path.join(__dirname, "../../");
function getL10nBundle() {
const read = file => readFileSync(path.join(__dirname, file));
try {
return read("../../assets/panel/debugger.properties");
} catch (e) {
return read("../../../../locales/en-us/debugger.properties");
}
}
global.DebuggerConfig = {};
global.L10N = require("devtools-launchpad").L10N;
global.L10N.setBundle(getL10nBundle());
global.jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000;
global.performance = { now: () => 0 };
const { URL } = require("url");
global.URL = URL;
global.indexedDB = mockIndexeddDB();
Enzyme.configure({ adapter: new Adapter() });
function formatException(reason, p) {
console && console.log("Unhandled Rejection at:", p, "reason:", reason);
}
beforeAll(() => {
startSourceMapWorker(
path.join(rootPath, "node_modules/devtools-source-map/src/worker.js"),
""
);
startPrettyPrintWorker(
path.join(rootPath, "src/workers/pretty-print/worker.js")
);
startParserWorker(path.join(rootPath, "src/workers/parser/worker.js"));
startSearchWorker(path.join(rootPath, "src/workers/search/worker.js"));
process.on("unhandledRejection", formatException);
});
afterAll(() => {
stopSourceMapWorker();
stopPrettyPrintWorker();
stopParserWorker();
stopSearchWorker();
process.removeListener("unhandledRejection", formatException);
});
afterEach(() => {});
beforeEach(async () => {
clearASTs();
await clearSymbols();
clearHistory();
clearDocuments();
prefs.projectDirectoryRoot = "";
// Ensures window.dbg is there to track telemetry
setupHelper({ selectors: {} });
});
function mockIndexeddDB() {
const store = {};
return {
open: () => ({}),
getItem: async key => store[key],
setItem: async (key, value) => {
store[key] = value;
}
};
}