|
6 | 6 | * found in the LICENSE file at https://angular.io/license
|
7 | 7 | */
|
8 | 8 |
|
9 |
| -import { json, schema } from '@angular-devkit/core'; |
| 9 | +import { json, logging, schema } from '@angular-devkit/core'; |
10 | 10 | import { timer } from 'rxjs';
|
11 | 11 | import { map, take, tap, toArray } from 'rxjs/operators';
|
12 | 12 | import { promisify } from 'util';
|
@@ -206,6 +206,36 @@ describe('architect', () => {
|
206 | 206 | expect(all.length).toBe(10);
|
207 | 207 | });
|
208 | 208 |
|
| 209 | + it('propagates all logging entries', async () => { |
| 210 | + const logCount = 100; |
| 211 | + |
| 212 | + testArchitectHost.addBuilder( |
| 213 | + 'package:test-logging', |
| 214 | + createBuilder(async (_, context) => { |
| 215 | + for (let i = 0; i < logCount; ++i) { |
| 216 | + context.logger.info(i.toString()); |
| 217 | + } |
| 218 | + |
| 219 | + return { success: true }; |
| 220 | + }), |
| 221 | + ); |
| 222 | + |
| 223 | + const logger = new logging.Logger('test-logger'); |
| 224 | + const logs: string[] = []; |
| 225 | + logger.subscribe({ |
| 226 | + next(entry) { |
| 227 | + logs.push(entry.message); |
| 228 | + }, |
| 229 | + }); |
| 230 | + const run = await architect.scheduleBuilder('package:test-logging', {}, { logger }); |
| 231 | + expect(await run.result).toEqual(jasmine.objectContaining({ success: true })); |
| 232 | + await run.stop(); |
| 233 | + |
| 234 | + for (let i = 0; i < logCount; ++i) { |
| 235 | + expect(logs[i]).toBe(i.toString()); |
| 236 | + } |
| 237 | + }); |
| 238 | + |
209 | 239 | it('reports errors in the builder', async () => {
|
210 | 240 | testArchitectHost.addBuilder(
|
211 | 241 | 'package:error',
|
|
0 commit comments