From 1ac4d4842f71088589548c1af11dd54248a39634 Mon Sep 17 00:00:00 2001 From: FrozenPandaz Date: Sun, 9 Apr 2017 22:53:40 -0400 Subject: [PATCH] test(@ngtools/webpack): move server stuff to normal test app --- .../webpack/test-app/app/main.server.aot.ts | 5 ++++ .../webpack/test-app/app/main.server.jit.ts | 5 ++++ .../webpack/test-app/app/server-app.module.ts | 13 +++++++++ .../e2e/assets/webpack/test-app/package.json | 27 ++++++++++--------- .../webpack.server.config.js} | 8 ++---- .../test-server-app/app/app.component.html | 5 ---- .../test-server-app/app/app.component.scss | 3 --- .../test-server-app/app/app.component.ts | 15 ----------- .../webpack/test-server-app/app/app.module.ts | 27 ------------------- .../app/feature/feature.module.ts | 20 -------------- .../app/feature/lazy-feature.module.ts | 23 ---------------- .../webpack/test-server-app/app/injectable.ts | 8 ------ .../test-server-app/app/lazy.module.ts | 26 ------------------ .../webpack/test-server-app/app/main.ts | 5 ---- .../assets/webpack/test-server-app/index.html | 12 --------- .../webpack/test-server-app/package.json | 27 ------------------- .../webpack/test-server-app/tsconfig.json | 24 ----------------- tests/e2e/tests/packages/webpack/server.ts | 12 +++++---- 18 files changed, 46 insertions(+), 219 deletions(-) create mode 100644 tests/e2e/assets/webpack/test-app/app/main.server.aot.ts create mode 100644 tests/e2e/assets/webpack/test-app/app/main.server.jit.ts create mode 100644 tests/e2e/assets/webpack/test-app/app/server-app.module.ts rename tests/e2e/assets/webpack/{test-server-app/webpack.config.js => test-app/webpack.server.config.js} (81%) delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/app.component.html delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/app.component.scss delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/app.component.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/app.module.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/feature/feature.module.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/feature/lazy-feature.module.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/injectable.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/lazy.module.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/app/main.ts delete mode 100644 tests/e2e/assets/webpack/test-server-app/index.html delete mode 100644 tests/e2e/assets/webpack/test-server-app/package.json delete mode 100644 tests/e2e/assets/webpack/test-server-app/tsconfig.json diff --git a/tests/e2e/assets/webpack/test-app/app/main.server.aot.ts b/tests/e2e/assets/webpack/test-app/app/main.server.aot.ts new file mode 100644 index 000000000000..f9651567170b --- /dev/null +++ b/tests/e2e/assets/webpack/test-app/app/main.server.aot.ts @@ -0,0 +1,5 @@ +import 'core-js/es7/reflect'; +import {platformServer} from '@angular/platform-server'; +import {ServerAppModuleNgFactory} from './ngfactory/app/server-app.module.ngfactory'; + +platformServer().bootstrapModuleFactory(ServerAppModuleNgFactory); diff --git a/tests/e2e/assets/webpack/test-app/app/main.server.jit.ts b/tests/e2e/assets/webpack/test-app/app/main.server.jit.ts new file mode 100644 index 000000000000..63fdb7d8aa61 --- /dev/null +++ b/tests/e2e/assets/webpack/test-app/app/main.server.jit.ts @@ -0,0 +1,5 @@ +import 'core-js/es7/reflect'; +import {platformDynamicServer} from '@angular/platform-server'; +import {ServerAppModule} from './server-app.module'; + +platformDynamicServer().bootstrapModule(ServerAppModule); diff --git a/tests/e2e/assets/webpack/test-app/app/server-app.module.ts b/tests/e2e/assets/webpack/test-app/app/server-app.module.ts new file mode 100644 index 000000000000..0682f3b8e971 --- /dev/null +++ b/tests/e2e/assets/webpack/test-app/app/server-app.module.ts @@ -0,0 +1,13 @@ +import { NgModule, Component } from '@angular/core'; +import { ServerModule } from '@angular/platform-server'; +import { AppModule } from './app.module'; +import { AppComponent } from './app.component'; + +@NgModule({ + imports: [ + AppModule, + ServerModule + ], + bootstrap: [AppComponent] +}) +export class ServerAppModule { } diff --git a/tests/e2e/assets/webpack/test-app/package.json b/tests/e2e/assets/webpack/test-app/package.json index 204f92eaa090..d117daedaa38 100644 --- a/tests/e2e/assets/webpack/test-app/package.json +++ b/tests/e2e/assets/webpack/test-app/package.json @@ -2,26 +2,27 @@ "name": "test", "license": "MIT", "dependencies": { - "@angular/common": "^2.3.1", - "@angular/compiler": "^2.3.1", - "@angular/compiler-cli": "^2.3.1", - "@angular/core": "^2.3.1", - "@angular/http": "^2.3.1", - "@angular/platform-browser": "^2.3.1", - "@angular/platform-browser-dynamic": "^2.3.1", - "@angular/platform-server": "^2.3.1", - "@angular/router": "^3.3.1", + "@angular/animations": "^4.0.0", + "@angular/common": "^4.0.0", + "@angular/compiler": "^4.0.0", + "@angular/compiler-cli": "^4.0.0", + "@angular/core": "^4.0.0", + "@angular/http": "^4.0.0", + "@angular/platform-browser": "^4.0.0", + "@angular/platform-browser-dynamic": "^4.0.0", + "@angular/platform-server": "^4.0.0", + "@angular/router": "^4.0.0", "@ngtools/webpack": "0.0.0", "core-js": "^2.4.1", - "rxjs": "^5.0.1", - "zone.js": "^0.7.2" + "rxjs": "^5.3.0", + "zone.js": "^0.8.9" }, "devDependencies": { "node-sass": "^3.7.0", "performance-now": "^0.2.0", "raw-loader": "^0.5.1", "sass-loader": "^3.2.0", - "typescript": "~2.0.3", - "webpack": "2.2.0" + "typescript": "^2.3.2", + "webpack": "2.2.1" } } diff --git a/tests/e2e/assets/webpack/test-server-app/webpack.config.js b/tests/e2e/assets/webpack/test-app/webpack.server.config.js similarity index 81% rename from tests/e2e/assets/webpack/test-server-app/webpack.config.js rename to tests/e2e/assets/webpack/test-app/webpack.server.config.js index 8694fa6a6900..609162b228e2 100644 --- a/tests/e2e/assets/webpack/test-server-app/webpack.config.js +++ b/tests/e2e/assets/webpack/test-app/webpack.server.config.js @@ -4,12 +4,11 @@ module.exports = { resolve: { extensions: ['.ts', '.js'] }, - target: 'web', - entry: './app/main.ts', + entry: './app/main.server.aot.ts', output: { path: './dist', publicPath: 'dist/', - filename: 'app.main.js' + filename: 'app.server.main.js' }, plugins: [ new ngToolsWebpack.AotPlugin({ @@ -23,8 +22,5 @@ module.exports = { { test: /\.html$/, loader: 'raw-loader' }, { test: /\.ts$/, loader: '@ngtools/webpack' } ] - }, - devServer: { - historyApiFallback: true } }; diff --git a/tests/e2e/assets/webpack/test-server-app/app/app.component.html b/tests/e2e/assets/webpack/test-server-app/app/app.component.html deleted file mode 100644 index 5a532db9308f..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/app.component.html +++ /dev/null @@ -1,5 +0,0 @@ -
-

hello world

- lazy - -
diff --git a/tests/e2e/assets/webpack/test-server-app/app/app.component.scss b/tests/e2e/assets/webpack/test-server-app/app/app.component.scss deleted file mode 100644 index 5cde7b922336..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/app.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - background-color: blue; -} diff --git a/tests/e2e/assets/webpack/test-server-app/app/app.component.ts b/tests/e2e/assets/webpack/test-server-app/app/app.component.ts deleted file mode 100644 index 82a4059565d3..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/app.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {Component, ViewEncapsulation} from '@angular/core'; -import {MyInjectable} from './injectable'; - - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'], - encapsulation: ViewEncapsulation.None -}) -export class AppComponent { - constructor(public inj: MyInjectable) { - console.log(inj); - } -} diff --git a/tests/e2e/assets/webpack/test-server-app/app/app.module.ts b/tests/e2e/assets/webpack/test-server-app/app/app.module.ts deleted file mode 100644 index 6f8407fdfd29..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/app.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { NgModule, Component } from '@angular/core'; -import { ServerModule } from '@angular/platform-server'; -import { RouterModule } from '@angular/router'; -import { AppComponent } from './app.component'; - -@Component({ - selector: 'home-view', - template: 'home!' -}) -export class HomeView {} - - -@NgModule({ - declarations: [ - AppComponent, - HomeView - ], - imports: [ - ServerModule, - RouterModule.forRoot([ - {path: 'lazy', loadChildren: './lazy.module#LazyModule'}, - {path: '', component: HomeView} - ]) - ], - bootstrap: [AppComponent] -}) -export class AppModule { } diff --git a/tests/e2e/assets/webpack/test-server-app/app/feature/feature.module.ts b/tests/e2e/assets/webpack/test-server-app/app/feature/feature.module.ts deleted file mode 100644 index f464ca028b05..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/feature/feature.module.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {NgModule, Component} from '@angular/core'; -import {RouterModule} from '@angular/router'; - -@Component({ - selector: 'feature-component', - template: 'foo.html' -}) -export class FeatureComponent {} - -@NgModule({ - declarations: [ - FeatureComponent - ], - imports: [ - RouterModule.forChild([ - { path: '', component: FeatureComponent} - ]) - ] -}) -export class FeatureModule {} diff --git a/tests/e2e/assets/webpack/test-server-app/app/feature/lazy-feature.module.ts b/tests/e2e/assets/webpack/test-server-app/app/feature/lazy-feature.module.ts deleted file mode 100644 index 8fafca158b24..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/feature/lazy-feature.module.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {NgModule, Component} from '@angular/core'; -import {RouterModule} from '@angular/router'; -import {HttpModule, Http} from '@angular/http'; - -@Component({ - selector: 'lazy-feature-comp', - template: 'lazy feature!' -}) -export class LazyFeatureComponent {} - -@NgModule({ - imports: [ - RouterModule.forChild([ - {path: '', component: LazyFeatureComponent, pathMatch: 'full'}, - {path: 'feature', loadChildren: './feature.module#FeatureModule'} - ]), - HttpModule - ], - declarations: [LazyFeatureComponent] -}) -export class LazyFeatureModule { - constructor(http: Http) {} -} diff --git a/tests/e2e/assets/webpack/test-server-app/app/injectable.ts b/tests/e2e/assets/webpack/test-server-app/app/injectable.ts deleted file mode 100644 index 04d8486586c4..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/injectable.ts +++ /dev/null @@ -1,8 +0,0 @@ -import {Injectable, Inject, ViewContainerRef} from '@angular/core'; -import {DOCUMENT} from '@angular/platform-browser'; - - -@Injectable() -export class MyInjectable { - constructor(public viewContainer: ViewContainerRef, @Inject(DOCUMENT) public doc) {} -} diff --git a/tests/e2e/assets/webpack/test-server-app/app/lazy.module.ts b/tests/e2e/assets/webpack/test-server-app/app/lazy.module.ts deleted file mode 100644 index 96da4de7515b..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/lazy.module.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {NgModule, Component} from '@angular/core'; -import {RouterModule} from '@angular/router'; -import {HttpModule, Http} from '@angular/http'; - -@Component({ - selector: 'lazy-comp', - template: 'lazy!' -}) -export class LazyComponent {} - -@NgModule({ - imports: [ - RouterModule.forChild([ - {path: '', component: LazyComponent, pathMatch: 'full'}, - {path: 'feature', loadChildren: './feature/feature.module#FeatureModule'}, - {path: 'lazy-feature', loadChildren: './feature/lazy-feature.module#LazyFeatureModule'} - ]), - HttpModule - ], - declarations: [LazyComponent] -}) -export class LazyModule { - constructor(http: Http) {} -} - -export class SecondModule {} diff --git a/tests/e2e/assets/webpack/test-server-app/app/main.ts b/tests/e2e/assets/webpack/test-server-app/app/main.ts deleted file mode 100644 index 9aae9848fbcc..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/app/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -import 'core-js/es7/reflect'; -import {platformDynamicServer} from '@angular/platform-server'; -import {AppModule} from './app.module'; - -platformDynamicServer().bootstrapModule(AppModule); diff --git a/tests/e2e/assets/webpack/test-server-app/index.html b/tests/e2e/assets/webpack/test-server-app/index.html deleted file mode 100644 index 89fb0893c35d..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - Document - - - - - - - - diff --git a/tests/e2e/assets/webpack/test-server-app/package.json b/tests/e2e/assets/webpack/test-server-app/package.json deleted file mode 100644 index 79973a6ee08a..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "test", - "license": "MIT", - "dependencies": { - "@angular/common": "^4.0.0-rc.2", - "@angular/compiler": "^4.0.0-rc.2", - "@angular/compiler-cli": "^4.0.0-rc.2", - "@angular/core": "^4.0.0-rc.2", - "@angular/http": "^4.0.0-rc.2", - "@angular/platform-browser": "^4.0.0-rc.2", - "@angular/platform-browser-dynamic": "^4.0.0-rc.2", - "@angular/platform-server": "^4.0.0-rc.2", - "@angular/router": "^4.0.0-rc.2", - "@ngtools/webpack": "0.0.0", - "core-js": "^2.4.1", - "rxjs": "^5.2.0", - "zone.js": "^0.7.7" - }, - "devDependencies": { - "node-sass": "^4.5.0", - "performance-now": "^0.2.0", - "raw-loader": "^0.5.1", - "sass-loader": "^6.0.3", - "typescript": "^2.2.1", - "webpack": "2.2.1" - } -} diff --git a/tests/e2e/assets/webpack/test-server-app/tsconfig.json b/tests/e2e/assets/webpack/test-server-app/tsconfig.json deleted file mode 100644 index cee38681d901..000000000000 --- a/tests/e2e/assets/webpack/test-server-app/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "", - "module": "es2015", - "moduleResolution": "node", - "target": "es5", - "noImplicitAny": false, - "sourceMap": true, - "mapRoot": "", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "lib": [ - "es2016", - "dom" - ], - "outDir": "lib", - "skipLibCheck": true, - "rootDir": "." - }, - "angularCompilerOptions": { - "genDir": "./app/ngfactory", - "entryModule": "app/app.module#AppModule" - } -} diff --git a/tests/e2e/tests/packages/webpack/server.ts b/tests/e2e/tests/packages/webpack/server.ts index 1ccc7b73fba4..85ab2082fd7c 100644 --- a/tests/e2e/tests/packages/webpack/server.ts +++ b/tests/e2e/tests/packages/webpack/server.ts @@ -6,15 +6,17 @@ import {expectFileToMatch} from '../../../utils/fs'; export default function(skipCleaning: () => void) { return Promise.resolve() - .then(() => createProjectFromAsset('webpack/test-server-app')) - .then(() => exec(normalize('node_modules/.bin/webpack'))) - .then(() => expectFileToMatch('dist/app.main.js', + .then(() => createProjectFromAsset('webpack/test-app')) + .then(() => exec(normalize('node_modules/.bin/webpack'), + '--config', + 'webpack.server.config.js')) + .then(() => expectFileToMatch('dist/app.server.main.js', new RegExp('.bootstrapModuleFactory')) - .then(() => expectFileToMatch('dist/app.main.js', + .then(() => expectFileToMatch('dist/app.server.main.js', new RegExp('MyInjectable.ctorParameters = .*' + 'type: .*ViewContainerRef.*' + 'type: undefined, decorators.*Inject.*args: .*DOCUMENT.*')) - .then(() => expectFileToMatch('dist/app.main.js', + .then(() => expectFileToMatch('dist/app.server.main.js', new RegExp('AppComponent.ctorParameters = .*MyInjectable')) .then(() => skipCleaning()); }