|
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'; |
@@ -209,6 +209,36 @@ describe('architect', () => { |
209 | 209 | expect(all.length).toBe(10); |
210 | 210 | }); |
211 | 211 |
|
| 212 | + it('propagates all logging entries', async () => { |
| 213 | + const logCount = 100; |
| 214 | + |
| 215 | + testArchitectHost.addBuilder( |
| 216 | + 'package:test-logging', |
| 217 | + createBuilder(async (_, context) => { |
| 218 | + for (let i = 0; i < logCount; ++i) { |
| 219 | + context.logger.info(i.toString()); |
| 220 | + } |
| 221 | + |
| 222 | + return { success: true }; |
| 223 | + }), |
| 224 | + ); |
| 225 | + |
| 226 | + const logger = new logging.Logger('test-logger'); |
| 227 | + const logs: string[] = []; |
| 228 | + logger.subscribe({ |
| 229 | + next(entry) { |
| 230 | + logs.push(entry.message); |
| 231 | + }, |
| 232 | + }); |
| 233 | + const run = await architect.scheduleBuilder('package:test-logging', {}, { logger }); |
| 234 | + expect(await run.result).toEqual(jasmine.objectContaining({ success: true })); |
| 235 | + await run.stop(); |
| 236 | + |
| 237 | + for (let i = 0; i < logCount; ++i) { |
| 238 | + expect(logs[i]).toBe(i.toString()); |
| 239 | + } |
| 240 | + }); |
| 241 | + |
212 | 242 | it('reports errors in the builder', async () => { |
213 | 243 | testArchitectHost.addBuilder( |
214 | 244 | 'package:error', |
|
0 commit comments