nx/packages/cypress/src/migrations/update-14-7-0/update-cypress-version-if-10.spec.ts

79 lines
2.6 KiB
TypeScript

import { updateCypressVersionIf10 } from './update-cypress-version-if-10';
import { installedCypressVersion } from '../../utils/cypress-version';
import { readJson, Tree, updateJson } from '@nx/devkit';
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
describe('Update Cypress if v10 migration', () => {
let tree: Tree;
beforeEach(() => {
tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
tree.write(
'package.json',
JSON.stringify({
dependencies: {},
devDependencies: {},
})
);
});
it('should update the version if the installed version is v10', () => {
updateJson(tree, 'package.json', (json) => {
json.devDependencies['cypress'] = '^10.5.0';
return json;
});
updateCypressVersionIf10(tree);
const pkgJson = readJson(tree, 'package.json');
expect(pkgJson.devDependencies['cypress']).toBe('^10.7.0');
});
it('should not update the version < v10', () => {
updateJson(tree, 'package.json', (json) => {
json.devDependencies['cypress'] = '9.0.0';
return json;
});
updateCypressVersionIf10(tree);
const pkgJson = readJson(tree, 'package.json');
expect(pkgJson.devDependencies['cypress']).toBe('9.0.0');
});
it('should not update if the version > v10', () => {
updateJson(tree, 'package.json', (json) => {
json.devDependencies['cypress'] = '11.0.0';
return json;
});
updateCypressVersionIf10(tree);
const pkgJson = readJson(tree, 'package.json');
expect(pkgJson.devDependencies['cypress']).toBe('11.0.0');
});
it('should not update if the version is not defined', () => {
updateCypressVersionIf10(tree);
const pkgJson = readJson(tree, 'package.json');
expect(pkgJson.devDependencies['cypress']).toBe(undefined);
});
it('should not update if v10.7.0 < version < v11', () => {
updateJson(tree, 'package.json', (json) => {
json.devDependencies['cypress'] = '^10.8.0';
return json;
});
updateCypressVersionIf10(tree);
const pkgJson1 = readJson(tree, 'package.json');
expect(pkgJson1.devDependencies['cypress']).toBe('^10.8.0');
});
it('should be idempotent', () => {
updateJson(tree, 'package.json', (json) => {
json.devDependencies['cypress'] = '^10.3.0';
return json;
});
updateCypressVersionIf10(tree);
const pkgJson1 = readJson(tree, 'package.json');
expect(pkgJson1.devDependencies['cypress']).toBe('^10.7.0');
updateCypressVersionIf10(tree);
const pkgJson2 = readJson(tree, 'package.json');
expect(pkgJson2.devDependencies['cypress']).toBe('^10.7.0');
});
});