Skip to content

Commit 3af138f

Browse files
committed
test: add support for devkit
Using --devkit=/absolute/path/to/devkit/repo the e2e tests will now run with the devkit passed in. It will build the devkit first, then change the package.json to use the proper devkit tgz.
1 parent a29af80 commit 3af138f

File tree

6 files changed

+67
-4
lines changed

6 files changed

+67
-4
lines changed

tests/e2e/setup/010-build-devkit.ts

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {join} from 'path';
2+
import {getGlobalVariable} from '../utils/env';
3+
import { exec, npm } from '../utils/process';
4+
import {updateJsonFile} from '../utils/project';
5+
6+
const packages = require('../../../lib/packages').packages;
7+
8+
export default function() {
9+
const argv = getGlobalVariable('argv');
10+
11+
if (argv.nobuild) {
12+
return;
13+
}
14+
if (!argv.devkit) {
15+
return;
16+
}
17+
18+
return exec(`${argv.devkit}/bin/devkit-admin`, 'build', '--local');
19+
}

tests/e2e/setup/010-build.ts renamed to tests/e2e/setup/015-build.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default function() {
1212
return;
1313
}
1414

15-
return npm('run', 'build', '--', '--local')
15+
return npm('run', 'build', '--', '--local', argv.devkit ? '--devkit=' + argv.devkit : undefined)
1616
.then(() => {
1717
if (!argv.nightly && !argv['ng-sha']) {
1818
return;

tests/e2e/setup/500-create-project.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ import {
77
useNg2,
88
useSha,
99
useCIChrome,
10-
useCIDefaults
10+
useCIDefaults,
1111
useBuiltPackages,
12+
useDevKit,
1213
} from '../utils/project';
1314
import {gitClean, gitCommit} from '../utils/git';
1415
import {getGlobalVariable} from '../utils/env';
@@ -40,6 +41,7 @@ export default function() {
4041
return Promise.resolve()
4142
.then(() => createProject)
4243
.then(() => useBuiltPackages())
44+
.then(() => argv.devkit && useDevKit(argv.devkit))
4345
.then(() => useCIChrome())
4446
.then(() => useCIDefaults())
4547
.then(() => argv['ng2'] ? useNg2() : Promise.resolve())

tests/e2e/utils/project.ts

+26
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,32 @@ export function createProject(name: string, ...args: string[]) {
4747
.then(() => silentNpm('install'));
4848
}
4949

50+
51+
export function useDevKit(devkitRoot: string) {
52+
return Promise.resolve()
53+
.then(() => {
54+
// Load the packages info for devkit.
55+
const devkitPackages = require(devkitRoot + '/lib/packages').packages;
56+
57+
return updateJsonFile('package.json', json => {
58+
if (!json['dependencies']) {
59+
json['dependencies'] = {};
60+
}
61+
if (!json['devDependencies']) {
62+
json['devDependencies'] = {};
63+
}
64+
65+
for (const packageName of Object.keys(devkitPackages)) {
66+
if (json['dependencies'].hasOwnProperty(packageName)) {
67+
json['dependencies'][packageName] = devkitPackages[packageName].tar;
68+
} else if (json['devDependencies'].hasOwnProperty(packageName)) {
69+
json['devDependencies'][packageName] = devkitPackages[packageName].tar;
70+
}
71+
}
72+
});
73+
});
74+
}
75+
5076
export function useBuiltPackages() {
5177
return Promise.resolve()
5278
.then(() => updateJsonFile('package.json', json => {

tests/e2e_runner.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Error.stackTraceLimit = Infinity;
4040
* --nb-shards Total number of shards that this is part of. Default is 2 if --shard is
4141
* passed in.
4242
* --shard Index of this processes' shard.
43+
* --devkit=path Path to the devkit to use. The devkit will be built prior to running.
4344
* If unnamed flags are passed in, the list of tests will be filtered to include only those passed.
4445
*/
4546
const argv = minimist(process.argv.slice(2), {
@@ -53,7 +54,7 @@ const argv = minimist(process.argv.slice(2), {
5354
'noproject',
5455
'verbose',
5556
],
56-
'string': ['glob', 'ignore', 'reuse', 'ng-sha', ],
57+
'string': ['devkit', 'glob', 'ignore', 'reuse', 'ng-sha', ],
5758
'number': ['nb-shards', 'shard']
5859
});
5960

tools/publish/src/build.ts

+16-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ function getDeps(pkg: any): any {
5757
}
5858

5959

60-
export default function build(packagesToBuild: string[], opts: { local: boolean },
60+
export default function build(packagesToBuild: string[],
61+
opts: { local: boolean, devkit: string },
6162
logger: Logger): Promise<void> {
6263
const { packages, tools } = require('../../../lib/packages');
6364

@@ -256,6 +257,20 @@ export default function build(packagesToBuild: string[], opts: { local: boolean
256257
}
257258
}
258259

260+
if (opts.devkit) {
261+
// Load the packages info for devkit.
262+
const devkitPackages = require(opts.devkit + '/lib/packages').packages;
263+
264+
for (const packageName of Object.keys(devkitPackages)) {
265+
console.log(pkgName, packageName);
266+
if (json['dependencies'].hasOwnProperty(packageName)) {
267+
json['dependencies'][packageName] = devkitPackages[packageName].tar;
268+
} else if (json['devDependencies'].hasOwnProperty(packageName)) {
269+
json['devDependencies'][packageName] = devkitPackages[packageName].tar;
270+
}
271+
}
272+
}
273+
259274
fs.writeFileSync(pkg.distPackageJson, JSON.stringify(json, null, 2));
260275
});
261276
})

0 commit comments

Comments
 (0)