-
Notifications
You must be signed in to change notification settings - Fork 188
Expand file tree
/
Copy pathtestSuite.ts
More file actions
148 lines (136 loc) · 4.98 KB
/
Copy pathtestSuite.ts
File metadata and controls
148 lines (136 loc) · 4.98 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import mocha from 'mocha';
import constants from '../constants';
import fdc3FindIntent from './advanced/fdc3.findIntent';
import fdc3FindIntentsByContext from './advanced/fdc3.findIntentsByContext';
import fdc3DestructuredMethods from './advanced/fdc3.destructured-methods';
import fdc3GetInfo from './advanced/fdc3.getInfo';
import fdc3getAppMetadata from './advanced/fdc3.getAppMetadata';
import fdc3FindInstances from './advanced/fdc3.findInstances';
import fdc3Open from './advanced/fdc3.open';
import fdc3RaiseIntent from './advanced/fdc3.raiseIntent';
import fdc3RaiseIntent_Result from './advanced/fdc3.raiseIntent-Result';
import fdc3RaiseIntent_NoAppsFound from './advanced/fdc3.raiseIntent-NoAppsFound';
import fdc3AppChannels from './advanced/fdc3.app-channels';
import fdc3UserChannels from './advanced/fdc3.user-channels';
import fdc3ContextMetadata from './advanced/fdc3.context-metadata';
import fdc3IntentContextMetadata from './advanced/fdc3.intent-context-metadata';
import fdc3IntentListenerConflict from './advanced/fdc3.intent-listener-conflict';
import {
fdc3BasicGetAgent,
fdc3BasicCL1,
fdc3BasicCL2,
fdc3BasicIL1,
fdc3BasicAEL1,
fdc3BasicAEL2,
fdc3BasicGI1,
fdc3BasicGI2,
fdc3BasicAC1,
fdc3BasicUC1,
fdc3BasicJC1,
fdc3BasicDM1,
fdc3BasicRI1,
fdc3BasicRI2,
} from './basic/fdc3.basic';
import {
fdc3ResolveAmbiguousIntentTarget,
fdc3ResolveAmbiguousContextTarget,
fdc3ResolveAmbiguousIntentTargetMultiInstance,
fdc3ResolveAmbiguousContextTargetMultiInstance,
fdc3ChannelChangedEvent,
} from './manual/fdc3.manual';
type testSet = { [key: string]: (() => Promise<Mocha.Suite>)[] };
const basicSuite: testSet = {
'fdc3.basicGetAgent': [fdc3BasicGetAgent],
'fdc3.basicCL1': [fdc3BasicCL1],
'fdc3.basicCL2': [fdc3BasicCL2],
'fdc3.basicIL1': [fdc3BasicIL1],
'fdc3.basicAEL1': [fdc3BasicAEL1],
'fdc3.basicAEL2': [fdc3BasicAEL2],
'fdc3.basicGI1': [fdc3BasicGI1],
'fdc3.basicGI2': [fdc3BasicGI2],
'fdc3.basicAC1': [fdc3BasicAC1],
'fdc3.basicUC1': [fdc3BasicUC1],
'fdc3.basicJC1': [fdc3BasicJC1],
'fdc3.basicDM1': [fdc3BasicDM1],
'fdc3.basicRI1': [fdc3BasicRI1],
'fdc3.basicRI2': [fdc3BasicRI2],
};
const advancedSuite: testSet = {
'fdc3.open': [fdc3Open],
'fdc3.getInfo': [fdc3GetInfo],
'fdc3.getAppMetadata': [fdc3getAppMetadata],
'fdc3.appChannels': [fdc3AppChannels],
'fdc3.userChannels': [fdc3UserChannels],
'fdc3.findInstances': [fdc3FindInstances],
'fdc3.findIntent': [fdc3FindIntent],
'fdc3.findIntentsByContext': [fdc3FindIntentsByContext],
'fdc3.raiseIntent': [fdc3RaiseIntent],
'fdc3.raiseIntent (result)': [fdc3RaiseIntent_Result],
'fdc3.raiseIntent (throws error)': [fdc3RaiseIntent_NoAppsFound],
'fdc3.contextMetadata': [fdc3ContextMetadata],
'fdc3.intentContextMetadata': [fdc3IntentContextMetadata],
'fdc3.intentListenerConflict': [fdc3IntentListenerConflict],
'fdc3.destructuredMethods': [fdc3DestructuredMethods],
};
const ambiguousTests: testSet = {
'fdc3.ResolveAmbiguousIntentTarget': [fdc3ResolveAmbiguousIntentTarget],
'fdc3.ResolveAmbiguousContextTarget': [fdc3ResolveAmbiguousContextTarget],
'fdc3.ResolveAmbiguousIntentTargetMultiInstance': [fdc3ResolveAmbiguousIntentTargetMultiInstance],
'fdc3.ResolveAmbiguousContextTargetMultiInstance': [fdc3ResolveAmbiguousContextTargetMultiInstance],
'fdc3.ChannelChangedEvent': [fdc3ChannelChangedEvent],
};
function stripSuites(ts: testSet[]): (() => Promise<Mocha.Suite>)[] {
const out: (() => Promise<Mocha.Suite>)[] = [];
ts.map(item => {
const sets = Object.values(item);
sets.forEach(set => set.forEach(test => out.push(test)));
});
return out;
}
export const allTests: testSet = {
All: stripSuites([basicSuite, advancedSuite]),
...basicSuite,
...advancedSuite,
};
export const allManualTests: testSet = {
...ambiguousTests,
};
export const packs: { [index: string]: string[] } = {
All: ['All'],
'Individual Basic': Object.keys(basicSuite),
'Individual Advanced': Object.keys(advancedSuite),
};
export function getPackNames(): string[] {
return Object.keys(packs);
}
export function getPackMembers(packName: string): string[] {
return packs[packName];
}
/**
* Intended for running tests in container with results shown
* in HTML page
*/
export const executeTestsInBrowser = async (pack: string) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(mocha as any).timeout(constants.TestTimeout);
const suite = allTests[pack];
for (let index = 0; index < suite.length; index++) {
await suite[index]();
}
mocha.run();
};
/**
* Intended for running Manual tests in container with results shown
* in HTML page
*/
export const executeManualTestsInBrowser = async (pack: string) => {
console.log('Pack', pack);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(mocha as any).timeout(constants.TestTimeout);
const suite = allManualTests[pack];
console.log('************ found suite ************', suite);
for (let index = 0; index < suite.length; index++) {
await suite[index]();
}
mocha.run();
};