-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
69 lines (64 loc) · 1.54 KB
/
index.js
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
const urllib = require('urllib');
exports.createMockApp = (app, properties = []) => {
const readyFunction = [];
const coreLogger = app.getLogger();
const mockApp = {
name: '',
coreLogger,
config: app.getConfig(),
loader: {
appInfo: {},
getLoadUnits: () => [],
},
logger: coreLogger,
loggers: {
coreLogger,
},
getLogger() {
return coreLogger;
},
readyCallback() {
return true;
},
createAnonymousContext() {
return {};
},
deprecate(msg) {
console.warn(msg);
},
httpclient: urllib,
beforeStart(fn) {
readyFunction.push(fn());
},
getBeforeStartList() {
return readyFunction;
},
toAsyncFunction(method) {
return method;
},
runInBackground(asyncFn) {
asyncFn().catch(err => coreLogger.error(err));
}
};
for (const property of properties) {
mockApp[property] = app[property];
}
return mockApp;
};
exports.completeAssign = (...sources) => {
const target = sources.shift();
sources.forEach(source => {
Object.keys(source).forEach(key => {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
// by default, Object.assign copies enumerable Symbols too
/* istanbul ignore next */
Object.getOwnPropertySymbols(source).forEach(sym => {
const descriptor = Object.getOwnPropertyDescriptor(source, sym);
if (descriptor.enumerable) {
Object.defineProperty(target, sym, descriptor);
}
});
});
return target;
};