forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunittests.ts
More file actions
66 lines (56 loc) · 2.43 KB
/
unittests.ts
File metadata and controls
66 lines (56 loc) · 2.43 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
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
'use strict';
// tslint:disable:no-any no-require-imports no-var-requires
if ((Reflect as any).metadata === undefined) {
require('reflect-metadata');
}
process.env.VSC_PYTHON_CI_TEST = '1';
process.env.VSC_PYTHON_UNIT_TEST = '1';
import { setUpDomEnvironment, setupTranspile } from './datascience/reactHelpers';
import { initialize } from './vscode-mock';
// Custom module loader so we skip .css files that break non webpack wrapped compiles
// tslint:disable-next-line:no-var-requires no-require-imports
const Module = require('module');
// Required for DS functional tests.
// tslint:disable-next-line:no-function-expression
(function () {
const origRequire = Module.prototype.require;
const _require = (context: any, filepath: any) => {
return origRequire.call(context, filepath);
};
Module.prototype.require = function (filepath: string) {
if (filepath.endsWith('.css') || filepath.endsWith('.svg')) {
return '';
}
if (filepath.startsWith('expose-loader?')) {
// Pull out the thing to expose
const queryEnd = filepath.indexOf('!');
if (queryEnd >= 0) {
const query = filepath.substring('expose-loader?'.length, queryEnd);
// tslint:disable-next-line:no-invalid-this
(global as any)[query] = _require(this, filepath.substring(queryEnd + 1));
return '';
}
}
if (filepath.startsWith('slickgrid/slick.core')) {
// Special case. This module sticks something into the global 'window' object.
// tslint:disable-next-line:no-invalid-this
const result = _require(this, filepath);
// However it doesn't look in the 'window' object later. we have to move it to
// the globals when in node.js
if ((window as any).Slick) {
(global as any).Slick = (window as any).Slick;
}
return result;
}
// tslint:disable-next-line:no-invalid-this
return _require(this, filepath);
};
})();
// nteract/transforms-full expects to run in the browser so we have to fake
// parts of the browser here.
setUpDomEnvironment();
// Also have to setup babel to get the monaco editor to work.
setupTranspile();
initialize();