simplify build setup to use the main tsconfig.json file for tests

This commit is contained in:
Victor Savkin 2018-03-28 11:10:41 -04:00
parent 6394f9e1ed
commit 4e9d52a044
12 changed files with 38 additions and 96 deletions

View File

@ -1,4 +1,11 @@
import { newApp, newLib, newProject, runCLI, updateFile } from '../utils';
import {
newApp,
newLib,
newProject,
runCLI,
updateFile,
runCommand
} from '../utils';
describe('Nrwl Workspace', () => {
it(
@ -32,6 +39,21 @@ describe('Nrwl Workspace', () => {
1000000
);
it('should only run unit tests for all apps and e2e tests for a single app', () => {
newProject();
newApp('myapp');
try {
runCommand('npm run test -- --app myapp --single-run', true);
fail('boom');
} catch (e) {}
try {
runCommand('npm run e2e', true);
fail('boom');
} catch (e) {}
});
it(
'should support router config generation (lazy)',
() => {

View File

@ -228,47 +228,4 @@ describe('Command line', () => {
},
1000000
);
describe('Testing:', () => {
beforeAll(() => {
newProject();
newApp('app1');
}, 1000000);
it('should pass tests', () => {
expect(runCommand('npm run test -- --single-run').toString()).toContain(
'Executed 1 of 1 SUCCESS'
);
});
it('should not be able to run tests on an individual app', () => {
try {
expect(runCommand('npm run test -- --app app1 --single-run'));
fail('boom');
} catch (e) {
const errorOutput = e.stderr.toString();
expect(errorOutput).toContain(
'Nx only supports running unit tests for all apps and libs.'
);
}
});
it('should pass e2e tests', () => {
expect(runCommand('npm run e2e -- --app app1').toString()).toContain(
'should display welcome message'
);
});
it('should not be able to run e2e tests without specifying an app', () => {
try {
expect(runCommand('npm run e2e'));
fail('boom');
} catch (e) {
const errorOutput = e.stderr.toString();
expect(errorOutput).toContain(
'Please provide the app name using --app or -a.'
);
}
});
});
});

View File

@ -106,8 +106,11 @@ export function runSchematic(command: string): string {
}).toString();
}
export function runCommand(command: string): string {
return execSync(command, { cwd: `./tmp/${projectName}` }).toString();
export function runCommand(command: string, silent?: boolean): string {
return execSync(command, {
cwd: `./tmp/${projectName}`,
...(silent ? { stdio: ['ignore', 'ignore', 'ignore'] } : {})
}).toString();
}
export function updateFile(f: string, content: string): void {

View File

@ -20,7 +20,7 @@ module.exports = function(config) {
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [{ pattern: 'test/test.js', watched: false }],
files: [{ pattern: 'build/test.js', watched: false }],
// list of files to exclude
exclude: [],
@ -28,7 +28,7 @@ module.exports = function(config) {
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'test/test.js': ['webpack']
'build/test.js': ['webpack']
},
reporters: ['dots'],

View File

@ -15,7 +15,7 @@
"test:schematics": "yarn linknpm fast && ./scripts/test_schematics.sh",
"test:nx": "yarn linknpm fast && ./scripts/test_nx.sh",
"test":
"yarn linknpm && ./scripts/test_nx.sh && ./scripts/test_schematics.sh",
"yarn linknpm fast && ./scripts/test_nx.sh && ./scripts/test_schematics.sh",
"checkformat": "prettier \"{packages,e2e}/**/*.ts\" --list-different",
"publish_npm": "./scripts/publish.sh"
},

View File

@ -1,11 +1,6 @@
import { Component, Injectable } from '@angular/core';
import {
ComponentFixture,
fakeAsync,
TestBed,
tick
} from '@angular/core/testing';
import { ActivatedRouteSnapshot, Router } from '@angular/router';
import { fakeAsync, TestBed, tick } from '@angular/core/testing';
import { Router } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
import { Actions, Effect, EffectsModule } from '@ngrx/effects';
import { provideMockActions } from '@ngrx/effects/testing';
@ -545,7 +540,3 @@ describe('DataPersistence', () => {
});
});
});
function createRoot(router: Router, type: any): ComponentFixture<any> {
return TestBed.createComponent(type);
}

View File

@ -2,7 +2,7 @@ import { Injectable, Type } from '@angular/core';
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Actions } from '@ngrx/effects';
import { ROUTER_NAVIGATION, RouterNavigationAction } from '@ngrx/router-store';
import { Action, State, Store } from '@ngrx/store';
import { Action, Store } from '@ngrx/store';
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
import {

View File

@ -5,8 +5,8 @@ rm -rf build
./node_modules/.bin/ngc
#Nx client side lib
rm -rf build/packages/nx
cp -r packages/nx/dist build/packages/nx
rm -rf build/packages/nx/dist
rm -rf packages/nx/dist
#TODO This is a temporary hack until we can publish named umds

View File

@ -7,14 +7,5 @@ if [ "$1" != "fast" ]; then
./scripts/build.sh
fi
rm -rf node_modules/@nrwl
cp -r build/packages node_modules/@nrwl
rm -rf test/
tsc -p tsconfig.spec.json
rsync -a --exclude=*.ts packages/ test/packages
rm -rf node_modules/@nrwl
cp -r build/packages node_modules/@nrwl

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
if [ -n "$1" ]; then
jest --maxWorkers=1 ./test/packages/$1.spec.js
jest --maxWorkers=1 ./build/packages/$1.spec.js
else
jest --maxWorkers=1 ./test/packages/{schematics,bazel}
jest --maxWorkers=1 ./build/packages/{schematics,bazel}
fi

View File

@ -20,8 +20,7 @@
"exclude": [
"tmp",
"node_modules",
"packages/schematics/src/*/files/**/*",
"packages/nx"
"packages/schematics/src/*/files/**/*"
],
"angularCompilerOptions": {
"strictMetadataEmit": true,

View File

@ -1,21 +0,0 @@
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "test",
"typeRoots": ["node_modules/@types"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"skipLibCheck": true,
"lib": ["es2017"],
"declaration": true,
"baseUrl": "."
},
"exclude": ["tmp", "node_modules"],
"angularCompilerOptions": {
"strictMetadataEmit": true,
"skipTemplateCodegen": true,
"annotationsAs": "decorators"
}
}