-
-
Notifications
You must be signed in to change notification settings - Fork 197
/
Copy pathtest-execution-serice.ts
67 lines (60 loc) · 2.45 KB
/
test-execution-serice.ts
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
import { InjectorStub } from "../stubs";
import { TestExecutionService } from "../../lib/services/test-execution-service";
import { assert } from "chai";
const karmaPluginName = "karma";
const unitTestsPluginName = "nativescript-unit-test-runner";
function getTestExecutionService(): ITestExecutionService {
const injector = new InjectorStub();
injector.register("testExecutionService", TestExecutionService);
return injector.resolve("testExecutionService");
}
function getDependenciesObj(deps: string[]): IDictionary<string> {
const depsObj: IDictionary<string> = {};
deps.forEach(dep => {
depsObj[dep] = "1.0.0";
});
return depsObj;
}
describe("testExecutionService", () => {
const testCases = [
{
name: "should return false when the project has no dependencies and dev dependencies",
expectedCanStartKarmaServer: false,
projectData: { dependencies: {}, devDependencies: {} }
},
{
name: "should return false when the project has no karma",
expectedCanStartKarmaServer: false,
projectData: { dependencies: getDependenciesObj([unitTestsPluginName]), devDependencies: {} }
},
{
name: "should return false when the project has no unit test runner",
expectedCanStartKarmaServer: false,
projectData: { dependencies: getDependenciesObj([karmaPluginName]), devDependencies: {} }
},
{
name: "should return true when the project has the required plugins as dependencies",
expectedCanStartKarmaServer: true,
projectData: { dependencies: getDependenciesObj([karmaPluginName, unitTestsPluginName]), devDependencies: {} }
},
{
name: "should return true when the project has the required plugins as dev dependencies",
expectedCanStartKarmaServer: true,
projectData: { dependencies: {}, devDependencies: getDependenciesObj([karmaPluginName, unitTestsPluginName]) }
},
{
name: "should return true when the project has the required plugins as dev and normal dependencies",
expectedCanStartKarmaServer: true,
projectData: { dependencies: getDependenciesObj([karmaPluginName]), devDependencies: getDependenciesObj([unitTestsPluginName]) }
}
];
describe("canStartKarmaServer", () => {
_.each(testCases, (testCase: any) => {
it(`${testCase.name}`, async () => {
const testExecutionService = getTestExecutionService();
const canStartKarmaServer = await testExecutionService.canStartKarmaServer(testCase.projectData);
assert.equal(canStartKarmaServer, testCase.expectedCanStartKarmaServer);
});
});
});
});