fix(angular): update karma, jasmine & protractor deps
This commit is contained in:
parent
0e1b98ccc7
commit
3d7c230cac
@ -40,6 +40,11 @@
|
|||||||
"version": "10.3.0-beta.1",
|
"version": "10.3.0-beta.1",
|
||||||
"description": "Add tsconfig.editor.json to angular apps and update jest-angular-preset",
|
"description": "Add tsconfig.editor.json to angular apps and update jest-angular-preset",
|
||||||
"factory": "./src/migrations/update-10-3-0/update-10-3-0"
|
"factory": "./src/migrations/update-10-3-0/update-10-3-0"
|
||||||
|
},
|
||||||
|
"update-10-4-0": {
|
||||||
|
"version": "10.4.0-beta.3",
|
||||||
|
"description": "Adjust karma and protractor setup",
|
||||||
|
"factory": "./src/migrations/update-10-4-0/update-10-4-0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packageJsonUpdates": {
|
"packageJsonUpdates": {
|
||||||
@ -137,6 +142,47 @@
|
|||||||
"alwaysAddToPackageJson": false
|
"alwaysAddToPackageJson": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"10.4.0": {
|
||||||
|
"version": "10.4.0-beta.3",
|
||||||
|
"packages": {
|
||||||
|
"protractor": {
|
||||||
|
"version": "~7.0.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"jasmine-core": {
|
||||||
|
"version": "~3.6.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"jasmine-spec-reporter": {
|
||||||
|
"version": "~5.0.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"@types/jasmine": {
|
||||||
|
"version": "~3.5.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"karma": {
|
||||||
|
"version": "~5.0.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"karma-chrome-launcher": {
|
||||||
|
"version": "~3.1.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"karma-coverage-istanbul-reporter": {
|
||||||
|
"version": "~3.0.2",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"karma-jasmine": {
|
||||||
|
"version": "~4.0.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
},
|
||||||
|
"karma-jasmine-html-reporter": {
|
||||||
|
"version": "^1.5.0",
|
||||||
|
"alwaysAddToPackageJson": false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,111 @@
|
|||||||
|
import { callRule, runMigration } from '../../utils/testing';
|
||||||
|
import { chain, Tree } from '@angular-devkit/schematics';
|
||||||
|
import {
|
||||||
|
readJsonInTree,
|
||||||
|
updateJsonInTree,
|
||||||
|
updateWorkspace,
|
||||||
|
} from '@nrwl/workspace';
|
||||||
|
import { createEmptyWorkspace } from '@nrwl/workspace/testing';
|
||||||
|
|
||||||
|
describe('update-10.4.0', () => {
|
||||||
|
describe('update Protractor e2e tsconfig.json', () => {
|
||||||
|
let tree: Tree;
|
||||||
|
beforeAll(async () => {
|
||||||
|
tree = Tree.empty();
|
||||||
|
tree = createEmptyWorkspace(tree);
|
||||||
|
tree = await callRule(
|
||||||
|
updateWorkspace((workspace) => {
|
||||||
|
workspace.projects.add({
|
||||||
|
name: 'app1',
|
||||||
|
root: 'apps/app1-e2e',
|
||||||
|
projectType: 'application',
|
||||||
|
targets: {
|
||||||
|
e2e: {
|
||||||
|
builder: '@angular-devkit/build-angular:protractor',
|
||||||
|
options: {
|
||||||
|
protractorConfig: 'apps/app1-e2e/protractor.conf.js',
|
||||||
|
devServerTarget: 'testapp:serve',
|
||||||
|
},
|
||||||
|
configurations: {
|
||||||
|
production: {
|
||||||
|
devServerTarget: 'testapp:serve:production',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
tree
|
||||||
|
);
|
||||||
|
tree = await callRule(
|
||||||
|
chain([
|
||||||
|
updateJsonInTree('apps/app1-e2e/tsconfig.json', () => ({
|
||||||
|
extends: '../../tsconfig.json',
|
||||||
|
})),
|
||||||
|
]),
|
||||||
|
tree
|
||||||
|
);
|
||||||
|
|
||||||
|
tree = await runMigration('update-10-4-0', {}, tree);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update the protractor e2e tsconfig to correctly point to the tsconfig.base.json', async () => {
|
||||||
|
const tsconfig = readJsonInTree(tree, 'apps/app1-e2e/tsconfig.json');
|
||||||
|
expect(tsconfig.extends).toEqual('../../tsconfig.base.json');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('update Protractor, Karma and Jasmine dependencies', () => {
|
||||||
|
let tree: Tree;
|
||||||
|
beforeAll(async () => {
|
||||||
|
tree = Tree.empty();
|
||||||
|
tree = createEmptyWorkspace(tree);
|
||||||
|
|
||||||
|
tree = await callRule(
|
||||||
|
chain([
|
||||||
|
// update package.json to have the deps that are being upgraded
|
||||||
|
updateJsonInTree('package.json', (json) => {
|
||||||
|
json.devDependencies = {
|
||||||
|
...json.devDependencies,
|
||||||
|
protractor: '1.0.0',
|
||||||
|
'jasmine-core': '1.0.0',
|
||||||
|
'jasmine-spec-reporter': '1.0.0',
|
||||||
|
'@types/jasmine': '1.0.0',
|
||||||
|
karma: '1.0.0',
|
||||||
|
'karma-chrome-launcher': '1.0.0',
|
||||||
|
'karma-coverage-istanbul-reporter': '1.0.0',
|
||||||
|
'karma-jasmine': '1.0.0',
|
||||||
|
'karma-jasmine-html-reporter': '1.0.0',
|
||||||
|
};
|
||||||
|
return json;
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
tree
|
||||||
|
);
|
||||||
|
|
||||||
|
tree = await runMigration('update-10-4-0', {}, tree);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update the karma, jasmine and protractor dependencies', async () => {
|
||||||
|
const packageJson = readJsonInTree(tree, 'package.json');
|
||||||
|
|
||||||
|
expect(packageJson.devDependencies['protractor']).toEqual('~7.0.0');
|
||||||
|
expect(packageJson.devDependencies['jasmine-core']).toEqual('~3.6.0');
|
||||||
|
expect(packageJson.devDependencies['jasmine-spec-reporter']).toEqual(
|
||||||
|
'~5.0.0'
|
||||||
|
);
|
||||||
|
expect(packageJson.devDependencies['@types/jasmine']).toEqual('~3.5.0');
|
||||||
|
expect(packageJson.devDependencies['karma']).toEqual('~5.0.0');
|
||||||
|
expect(packageJson.devDependencies['karma-chrome-launcher']).toEqual(
|
||||||
|
'~3.1.0'
|
||||||
|
);
|
||||||
|
expect(
|
||||||
|
packageJson.devDependencies['karma-coverage-istanbul-reporter']
|
||||||
|
).toEqual('~3.0.2');
|
||||||
|
expect(packageJson.devDependencies['karma-jasmine']).toEqual('~4.0.0');
|
||||||
|
expect(
|
||||||
|
packageJson.devDependencies['karma-jasmine-html-reporter']
|
||||||
|
).toEqual('^1.5.0');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
import { normalize, Path } from '@angular-devkit/core';
|
||||||
|
import { ProjectDefinition } from '@angular-devkit/core/src/workspace';
|
||||||
|
import { chain, Rule, Tree } from '@angular-devkit/schematics';
|
||||||
|
import {
|
||||||
|
formatFiles,
|
||||||
|
getWorkspace,
|
||||||
|
offsetFromRoot,
|
||||||
|
updateJsonInTree,
|
||||||
|
updatePackagesInPackageJson,
|
||||||
|
} from '@nrwl/workspace';
|
||||||
|
import { join as pathJoin } from 'path';
|
||||||
|
|
||||||
|
function updateBaseConfig(project: ProjectDefinition, baseConfig: Path): Rule {
|
||||||
|
return updateJsonInTree(baseConfig, (json) => {
|
||||||
|
return {
|
||||||
|
...json,
|
||||||
|
extends: `${offsetFromRoot(project.root)}tsconfig.base.json`,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function udpateProtractorTsConfig(host: Tree) {
|
||||||
|
const workspace = await getWorkspace(host);
|
||||||
|
const rules = [];
|
||||||
|
|
||||||
|
workspace.projects.forEach((project) => {
|
||||||
|
project.targets.forEach((target) => {
|
||||||
|
if (target.builder === '@angular-devkit/build-angular:protractor') {
|
||||||
|
rules.push(
|
||||||
|
updateBaseConfig(project, normalize(`${project.root}/tsconfig.json`))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return chain(rules);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function () {
|
||||||
|
return chain([
|
||||||
|
updatePackagesInPackageJson(
|
||||||
|
pathJoin(__dirname, '../../../migrations.json'),
|
||||||
|
'10.4.0'
|
||||||
|
),
|
||||||
|
udpateProtractorTsConfig,
|
||||||
|
formatFiles(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
@ -632,6 +632,14 @@ function updateE2eProject(options: NormalizedSchema): Rule {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
updateJsonInTree(`${options.e2eProjectRoot}/tsconfig.json`, (json) => {
|
||||||
|
return {
|
||||||
|
...json,
|
||||||
|
extends: `${offsetFromRoot(
|
||||||
|
options.e2eProjectRoot
|
||||||
|
)}tsconfig.base.json`,
|
||||||
|
};
|
||||||
|
}),
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,10 +91,10 @@ export function addE2eTestRunner(options: Pick<Schema, 'e2eTestRunner'>): Rule {
|
|||||||
return addDepsToPackageJson(
|
return addDepsToPackageJson(
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
protractor: '~5.4.0',
|
protractor: '~7.0.0',
|
||||||
'jasmine-core': '~2.99.1',
|
'jasmine-core': '~3.6.0',
|
||||||
'jasmine-spec-reporter': '~4.2.1',
|
'jasmine-spec-reporter': '~5.0.0',
|
||||||
'@types/jasmine': '~2.8.6',
|
'@types/jasmine': '~3.5.0',
|
||||||
'@types/jasminewd2': '~2.0.3',
|
'@types/jasminewd2': '~2.0.3',
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@ -12,14 +12,14 @@ export default function () {
|
|||||||
addDepsToPackageJson(
|
addDepsToPackageJson(
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
karma: '~4.0.0',
|
karma: '~5.0.0',
|
||||||
'karma-chrome-launcher': '~2.2.0',
|
'karma-chrome-launcher': '~3.1.0',
|
||||||
'karma-coverage-istanbul-reporter': '~2.0.1',
|
'karma-coverage-istanbul-reporter': '~3.0.2',
|
||||||
'karma-jasmine': '~1.1.2',
|
'karma-jasmine': '~4.0.0',
|
||||||
'karma-jasmine-html-reporter': '^0.2.2',
|
'karma-jasmine-html-reporter': '^1.5.0',
|
||||||
'jasmine-core': '~2.99.1',
|
'jasmine-core': '~3.6.0',
|
||||||
'jasmine-spec-reporter': '~4.2.1',
|
'jasmine-spec-reporter': '~5.0.0',
|
||||||
'@types/jasmine': '~2.8.8',
|
'@types/jasmine': '~3.5.0',
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user