Skip to content

Commit f5c953d

Browse files
committed
refactor: reduce the number of builds done in output-path_spec
Significantly reduces the number of application builds performed in this test
1 parent 7447211 commit f5c953d

File tree

1 file changed

+13
-116
lines changed

1 file changed

+13
-116
lines changed

packages/angular/build/src/builders/application/tests/options/output-path_spec.ts

Lines changed: 13 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
3232
await harness.writeFile('src/server.ts', `console.log('Hello!');`);
3333
});
3434

35-
describe(`when option value is is a string`, () => {
36-
beforeEach(() => {
35+
describe('when option value is a string', () => {
36+
it('should emit browser, media and server files in their respective directories', async () => {
3737
harness.useTarget('build', {
3838
...BASE_OPTIONS,
3939
polyfills: [],
@@ -44,34 +44,20 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
4444
entry: 'src/server.ts',
4545
},
4646
});
47-
});
4847

49-
it(`should emit browser bundles in 'browser' directory`, async () => {
5048
const { result } = await harness.executeOnce();
5149
expect(result?.success).toBeTrue();
5250

5351
harness.expectFile('dist/browser/main.js').toExist();
54-
});
55-
56-
it(`should emit media files in 'browser/media' directory`, async () => {
57-
const { result } = await harness.executeOnce();
58-
expect(result?.success).toBeTrue();
59-
6052
harness.expectFile('dist/browser/media/spectrum.png').toExist();
6153
harness.expectFile('dist/browser/media/abc.svg').toExist();
62-
});
63-
64-
it(`should emit server bundles in 'server' directory`, async () => {
65-
const { result } = await harness.executeOnce();
66-
expect(result?.success).toBeTrue();
67-
6854
harness.expectFile('dist/server/server.mjs').toExist();
6955
});
7056
});
7157

72-
describe(`when option value is an object`, () => {
58+
describe('when option value is an object', () => {
7359
describe(`'media' is set to 'resources'`, () => {
74-
beforeEach(() => {
60+
it('should emit browser, media and server files in their respective directories', async () => {
7561
harness.useTarget('build', {
7662
...BASE_OPTIONS,
7763
polyfills: [],
@@ -85,33 +71,19 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
8571
entry: 'src/server.ts',
8672
},
8773
});
88-
});
8974

90-
it(`should emit browser bundles in 'browser' directory`, async () => {
9175
const { result } = await harness.executeOnce();
9276
expect(result?.success).toBeTrue();
9377

9478
harness.expectFile('dist/browser/main.js').toExist();
95-
});
96-
97-
it(`should emit media files in 'browser/resource' directory`, async () => {
98-
const { result } = await harness.executeOnce();
99-
expect(result?.success).toBeTrue();
100-
10179
harness.expectFile('dist/browser/resource/spectrum.png').toExist();
10280
harness.expectFile('dist/browser/resource/abc.svg').toExist();
103-
});
104-
105-
it(`should emit server bundles in 'server' directory`, async () => {
106-
const { result } = await harness.executeOnce();
107-
expect(result?.success).toBeTrue();
108-
10981
harness.expectFile('dist/server/server.mjs').toExist();
11082
});
11183
});
11284

11385
describe(`'media' is set to ''`, () => {
114-
beforeEach(() => {
86+
it('should emit browser, media and server files in their respective directories', async () => {
11587
harness.useTarget('build', {
11688
...BASE_OPTIONS,
11789
polyfills: [],
@@ -125,36 +97,20 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
12597
entry: 'src/server.ts',
12698
},
12799
});
128-
});
129100

130-
it(`should emit browser bundles in 'browser' directory`, async () => {
131101
const { result } = await harness.executeOnce();
132102
expect(result?.success).toBeTrue();
133103

134104
harness.expectFile('dist/browser/main.js').toExist();
135-
});
136-
137-
it(`should emit media files in 'browser' directory`, async () => {
138-
const { result } = await harness.executeOnce();
139-
expect(result?.success).toBeTrue();
140-
141105
harness.expectFile('dist/browser/spectrum.png').toExist();
142106
harness.expectFile('dist/browser/abc.svg').toExist();
143-
144-
// Component CSS should not be considered media
145-
harness.expectFile('dist/browser/app.component.css').toNotExist();
146-
});
147-
148-
it(`should emit server bundles in 'server' directory`, async () => {
149-
const { result } = await harness.executeOnce();
150-
expect(result?.success).toBeTrue();
151-
152107
harness.expectFile('dist/server/server.mjs').toExist();
108+
harness.expectFile('dist/browser/app.component.css').toNotExist();
153109
});
154110
});
155111

156112
describe(`'server' is set to 'node-server'`, () => {
157-
beforeEach(() => {
113+
it('should emit browser, media and server files in their respective directories', async () => {
158114
harness.useTarget('build', {
159115
...BASE_OPTIONS,
160116
polyfills: [],
@@ -168,33 +124,19 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
168124
entry: 'src/server.ts',
169125
},
170126
});
171-
});
172127

173-
it(`should emit browser bundles in 'browser' directory`, async () => {
174128
const { result } = await harness.executeOnce();
175129
expect(result?.success).toBeTrue();
176130

177131
harness.expectFile('dist/browser/main.js').toExist();
178-
});
179-
180-
it(`should emit media files in 'browser/media' directory`, async () => {
181-
const { result } = await harness.executeOnce();
182-
expect(result?.success).toBeTrue();
183-
184132
harness.expectFile('dist/browser/media/spectrum.png').toExist();
185133
harness.expectFile('dist/browser/media/abc.svg').toExist();
186-
});
187-
188-
it(`should emit server bundles in 'node-server' directory`, async () => {
189-
const { result } = await harness.executeOnce();
190-
expect(result?.success).toBeTrue();
191-
192134
harness.expectFile('dist/node-server/server.mjs').toExist();
193135
});
194136
});
195137

196138
describe(`'browser' is set to 'public'`, () => {
197-
beforeEach(() => {
139+
it('should emit browser, media and server files in their respective directories', async () => {
198140
harness.useTarget('build', {
199141
...BASE_OPTIONS,
200142
polyfills: [],
@@ -208,51 +150,19 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
208150
entry: 'src/server.ts',
209151
},
210152
});
211-
});
212153

213-
it(`should emit browser bundles in 'public' directory`, async () => {
214154
const { result } = await harness.executeOnce();
215155
expect(result?.success).toBeTrue();
216156

217157
harness.expectFile('dist/public/main.js').toExist();
218-
});
219-
220-
it(`should emit media files in 'public/media' directory`, async () => {
221-
const { result } = await harness.executeOnce();
222-
expect(result?.success).toBeTrue();
223-
224158
harness.expectFile('dist/public/media/spectrum.png').toExist();
225159
harness.expectFile('dist/public/media/abc.svg').toExist();
226-
});
227-
228-
it(`should emit server bundles in 'server' directory`, async () => {
229-
const { result } = await harness.executeOnce();
230-
expect(result?.success).toBeTrue();
231-
232160
harness.expectFile('dist/server/server.mjs').toExist();
233161
});
234162
});
235163

236164
describe(`'browser' is set to ''`, () => {
237-
it(`should emit browser bundles in '' directory`, async () => {
238-
harness.useTarget('build', {
239-
...BASE_OPTIONS,
240-
polyfills: [],
241-
server: 'src/main.server.ts',
242-
outputPath: {
243-
base: 'dist',
244-
browser: '',
245-
},
246-
ssr: false,
247-
});
248-
249-
const { result } = await harness.executeOnce();
250-
expect(result?.success).toBeTrue();
251-
252-
harness.expectFile('dist/main.js').toExist();
253-
});
254-
255-
it(`should emit media files in 'media' directory`, async () => {
165+
it('should emit browser and media files in the root output directory when ssr is disabled', async () => {
256166
harness.useTarget('build', {
257167
...BASE_OPTIONS,
258168
polyfills: [],
@@ -268,11 +178,12 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
268178
const { result } = await harness.executeOnce();
269179
expect(result?.success).toBeTrue();
270180

181+
harness.expectFile('dist/main.js').toExist();
271182
harness.expectFile('dist/media/spectrum.png').toExist();
272183
harness.expectFile('dist/media/abc.svg').toExist();
273184
});
274185

275-
it(`should error when ssr is enabled`, async () => {
186+
it('should error when ssr is enabled', async () => {
276187
harness.useTarget('build', {
277188
...BASE_OPTIONS,
278189
polyfills: [],
@@ -298,8 +209,8 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
298209
});
299210
});
300211

301-
describe(`'server' is set ''`, () => {
302-
beforeEach(() => {
212+
describe(`'server' is set to ''`, () => {
213+
it('should emit browser, media and server files in their respective directories', async () => {
303214
harness.useTarget('build', {
304215
...BASE_OPTIONS,
305216
polyfills: [],
@@ -313,27 +224,13 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => {
313224
entry: 'src/server.ts',
314225
},
315226
});
316-
});
317227

318-
it(`should emit browser bundles in 'browser' directory`, async () => {
319228
const { result } = await harness.executeOnce();
320229
expect(result?.success).toBeTrue();
321230

322231
harness.expectFile('dist/browser/main.js').toExist();
323-
});
324-
325-
it(`should emit media files in 'browser/media' directory`, async () => {
326-
const { result } = await harness.executeOnce();
327-
expect(result?.success).toBeTrue();
328-
329232
harness.expectFile('dist/browser/media/spectrum.png').toExist();
330233
harness.expectFile('dist/browser/media/abc.svg').toExist();
331-
});
332-
333-
it(`should emit server bundles in '' directory`, async () => {
334-
const { result } = await harness.executeOnce();
335-
expect(result?.success).toBeTrue();
336-
337234
harness.expectFile('dist/server.mjs').toExist();
338235
});
339236
});

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy