Skip to content

Commit 6d89c18

Browse files
committed
test(@angular-devkit/build-angular): expand unit tests dev-server suite to include vite
This commit updates the dev-server unit test suit to run tests using vite
1 parent c0921d6 commit 6d89c18

22 files changed

+1046
-1005
lines changed

packages/angular_devkit/build_angular/src/builders/dev-server/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ export { DevServerBuilderOptions, DevServerBuilderOutput, execute as executeDevS
1515
export default createBuilder<DevServerBuilderOptions, DevServerBuilderOutput>(execute);
1616

1717
// Temporary export to support specs
18-
export { execute as serveWebpackBrowser };
18+
export { execute as executeDevServer };

packages/angular_devkit/build_angular/src/builders/dev-server/tests/behavior/build-assets_spec.ts

+5-9
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,18 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import { serveWebpackBrowser } from '../../index';
9+
import { executeDevServer } from '../../index';
1010
import { executeOnceAndFetch } from '../execute-fetch';
11-
import {
12-
BASE_OPTIONS,
13-
DEV_SERVER_BUILDER_INFO,
14-
describeBuilder,
15-
setupBrowserTarget,
16-
} from '../setup';
11+
import { describeServeBuilder } from '../jasmine-helpers';
12+
import { BASE_OPTIONS, DEV_SERVER_BUILDER_INFO } from '../setup';
1713

18-
describeBuilder(serveWebpackBrowser, DEV_SERVER_BUILDER_INFO, (harness) => {
14+
describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupTarget) => {
1915
describe('Behavior: "browser builder assets"', () => {
2016
it('serves a project JavaScript asset unmodified', async () => {
2117
const javascriptFileContent = '/* a comment */const foo = `bar`;\n\n\n';
2218
await harness.writeFile('src/extra.js', javascriptFileContent);
2319

24-
setupBrowserTarget(harness, {
20+
setupTarget(harness, {
2521
assets: ['src/extra.js'],
2622
optimization: {
2723
scripts: true,

packages/angular_devkit/build_angular/src/builders/dev-server/tests/behavior/build-budgets_spec.ts

+24-23
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,33 @@
77
*/
88

99
import { Type as BudgetType } from '../../../..';
10-
import { serveWebpackBrowser } from '../../index';
11-
import {
12-
BASE_OPTIONS,
13-
DEV_SERVER_BUILDER_INFO,
14-
describeBuilder,
15-
setupBrowserTarget,
16-
} from '../setup';
10+
import { executeDevServer } from '../../index';
11+
import { describeServeBuilder } from '../jasmine-helpers';
12+
import { BASE_OPTIONS, DEV_SERVER_BUILDER_INFO } from '../setup';
1713

18-
describeBuilder(serveWebpackBrowser, DEV_SERVER_BUILDER_INFO, (harness) => {
19-
describe('Behavior: "browser builder budgets"', () => {
20-
beforeEach(() => {
21-
setupBrowserTarget(harness, {
22-
// Add a budget error for any file over 100 bytes
23-
budgets: [{ type: BudgetType.All, maximumError: '100b' }],
24-
optimization: true,
14+
describeServeBuilder(
15+
executeDevServer,
16+
DEV_SERVER_BUILDER_INFO,
17+
(harness, setupTarget, isViteRun) => {
18+
// TODO(fix-vite): currently this is broken in vite.
19+
(isViteRun ? xdescribe : describe)('Behavior: "browser builder budgets"', () => {
20+
beforeEach(() => {
21+
setupTarget(harness, {
22+
// Add a budget error for any file over 100 bytes
23+
budgets: [{ type: BudgetType.All, maximumError: '100b' }],
24+
optimization: true,
25+
});
2526
});
26-
});
2727

28-
it('should ignore budgets defined in the "browserTarget" options', async () => {
29-
harness.useTarget('serve', {
30-
...BASE_OPTIONS,
31-
});
28+
it('should ignore budgets defined in the "buildTarget" options', async () => {
29+
harness.useTarget('serve', {
30+
...BASE_OPTIONS,
31+
});
3232

33-
const { result } = await harness.executeOnce();
33+
const { result } = await harness.executeOnce();
3434

35-
expect(result?.success).toBe(true);
35+
expect(result?.success).toBe(true);
36+
});
3637
});
37-
});
38-
});
38+
},
39+
);

packages/angular_devkit/build_angular/src/builders/dev-server/tests/behavior/build-deploy-url_spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import { serveWebpackBrowser } from '../../index';
9+
import { executeDevServer } from '../../index';
1010
import { executeOnceAndFetch } from '../execute-fetch';
1111
import {
1212
BASE_OPTIONS,
@@ -15,7 +15,7 @@ import {
1515
setupBrowserTarget,
1616
} from '../setup';
1717

18-
describeBuilder(serveWebpackBrowser, DEV_SERVER_BUILDER_INFO, (harness) => {
18+
describeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness) => {
1919
describe('Behavior: "browser builder deployUrl"', () => {
2020
beforeEach(() => {
2121
setupBrowserTarget(harness, {

packages/angular_devkit/build_angular/src/builders/dev-server/tests/behavior/build-inline-critical-css_spec.ts

+5-9
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,15 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
import { serveWebpackBrowser } from '../../index';
9+
import { executeDevServer } from '../../index';
1010
import { executeOnceAndFetch } from '../execute-fetch';
11-
import {
12-
BASE_OPTIONS,
13-
DEV_SERVER_BUILDER_INFO,
14-
describeBuilder,
15-
setupBrowserTarget,
16-
} from '../setup';
11+
import { describeServeBuilder } from '../jasmine-helpers';
12+
import { BASE_OPTIONS, DEV_SERVER_BUILDER_INFO } from '../setup';
1713

18-
describeBuilder(serveWebpackBrowser, DEV_SERVER_BUILDER_INFO, (harness) => {
14+
describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupTarget) => {
1915
describe('Behavior: "browser builder inline critical css"', () => {
2016
beforeEach(async () => {
21-
setupBrowserTarget(harness, {
17+
setupTarget(harness, {
2218
optimization: {
2319
styles: {
2420
minify: true,

packages/angular_devkit/build_angular/src/builders/dev-server/tests/behavior/build_localize_replaced_watch_spec.ts

+64-60
Original file line numberDiff line numberDiff line change
@@ -9,73 +9,77 @@
99
/* eslint-disable max-len */
1010
import { concatMap, count, take, timeout } from 'rxjs';
1111
import { URL } from 'url';
12-
import { serveWebpackBrowser } from '../../index';
13-
import {
14-
BASE_OPTIONS,
15-
BUILD_TIMEOUT,
16-
DEV_SERVER_BUILDER_INFO,
17-
describeBuilder,
18-
setupBrowserTarget,
19-
} from '../setup';
12+
import { executeDevServer } from '../../index';
13+
import { describeServeBuilder } from '../jasmine-helpers';
14+
import { BASE_OPTIONS, BUILD_TIMEOUT, DEV_SERVER_BUILDER_INFO } from '../setup';
2015

21-
describeBuilder(serveWebpackBrowser, DEV_SERVER_BUILDER_INFO, (harness) => {
22-
describe('Behavior: "i18n $localize calls are replaced during watching"', () => {
23-
beforeEach(() => {
24-
harness.useProject('test', {
25-
root: '.',
26-
sourceRoot: 'src',
27-
cli: {
28-
cache: {
29-
enabled: false,
30-
},
31-
},
32-
i18n: {
33-
sourceLocale: {
34-
'code': 'fr',
35-
},
36-
},
37-
});
16+
describeServeBuilder(
17+
executeDevServer,
18+
DEV_SERVER_BUILDER_INFO,
19+
(harness, setupTarget, isViteRun) => {
20+
// TODO(fix-vite): currently this is broken in vite.
21+
(isViteRun ? xdescribe : describe)(
22+
'Behavior: "i18n $localize calls are replaced during watching"',
23+
() => {
24+
beforeEach(() => {
25+
harness.useProject('test', {
26+
root: '.',
27+
sourceRoot: 'src',
28+
cli: {
29+
cache: {
30+
enabled: false,
31+
},
32+
},
33+
i18n: {
34+
sourceLocale: {
35+
'code': 'fr',
36+
},
37+
},
38+
});
3839

39-
setupBrowserTarget(harness, { localize: ['fr'] });
40-
});
40+
setupTarget(harness, { localize: ['fr'] });
41+
});
4142

42-
it('$localize are replaced in watch', async () => {
43-
harness.useTarget('serve', {
44-
...BASE_OPTIONS,
45-
});
43+
it('$localize are replaced in watch', async () => {
44+
harness.useTarget('serve', {
45+
...BASE_OPTIONS,
46+
watch: true,
47+
});
4648

47-
await harness.writeFile(
48-
'src/app/app.component.html',
49-
`
49+
await harness.writeFile(
50+
'src/app/app.component.html',
51+
`
5052
<p id="hello" i18n="An introduction header for this sample">Hello {{ title }}! </p>
5153
`,
52-
);
54+
);
5355

54-
const buildCount = await harness
55-
.execute()
56-
.pipe(
57-
timeout(BUILD_TIMEOUT * 2),
58-
concatMap(async ({ result }, index) => {
59-
expect(result?.success).toBe(true);
56+
const buildCount = await harness
57+
.execute()
58+
.pipe(
59+
timeout(BUILD_TIMEOUT * 2),
60+
concatMap(async ({ result }, index) => {
61+
expect(result?.success).toBe(true);
6062

61-
const response = await fetch(new URL('main.js', `${result?.baseUrl}`));
62-
expect(await response?.text()).not.toContain('$localize`:');
63+
const response = await fetch(new URL('main.js', `${result?.baseUrl}`));
64+
expect(await response?.text()).not.toContain('$localize`:');
6365

64-
switch (index) {
65-
case 0: {
66-
await harness.modifyFile('src/app/app.component.html', (content) =>
67-
content.replace('introduction', 'intro'),
68-
);
69-
break;
70-
}
71-
}
72-
}),
73-
take(2),
74-
count(),
75-
)
76-
.toPromise();
66+
switch (index) {
67+
case 0: {
68+
await harness.modifyFile('src/app/app.component.html', (content) =>
69+
content.replace('introduction', 'intro'),
70+
);
71+
break;
72+
}
73+
}
74+
}),
75+
take(2),
76+
count(),
77+
)
78+
.toPromise();
7779

78-
expect(buildCount).toBe(2);
79-
});
80-
});
81-
});
80+
expect(buildCount).toBe(2);
81+
});
82+
},
83+
);
84+
},
85+
);

0 commit comments

Comments
 (0)