forked from angular/angular-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-scripts.ts
More file actions
71 lines (63 loc) · 2.65 KB
/
test-scripts.ts
File metadata and controls
71 lines (63 loc) · 2.65 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
import { writeMultipleFiles } from '../../utils/fs';
import { ng } from '../../utils/process';
import { updateJsonFile } from '../../utils/project';
import { expectToFail } from '../../utils/utils';
import { stripIndent } from 'common-tags';
export default function () {
return Promise.resolve()
.then(() => ng('test', '--watch=false'))
// prepare global scripts test files
.then(() => writeMultipleFiles({
'src/string-script.js': `stringScriptGlobal = 'string-scripts.js';`,
'src/input-script.js': `inputScriptGlobal = 'input-scripts.js';`,
'src/typings.d.ts': stripIndent`
declare var stringScriptGlobal: any;
declare var inputScriptGlobal: any;
`,
'src/app/app.component.ts': stripIndent`
import { Component } from '@angular/core';
@Component({ selector: 'app-root', template: '' })
export class AppComponent {
stringScriptGlobalProp = stringScriptGlobal;
inputScriptGlobalProp = inputScriptGlobal;
}
`,
'src/app/app.component.spec.ts': stripIndent`
import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({ declarations: [ AppComponent ] });
TestBed.compileComponents();
});
it('should have access to string-script.js', async(() => {
let app = TestBed.createComponent(AppComponent).debugElement.componentInstance;
expect(app.stringScriptGlobalProp).toEqual('string-scripts.js');
}));
it('should have access to input-script.js', async(() => {
let app = TestBed.createComponent(AppComponent).debugElement.componentInstance;
expect(app.inputScriptGlobalProp).toEqual('input-scripts.js');
}));
});
describe('Spec', () => {
it('should have access to string-script.js', async(() => {
expect(stringScriptGlobal).toBe('string-scripts.js');
}));
it('should have access to input-script.js', async(() => {
expect(inputScriptGlobal).toBe('input-scripts.js');
}));
});
`
}))
// should fail because the global scripts were not added to scripts array
.then(() => expectToFail(() => ng('test', '--single-run')))
.then(() => updateJsonFile('angular-cli.json', configJson => {
const app = configJson['apps'][0];
app['scripts'] = [
'string-script.js',
{ input: 'input-script.js' }
];
}))
// should pass now
.then(() => ng('test', '--single-run'));
}