From 5820cec9cfea0f4195b9b01a26dc392114df44a2 Mon Sep 17 00:00:00 2001 From: Hans Larsen Date: Fri, 9 Sep 2016 16:05:02 -0700 Subject: [PATCH 1/2] fix: lazy loading now works as expected with latest webpack --- addon/ng2/models/find-lazy-modules.ts | 10 ++++------ tests/acceptance/find-lazy-module.spec.ts | 15 ++++++++------- tests/e2e/tests/misc/lazy-module.ts | 4 ++-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/addon/ng2/models/find-lazy-modules.ts b/addon/ng2/models/find-lazy-modules.ts index 71562e8b765b..85d233091e55 100644 --- a/addon/ng2/models/find-lazy-modules.ts +++ b/addon/ng2/models/find-lazy-modules.ts @@ -51,18 +51,16 @@ export function findLoadChildren(tsFilePath: string): string[] { export function findLazyModules(projectRoot: any): string[] { - const result: {[key: string]: boolean} = {}; + const result: {[key: string]: string} = {}; glob.sync(path.join(projectRoot, '/**/*.ts')) .forEach(tsPath => { findLoadChildren(tsPath).forEach(moduleName => { - const fileName = path.resolve(path.dirname(tsPath), moduleName) + '.ts'; + const fileName = path.resolve(projectRoot, moduleName) + '.ts'; if (fs.existsSync(fileName)) { // Put the moduleName as relative to the main.ts. - const fullPath = path.resolve(path.dirname(tsPath), moduleName); - const name = `./${path.relative(projectRoot, fullPath)}.ts`; - result[name] = true; + result[moduleName] = fileName; } }); }); - return Object.keys(result); + return result; } diff --git a/tests/acceptance/find-lazy-module.spec.ts b/tests/acceptance/find-lazy-module.spec.ts index c16bc75c7bf9..92065c1f2e29 100644 --- a/tests/acceptance/find-lazy-module.spec.ts +++ b/tests/acceptance/find-lazy-module.spec.ts @@ -1,7 +1,7 @@ import * as mockFs from 'mock-fs'; import {stripIndents} from 'common-tags'; import {expect} from 'chai'; -import {join} from 'path'; +import {join, sep} from 'path'; import {findLazyModules} from '../../addon/ng2/models/find-lazy-modules'; @@ -39,11 +39,12 @@ describe('find-lazy-module', () => { afterEach(() => mockFs.restore()); it('works', () => { - expect(findLazyModules('project-root')).to.eql([ - './' + join('.', 'moduleA.ts'), - './' + join('.', 'moduleB.ts'), - './' + join('.', 'moduleC.ts'), - './' + join('.', 'app/+workspace/+settings/settings.module.ts') - ]); + expect(findLazyModules('project-root')).to.eql({ + 'moduleA': join(process.cwd(), 'project-root', 'moduleA.ts'), + 'moduleB': join(process.cwd(), 'project-root', 'moduleB.ts'), + 'moduleC': join(process.cwd(), 'project-root', 'moduleC.ts'), + 'app/+workspace/+settings/settings.module': + join(process.cwd(), 'project-root', 'app/+workspace/+settings/settings.module.ts'), + }); }); }); diff --git a/tests/e2e/tests/misc/lazy-module.ts b/tests/e2e/tests/misc/lazy-module.ts index dcabf36b8344..9f25a42e663f 100644 --- a/tests/e2e/tests/misc/lazy-module.ts +++ b/tests/e2e/tests/misc/lazy-module.ts @@ -17,9 +17,9 @@ export default function(argv: any) { return Promise.resolve() .then(() => ng('build')) .then(() => oldNumberOfFiles = readdirSync('dist').length) - .then(() => ng('generate', 'module', 'lazy')) + .then(() => ng('generate', 'module', 'lazy', '--routing')) .then(() => addImportToModule('src/app/app.module.ts', oneLine` - RouterModule.forRoot([{ path: "/lazy", loadChildren: "./lazy/lazy.module#LazyModule" }]) + RouterModule.forRoot([{ path: "lazy", loadChildren: "app/lazy/lazy.module#LazyModule" }]) `, '@angular/router')) .then(() => ng('build')) .then(() => currentNumberOfDistFiles = readdirSync('dist').length) From 5afb1fe4f8f9628908b9eeef1ae5f7d1d8197b79 Mon Sep 17 00:00:00 2001 From: Hans Larsen Date: Fri, 9 Sep 2016 16:08:59 -0700 Subject: [PATCH 2/2] appveyor changes --- .appveyor.yml | 3 +++ tests/acceptance/find-lazy-module.spec.ts | 2 +- tests/e2e_runner.js | 5 ++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index a45906880ab2..2ffc56173f8c 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,6 +3,9 @@ environment: - nodejs_version: "5.0" - nodejs_version: "6.0" +matrix: + fast_finish: true + install: - ps: Install-Product node $env:nodejs_version - npm install diff --git a/tests/acceptance/find-lazy-module.spec.ts b/tests/acceptance/find-lazy-module.spec.ts index 92065c1f2e29..6f926dc6461f 100644 --- a/tests/acceptance/find-lazy-module.spec.ts +++ b/tests/acceptance/find-lazy-module.spec.ts @@ -1,7 +1,7 @@ import * as mockFs from 'mock-fs'; import {stripIndents} from 'common-tags'; import {expect} from 'chai'; -import {join, sep} from 'path'; +import {join} from 'path'; import {findLazyModules} from '../../addon/ng2/models/find-lazy-modules'; diff --git a/tests/e2e_runner.js b/tests/e2e_runner.js index d61d72ec4f02..d173b9080ad9 100644 --- a/tests/e2e_runner.js +++ b/tests/e2e_runner.js @@ -104,7 +104,10 @@ testsToRun.reduce((previous, relativeName) => { }); }, Promise.resolve()) .then( - () => console.log(green('Done.')), + () => { + console.log(green('Done.')); + process.exit(0); + }, (err) => { console.log('\n'); console.error(red(`Test "${currentFileName}" failed...`));