diff --git a/packages/angular_devkit/build_angular/test/browser/web-worker_spec_large.ts b/packages/angular_devkit/build_angular/test/browser/web-worker_spec_large.ts index 208618272b82..2f161af1624d 100644 --- a/packages/angular_devkit/build_angular/test/browser/web-worker_spec_large.ts +++ b/packages/angular_devkit/build_angular/test/browser/web-worker_spec_large.ts @@ -9,7 +9,8 @@ import { Architect } from '@angular-devkit/architect'; import { TestLogger } from '@angular-devkit/architect/testing'; import { join, virtualFs } from '@angular-devkit/core'; -import { debounceTime, takeWhile, tap } from 'rxjs/operators'; +import { timer } from 'rxjs'; +import { debounceTime, map, switchMap, takeWhile, tap } from 'rxjs/operators'; import { browserBuild, createArchitect, host, outputPath } from '../utils'; @@ -140,15 +141,14 @@ describe('Browser Builder Web Worker support', () => { const workerPath = join(outputPath, '0.worker.js'); let workerContent = ''; - const run = await architect.scheduleTarget(target, overrides); - await run.output.pipe( - // Wait for files to be written to disk. - // FIXME: Not quite sure why such a long 'debounceTime' is needed. - // Anything under `2500` is a constant failure locally when using - // 'fdescribe' and this tests doesn't run as first one and is also rather flaky on CI. - // It seems that the outputted files contents don't get updated in time. - debounceTime(2500), - tap((buildEvent) => expect(buildEvent.success).toBe(true, 'build should succeed')), + // The current linux-based CI environments may not fully settled in regards to filesystem + // changes from previous tests which reuse the same directory and fileset. + // The initial delay helps mitigate false positive rebuild triggers in such scenarios. + const { run } = await timer(1000).pipe( + switchMap(() => architect.scheduleTarget(target, overrides)), + switchMap(run => run.output.pipe(map(output => ({ run, output })))), + debounceTime(500), + tap(({ output }) => expect(output.success).toBe(true, 'build should succeed')), tap(() => { switch (phase) { case 1: diff --git a/packages/schematics/angular/workspace/files/tsconfig.json.template b/packages/schematics/angular/workspace/files/tsconfig.json.template index 896ab790a464..f89b38bbce6c 100644 --- a/packages/schematics/angular/workspace/files/tsconfig.json.template +++ b/packages/schematics/angular/workspace/files/tsconfig.json.template @@ -8,6 +8,7 @@ "noImplicitThis": true, "noFallthroughCasesInSwitch": true, "strictNullChecks": true,<% } %> + "skipLibCheck": true, "sourceMap": true, "declaration": false, "downlevelIteration": true, diff --git a/scripts/test.ts b/scripts/test.ts index de17c790e2cb..eb80a32801fe 100644 --- a/scripts/test.ts +++ b/scripts/test.ts @@ -23,6 +23,7 @@ const knownFlakes = [ // Rebuild tests in test-large are flakey if not run as the first suite. // https://github.com/angular/angular-cli/pull/15204 'packages/angular_devkit/build_angular/test/browser/rebuild_spec_large.ts', + 'packages/angular_devkit/build_angular/test/browser/web-worker_spec_large.ts', ]; const projectBaseDir = join(__dirname, '..'); diff --git a/tests/angular_devkit/build_angular/hello-world-app-ve/tsconfig.json b/tests/angular_devkit/build_angular/hello-world-app-ve/tsconfig.json index 641ccb244858..019f3395ce0c 100644 --- a/tests/angular_devkit/build_angular/hello-world-app-ve/tsconfig.json +++ b/tests/angular_devkit/build_angular/hello-world-app-ve/tsconfig.json @@ -5,6 +5,7 @@ "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, + "skipLibCheck": true, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, diff --git a/tests/angular_devkit/build_angular/hello-world-app/tsconfig.json b/tests/angular_devkit/build_angular/hello-world-app/tsconfig.json index 0b2d4a18fce3..440dd0d48ef8 100644 --- a/tests/angular_devkit/build_angular/hello-world-app/tsconfig.json +++ b/tests/angular_devkit/build_angular/hello-world-app/tsconfig.json @@ -5,6 +5,7 @@ "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, + "skipLibCheck": true, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, diff --git a/tests/angular_devkit/build_ng_packagr/ng-packaged-ve/tsconfig.json b/tests/angular_devkit/build_ng_packagr/ng-packaged-ve/tsconfig.json index cc264e55b22d..44a248786405 100644 --- a/tests/angular_devkit/build_ng_packagr/ng-packaged-ve/tsconfig.json +++ b/tests/angular_devkit/build_ng_packagr/ng-packaged-ve/tsconfig.json @@ -5,6 +5,7 @@ "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, + "skipLibCheck": true, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, diff --git a/tests/angular_devkit/build_ng_packagr/ng-packaged/tsconfig.json b/tests/angular_devkit/build_ng_packagr/ng-packaged/tsconfig.json index 40def946d5f4..a7adf91b1716 100644 --- a/tests/angular_devkit/build_ng_packagr/ng-packaged/tsconfig.json +++ b/tests/angular_devkit/build_ng_packagr/ng-packaged/tsconfig.json @@ -5,6 +5,7 @@ "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, + "skipLibCheck": true, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, diff --git a/tests/legacy-cli/e2e/tests/build/skip-lib-check.ts b/tests/legacy-cli/e2e/tests/build/skip-lib-check.ts new file mode 100644 index 000000000000..79c2a753e170 --- /dev/null +++ b/tests/legacy-cli/e2e/tests/build/skip-lib-check.ts @@ -0,0 +1,11 @@ +import { ng } from '../../utils/process'; +import { createProject, updateTsConfig } from '../../utils/project'; + + +export default async function() { + await createProject('strict-workspace-test-project', '--strict'); + await updateTsConfig(json => { + json['compilerOptions']['skipLibCheck'] = false; + }); + await ng('build'); +}