diff --git a/packages/cypress/src/generators/cypress-project/__snapshots__/cypress-project.spec.ts.snap b/packages/cypress/src/generators/cypress-project/__snapshots__/cypress-project.spec.ts.snap index 0cd5b20d0218e..b835d0e29afe7 100644 --- a/packages/cypress/src/generators/cypress-project/__snapshots__/cypress-project.spec.ts.snap +++ b/packages/cypress/src/generators/cypress-project/__snapshots__/cypress-project.spec.ts.snap @@ -4,7 +4,7 @@ exports[`Cypress Project < v7 --linter eslint should add eslint-plugin-cypress 1 { "extends": [ "plugin:cypress/recommended", - "../../.eslintrc.json", + "../.eslintrc.json", ], "ignorePatterns": [ "!**/*", @@ -42,17 +42,17 @@ exports[`Cypress Project < v7 nested should update configuration 1`] = ` }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/my-dir/my-app-e2e/cypress.json", + "cypressConfig": "my-dir/my-app-e2e/cypress.json", "devServerTarget": "my-dir-my-app:serve", "testingType": "e2e", - "tsConfig": "apps/my-dir/my-app-e2e/tsconfig.json", + "tsConfig": "my-dir/my-app-e2e/tsconfig.json", }, }, "lint": { "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/my-dir/my-app-e2e/**/*.{js,ts}", + "my-dir/my-app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -71,8 +71,8 @@ exports[`Cypress Project < v7 project with directory in its name should set righ "supportFile": "./src/support/index.ts", "pluginsFile": "./src/plugins/index", "video": true, - "videosFolder": "../../../dist/cypress/apps/my-dir/my-app-e2e/videos", - "screenshotsFolder": "../../../dist/cypress/apps/my-dir/my-app-e2e/screenshots", + "videosFolder": "../../dist/cypress/my-dir/my-app-e2e/videos", + "screenshotsFolder": "../../dist/cypress/my-dir/my-app-e2e/screenshots", "chromeWebSecurity": false } " @@ -88,17 +88,17 @@ exports[`Cypress Project < v7 project with directory in its name should update c }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/my-dir/my-app-e2e/cypress.json", + "cypressConfig": "my-dir/my-app-e2e/cypress.json", "devServerTarget": "my-dir-my-app:serve", "testingType": "e2e", - "tsConfig": "apps/my-dir/my-app-e2e/tsconfig.json", + "tsConfig": "my-dir/my-app-e2e/tsconfig.json", }, }, "lint": { "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/my-dir/my-app-e2e/**/*.{js,ts}", + "my-dir/my-app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -108,22 +108,22 @@ exports[`Cypress Project < v7 project with directory in its name should update c } `; -exports[`Cypress Project < v7 should update configuration (baseUrl) 1`] = ` +exports[`Cypress Project < v7 should update project configuration (baseUrl) 1`] = ` { "e2e": { "executor": "@nx/cypress:cypress", "options": { "baseUrl": "http://localhost:3000", - "cypressConfig": "apps/my-app-e2e/cypress.json", + "cypressConfig": "my-app-e2e/cypress.json", "testingType": "e2e", - "tsConfig": "apps/my-app-e2e/tsconfig.json", + "tsConfig": "my-app-e2e/tsconfig.json", }, }, "lint": { "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/my-app-e2e/**/*.{js,ts}", + "my-app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -133,7 +133,7 @@ exports[`Cypress Project < v7 should update configuration (baseUrl) 1`] = ` } `; -exports[`Cypress Project < v7 should update configuration 1`] = ` +exports[`Cypress Project < v7 should update project configuration 1`] = ` { "e2e": { "configurations": { @@ -143,17 +143,17 @@ exports[`Cypress Project < v7 should update configuration 1`] = ` }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/my-app-e2e/cypress.json", + "cypressConfig": "my-app-e2e/cypress.json", "devServerTarget": "my-app:serve", "testingType": "e2e", - "tsConfig": "apps/my-app-e2e/tsconfig.json", + "tsConfig": "my-app-e2e/tsconfig.json", }, }, "lint": { "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/my-app-e2e/**/*.{js,ts}", + "my-app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -163,7 +163,7 @@ exports[`Cypress Project < v7 should update configuration 1`] = ` } `; -exports[`Cypress Project < v7 should update configuration 2`] = ` +exports[`Cypress Project < v7 should update target configurations 1`] = ` { "e2e": { "configurations": { @@ -173,17 +173,17 @@ exports[`Cypress Project < v7 should update configuration 2`] = ` }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/my-app-e2e/cypress.json", + "cypressConfig": "my-app-e2e/cypress.json", "devServerTarget": "my-app:serve:development", "testingType": "e2e", - "tsConfig": "apps/my-app-e2e/tsconfig.json", + "tsConfig": "my-app-e2e/tsconfig.json", }, }, "lint": { "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/my-app-e2e/**/*.{js,ts}", + "my-app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -219,14 +219,14 @@ exports[`Cypress Project > v10 nested should set right path names in \`tsconfig. { "compilerOptions": { "allowJs": true, - "outDir": "../../../dist/out-tsc", + "outDir": "../../dist/out-tsc", "sourceMap": false, "types": [ "cypress", "node", ], }, - "extends": "../../../tsconfig.base.json", + "extends": "../../tsconfig.base.json", "include": [ "src/**/*.ts", "src/**/*.js", @@ -249,14 +249,14 @@ exports[`Cypress Project > v10 should set right path names in \`tsconfig.e2e.jso { "compilerOptions": { "allowJs": true, - "outDir": "../../dist/out-tsc", + "outDir": "../dist/out-tsc", "sourceMap": false, "types": [ "cypress", "node", ], }, - "extends": "../../tsconfig.base.json", + "extends": "../tsconfig.base.json", "include": [ "src/**/*.ts", "src/**/*.js", @@ -270,7 +270,7 @@ exports[`Cypress Project > v10 should update configuration when eslint is passed "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/my-app-e2e/**/*.{js,ts}", + "my-app-e2e/**/*.{js,ts}", ], }, "outputs": [ diff --git a/packages/cypress/src/generators/cypress-project/cypress-project.spec.ts b/packages/cypress/src/generators/cypress-project/cypress-project.spec.ts index 648efb0eaf631..590939d292ee3 100644 --- a/packages/cypress/src/generators/cypress-project/cypress-project.spec.ts +++ b/packages/cypress/src/generators/cypress-project/cypress-project.spec.ts @@ -58,21 +58,27 @@ describe('Cypress Project', () => { it('should call init if cypress is not installed', async () => { mockedInstalledCypressVersion.mockReturnValue(null); + await cypressProjectGenerator(tree, { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); + expect(mockInitCypress).toHaveBeenCalled(); }); it('should call not init if cypress is installed', async () => { mockedInstalledCypressVersion.mockReturnValue(10); + await cypressProjectGenerator(tree, { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); + expect(mockInitCypress).not.toHaveBeenCalled(); }); @@ -86,19 +92,15 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - expect(tree.exists('apps/my-app-e2e/cypress.config.ts')).toBeTruthy(); - - expect( - tree.exists('apps/my-app-e2e/src/fixtures/example.json') - ).toBeTruthy(); - expect(tree.exists('apps/my-app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/my-app-e2e/src/support/app.po.ts')).toBeTruthy(); - expect( - tree.exists('apps/my-app-e2e/src/support/commands.ts') - ).toBeTruthy(); - expect(tree.exists('apps/my-app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/fixtures/example.json')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/support/app.po.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/support/commands.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/support/e2e.ts')).toBeTruthy(); }); it('should update configuration when eslint is passed', async () => { @@ -106,7 +108,9 @@ describe('Cypress Project', () => { name: 'my-app-e2e', project: 'my-app', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); + const project = readProjectConfiguration(tree, 'my-app-e2e'); expect(project.targets.lint).toMatchSnapshot(); }); @@ -116,7 +120,9 @@ describe('Cypress Project', () => { name: 'my-app-e2e', project: 'my-app', linter: Linter.None, + projectNameAndRootFormat: 'as-provided', }); + const project = readProjectConfiguration(tree, 'my-app-e2e'); expect(project.targets.lint).toBeUndefined(); }); @@ -126,6 +132,7 @@ describe('Cypress Project', () => { name: 'my-app-e2e', project: 'my-app', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); const project = readProjectConfiguration(tree, 'my-app-e2e'); @@ -138,11 +145,10 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - const cypressConfig = tree.read( - 'apps/my-app-e2e/cypress.config.ts', - 'utf-8' - ); + + const cypressConfig = tree.read('my-app-e2e/cypress.config.ts', 'utf-8'); expect(cypressConfig).toMatchSnapshot(); }); @@ -151,8 +157,10 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - const tsconfigJson = readJson(tree, 'apps/my-app-e2e/tsconfig.json'); + + const tsconfigJson = readJson(tree, 'my-app-e2e/tsconfig.json'); expect(tsconfigJson).toMatchSnapshot(); }); @@ -161,10 +169,11 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - const tsConfig = readJson(tree, 'apps/my-app-e2e/tsconfig.json'); - expect(tsConfig.extends).toBe('../../tsconfig.base.json'); + const tsConfig = readJson(tree, 'my-app-e2e/tsconfig.json'); + expect(tsConfig.extends).toBe('../tsconfig.base.json'); }); it('should support a root tsconfig.json instead of tsconfig.base.json', async () => { @@ -174,10 +183,11 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - const tsConfig = readJson(tree, 'apps/my-app-e2e/tsconfig.json'); - expect(tsConfig.extends).toBe('../../tsconfig.json'); + const tsConfig = readJson(tree, 'my-app-e2e/tsconfig.json'); + expect(tsConfig.extends).toBe('../tsconfig.json'); }); describe('for bundler:vite', () => { @@ -187,9 +197,11 @@ describe('Cypress Project', () => { name: 'my-app-e2e', project: 'my-app', bundler: 'vite', + projectNameAndRootFormat: 'as-provided', }); + const cypressConfig = tree.read( - 'apps/my-app-e2e/cypress.config.ts', + 'my-app-e2e/cypress.config.ts', 'utf-8' ); expect(cypressConfig).toMatchSnapshot(); @@ -202,11 +214,12 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-dir-my-app', - directory: 'my-dir', + directory: 'my-dir/my-app-e2e', + projectNameAndRootFormat: 'as-provided', }); const cypressConfig = tree.read( - 'apps/my-dir/my-app-e2e/cypress.config.ts', + 'my-dir/my-app-e2e/cypress.config.ts', 'utf-8' ); expect(cypressConfig).toMatchSnapshot(); @@ -217,13 +230,11 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-dir-my-app', - directory: 'my-dir', + directory: 'my-dir/my-app-e2e', + projectNameAndRootFormat: 'as-provided', }); - const tsconfigJson = readJson( - tree, - 'apps/my-dir/my-app-e2e/tsconfig.json' - ); + const tsconfigJson = readJson(tree, 'my-dir/my-app-e2e/tsconfig.json'); expect(tsconfigJson).toMatchSnapshot(); }); @@ -232,11 +243,12 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', - directory: 'my-dir', + directory: 'my-dir/my-app-e2e', + projectNameAndRootFormat: 'as-provided', }); - const tsConfig = readJson(tree, 'apps/my-dir/my-app-e2e/tsconfig.json'); - expect(tsConfig.extends).toBe('../../../tsconfig.base.json'); + const tsConfig = readJson(tree, 'my-dir/my-app-e2e/tsconfig.json'); + expect(tsConfig.extends).toBe('../../tsconfig.base.json'); }); it('should support a root tsconfig.json instead of tsconfig.base.json', async () => { @@ -246,24 +258,26 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', - directory: 'my-dir', + directory: 'my-dir/my-app-e2e', + projectNameAndRootFormat: 'as-provided', }); - const tsConfig = readJson(tree, 'apps/my-dir/my-app-e2e/tsconfig.json'); - expect(tsConfig.extends).toBe('../../../tsconfig.json'); + const tsConfig = readJson(tree, 'my-dir/my-app-e2e/tsconfig.json'); + expect(tsConfig.extends).toBe('../../tsconfig.json'); }); describe('root project', () => { it('should generate in option.name when root project detected', async () => { - addProjectConfiguration(tree, 'root', { - root: '.', - }); + addProjectConfiguration(tree, 'root', { root: '.' }); + await cypressProjectGenerator(tree, { ...defaultOptions, name: 'e2e-tests', baseUrl: 'http://localhost:1234', project: 'root', + projectNameAndRootFormat: 'as-provided', }); + expect(tree.listChanges().map((c) => c.path)).toEqual( expect.arrayContaining([ 'e2e-tests/cypress.config.ts', @@ -278,27 +292,26 @@ describe('Cypress Project', () => { }); it('should not generate a root project when the passed in project is not the root project', async () => { - addProjectConfiguration(tree, 'root', { - root: '.', - }); - addProjectConfiguration(tree, 'my-cool-app', { - root: 'apps/my-app', - }); + addProjectConfiguration(tree, 'root', { root: '.' }); + addProjectConfiguration(tree, 'my-cool-app', { root: 'my-cool-app' }); + await cypressProjectGenerator(tree, { ...defaultOptions, name: 'e2e-tests', baseUrl: 'http://localhost:1234', - project: 'my-app', + project: 'my-cool-app', + projectNameAndRootFormat: 'as-provided', }); + expect(tree.listChanges().map((c) => c.path)).toEqual( expect.arrayContaining([ - 'apps/e2e-tests/cypress.config.ts', - 'apps/e2e-tests/src/e2e/app.cy.ts', - 'apps/e2e-tests/src/fixtures/example.json', - 'apps/e2e-tests/src/support/app.po.ts', - 'apps/e2e-tests/src/support/commands.ts', - 'apps/e2e-tests/src/support/e2e.ts', - 'apps/e2e-tests/tsconfig.json', + 'e2e-tests/cypress.config.ts', + 'e2e-tests/src/e2e/app.cy.ts', + 'e2e-tests/src/fixtures/example.json', + 'e2e-tests/src/support/app.po.ts', + 'e2e-tests/src/support/commands.ts', + 'e2e-tests/src/support/e2e.ts', + 'e2e-tests/tsconfig.json', ]) ); }); @@ -312,6 +325,7 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', baseUrl: 'http://localhost:7788', + projectNameAndRootFormat: 'as-provided', }); const projectConfig = readProjectConfiguration(tree, 'my-app-e2e'); @@ -323,12 +337,13 @@ describe('Cypress Project', () => { it('should not throw an error when --project does not have targets', async () => { const projectConf = readProjectConfiguration(tree, 'my-app'); delete projectConf.targets; - updateProjectConfiguration(tree, 'my-app', projectConf); + await cypressProjectGenerator(tree, { name: 'my-app-e2e', project: 'my-app', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); const projectConfig = readProjectConfiguration(tree, 'my-app-e2e'); @@ -339,12 +354,31 @@ describe('Cypress Project', () => { }); it('should generate in the correct folder', async () => { + await cypressProjectGenerator(tree, { + ...defaultOptions, + name: 'one-two-other-e2e', + project: 'my-app', + directory: 'one/two/other-e2e', + projectNameAndRootFormat: 'as-provided', + }); + + const project = readProjectConfiguration(tree, 'one-two-other-e2e'); + expect(project).toBeDefined(); + [ + 'one/two/other-e2e/cypress.config.ts', + 'one/two/other-e2e/src/e2e/app.cy.ts', + ].forEach((path) => expect(tree.exists(path)).toBeTruthy()); + }); + + it('should generate in the correct folder when --project-name-and-root-format=derived', async () => { await cypressProjectGenerator(tree, { ...defaultOptions, name: 'other-e2e', project: 'my-app', directory: 'one/two', + projectNameAndRootFormat: 'derived', }); + const project = readProjectConfiguration(tree, 'one-two-other-e2e'); expect(project).toBeDefined(); [ @@ -369,6 +403,7 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); const e2eConfig = readProjectConfiguration(tree, 'my-app-e2e'); @@ -388,6 +423,7 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); const e2eConfig = readProjectConfiguration(tree, 'my-app-e2e'); @@ -400,26 +436,23 @@ describe('Cypress Project', () => { beforeEach(() => { mockedInstalledCypressVersion.mockReturnValue(9); }); + it('should generate files', async () => { await cypressProjectGenerator(tree, { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - expect(tree.exists('apps/my-app-e2e/cypress.json')).toBeTruthy(); - - expect( - tree.exists('apps/my-app-e2e/src/fixtures/example.json') - ).toBeTruthy(); + expect(tree.exists('my-app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/fixtures/example.json')).toBeTruthy(); expect( - tree.exists('apps/my-app-e2e/src/integration/app.spec.ts') + tree.exists('my-app-e2e/src/integration/app.spec.ts') ).toBeTruthy(); - expect(tree.exists('apps/my-app-e2e/src/support/app.po.ts')).toBeTruthy(); - expect( - tree.exists('apps/my-app-e2e/src/support/commands.ts') - ).toBeTruthy(); - expect(tree.exists('apps/my-app-e2e/src/support/index.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/support/app.po.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/support/commands.ts')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/support/index.ts')).toBeTruthy(); }); }); @@ -433,39 +466,40 @@ describe('Cypress Project', () => { ...defaultOptions, name: 'my-app-e2e', project: 'my-app', + projectNameAndRootFormat: 'as-provided', }); - expect(tree.exists('apps/my-app-e2e/src/plugins/index.js')).toBeTruthy(); + expect(tree.exists('my-app-e2e/src/plugins/index.js')).toBeTruthy(); }); - it('should update configuration', async () => { + it('should update project configuration', async () => { await cypressProjectGenerator(tree, { name: 'my-app-e2e', project: 'my-app', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); const project = readProjectConfiguration(tree, 'my-app-e2e'); - - expect(project.root).toEqual('apps/my-app-e2e'); - + expect(project.root).toEqual('my-app-e2e'); expect(project.targets).toMatchSnapshot(); }); - it('should update configuration (baseUrl)', async () => { + it('should update project configuration (baseUrl)', async () => { await cypressProjectGenerator(tree, { name: 'my-app-e2e', project: 'my-app', baseUrl: 'http://localhost:3000', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); const project = readProjectConfiguration(tree, 'my-app-e2e'); - expect(project.root).toEqual('apps/my-app-e2e'); + expect(project.root).toEqual('my-app-e2e'); expect(project.targets).toMatchSnapshot(); }); - it('should update configuration', async () => { + it('should update target configurations', async () => { const originalProject = readProjectConfiguration(tree, 'my-app'); originalProject.targets.serve.defaultConfiguration = 'development'; originalProject.targets.serve.configurations.development = {}; @@ -475,22 +509,22 @@ describe('Cypress Project', () => { name: 'my-app-e2e', project: 'my-app', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); const project = readProjectConfiguration(tree, 'my-app-e2e'); - - expect(project.root).toEqual('apps/my-app-e2e'); - + expect(project.root).toEqual('my-app-e2e'); expect(project.targets).toMatchSnapshot(); }); describe('nested', () => { it('should update configuration', async () => { await cypressProjectGenerator(tree, { - name: 'my-app-e2e', + name: 'my-dir-my-app-e2e', project: 'my-dir-my-app', - directory: 'my-dir', + directory: 'my-dir/my-app-e2e', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); const projectConfig = readProjectConfiguration( @@ -509,13 +543,14 @@ describe('Cypress Project', () => { name: 'my-app-e2e', project: 'my-app', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); + const packageJson = readJson(tree, 'package.json'); expect( packageJson.devDependencies['eslint-plugin-cypress'] ).toBeTruthy(); - - const eslintrcJson = readJson(tree, 'apps/my-app-e2e/.eslintrc.json'); + const eslintrcJson = readJson(tree, 'my-app-e2e/.eslintrc.json'); expect(eslintrcJson).toMatchSnapshot(); }); }); @@ -524,9 +559,11 @@ describe('Cypress Project', () => { describe('project with directory in its name', () => { beforeEach(async () => { await cypressProjectGenerator(tree, { - name: 'my-dir/my-app-e2e', + name: 'my-dir-my-app-e2e', project: 'my-dir-my-app', + directory: 'my-dir/my-app-e2e', linter: Linter.EsLint, + projectNameAndRootFormat: 'as-provided', }); }); @@ -547,10 +584,9 @@ describe('Cypress Project', () => { it('should set right path names in `cypress.json`', async () => { const cypressConfig = tree.read( - 'apps/my-dir/my-app-e2e/cypress.json', + 'my-dir/my-app-e2e/cypress.json', 'utf-8' ); - expect(cypressConfig).toMatchSnapshot(); }); }); diff --git a/packages/cypress/src/generators/migrate-to-cypress-11/__snapshots__/migrate-to-cypress-11.spec.ts.snap b/packages/cypress/src/generators/migrate-to-cypress-11/__snapshots__/migrate-to-cypress-11.spec.ts.snap index 56beaca1d1b01..bb695109dc3f5 100644 --- a/packages/cypress/src/generators/migrate-to-cypress-11/__snapshots__/migrate-to-cypress-11.spec.ts.snap +++ b/packages/cypress/src/generators/migrate-to-cypress-11/__snapshots__/migrate-to-cypress-11.spec.ts.snap @@ -8,8 +8,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', supportFile: 'src/support/e2e.ts', @@ -31,8 +31,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', supportFile: 'src/support/e2e.ts', @@ -58,7 +58,7 @@ exports[`convertToCypressTen convertCypressProject should handle multiple config }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/app-e2e/cypress.config.ts", + "cypressConfig": "app-e2e/cypress.config.ts", "devServerTarget": "app:serve", "testingType": "e2e", }, @@ -73,8 +73,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', supportFile: 'src/support/e2e.ts', @@ -92,12 +92,12 @@ exports[`convertToCypressTen convertCypressProject should handle multiple config { "configurations": { "production": { - "cypressConfig": "apps/app-e2e/cypress.production.config.ts", + "cypressConfig": "app-e2e/cypress.production.config.ts", "devServerTarget": "target:serve:production", }, "static": { "baseUrl": "http://localhost:3000", - "cypressConfig": "apps/app-e2e/cypress.config.ts", + "cypressConfig": "app-e2e/cypress.config.ts", }, }, "executor": "@nx/cypress:cypress", @@ -137,8 +137,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', supportFile: 'src/support/e2e.ts', @@ -162,7 +162,7 @@ exports[`convertToCypressTen convertCypressProject should infer targets with --a }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/app-e2e/cypress.config.ts", + "cypressConfig": "app-e2e/cypress.config.ts", "devServerTarget": "app:serve", "testingType": "e2e", }, @@ -175,7 +175,7 @@ exports[`convertToCypressTen convertCypressProject should infer targets with --a }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/app-e2e/cypress.config.ts", + "cypressConfig": "app-e2e/cypress.config.ts", "devServerTarget": "app:serve", "testingType": "e2e", }, @@ -184,7 +184,7 @@ exports[`convertToCypressTen convertCypressProject should infer targets with --a "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/app-e2e/**/*.{js,ts}", + "app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -202,8 +202,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', supportFile: 'src/support/e2e.ts', @@ -227,7 +227,7 @@ exports[`convertToCypressTen convertCypressProject should not break when an inva }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/app-e2e/cypress.config.ts", + "cypressConfig": "app-e2e/cypress.config.ts", "devServerTarget": "app:serve", "testingType": "e2e", }, @@ -240,7 +240,7 @@ exports[`convertToCypressTen convertCypressProject should not break when an inva }, "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/app-e2e/cypress.config.ts", + "cypressConfig": "app-e2e/cypress.config.ts", "devServerTarget": "app:serve", "testingType": "e2e", }, @@ -249,7 +249,7 @@ exports[`convertToCypressTen convertCypressProject should not break when an inva "executor": "@nx/linter:eslint", "options": { "lintFilePatterns": [ - "apps/app-e2e/**/*.{js,ts}", + "app-e2e/**/*.{js,ts}", ], }, "outputs": [ @@ -268,8 +268,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, baseUrl: 'http://localhost:4200', specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', @@ -293,8 +293,8 @@ const cypressJsonConfig = { fileServerFolder: '.', fixturesFolder: './src/fixtures', video: true, - videosFolder: '../../dist/cypress/apps/app-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/app-e2e/screenshots', + videosFolder: '../dist/cypress/app-e2e/videos', + screenshotsFolder: '../dist/cypress/app-e2e/screenshots', chromeWebSecurity: false, specPattern: 'src/e2e/**/*.cy.{js,jsx,ts,tsx}', supportFile: 'src/support/e2e.ts', diff --git a/packages/cypress/src/generators/migrate-to-cypress-11/migrate-to-cypress-11.spec.ts b/packages/cypress/src/generators/migrate-to-cypress-11/migrate-to-cypress-11.spec.ts index 23c512673df68..386147186344a 100644 --- a/packages/cypress/src/generators/migrate-to-cypress-11/migrate-to-cypress-11.spec.ts +++ b/packages/cypress/src/generators/migrate-to-cypress-11/migrate-to-cypress-11.spec.ts @@ -38,8 +38,8 @@ describe('convertToCypressTen', () => { describe('convertCypressProject', () => { beforeEach(async () => { addProjectConfiguration(tree, 'app', { - root: 'apps/app', - sourceRoot: 'apps/app/src', + root: 'app', + sourceRoot: 'app/src', targets: { serve: { executor: '@nx/web:file-server', @@ -53,31 +53,30 @@ describe('convertToCypressTen', () => { name: 'app-e2e', skipFormat: true, project: 'app', + projectNameAndRootFormat: 'as-provided', }); }); it('should update project w/defaults', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); }); it('should update project w/customized config', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); - updateJson(tree, 'apps/app-e2e/cypress.json', (json) => { + updateJson(tree, 'app-e2e/cypress.json', (json) => { json = { ...json, baseUrl: 'http://localhost:4200', @@ -90,28 +89,26 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); }); it('should not update a non e2e project', async () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app/cypress.config.ts')).toBeFalsy(); - expect(tree.exists('apps/app/src/e2e/app.cy.ts')).toBeFalsy(); - expect(tree.exists('apps/app/src/support/e2e.ts')).toBeFalsy(); + expect(tree.exists('app/cypress.config.ts')).toBeFalsy(); + expect(tree.exists('app/src/e2e/app.cy.ts')).toBeFalsy(); + expect(tree.exists('app/src/support/e2e.ts')).toBeFalsy(); }); it('should handle custom target names', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); const pc = readProjectConfiguration(tree, 'app-e2e'); pc.targets = { 'e2e-custom': { @@ -123,21 +120,19 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); }); it('should infer targets with --all flag', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); const pc = readProjectConfiguration(tree, 'app-e2e'); pc.targets = { ...pc.targets, @@ -150,24 +145,22 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); expect( readProjectConfiguration(tree, 'app-e2e').targets ).toMatchSnapshot(); }); it('should not break when an invalid target is passed in', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); const pc = readProjectConfiguration(tree, 'app-e2e'); pc.targets = { ...pc.targets, @@ -180,24 +173,22 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); expect( readProjectConfiguration(tree, 'app-e2e').targets ).toMatchSnapshot(); }); it('should handle multiple configurations', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); const pc = readProjectConfiguration(tree, 'app-e2e'); pc.targets = { ...pc.targets, @@ -218,26 +209,24 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); expect( readProjectConfiguration(tree, 'app-e2e').targets['e2e'] ).toMatchSnapshot(); }); it('should handle multiple configurations with no default cypressConfig option', async () => { - expect(tree.exists('apps/app-e2e/cypress.json')).toBeTruthy(); + expect(tree.exists('app-e2e/cypress.json')).toBeTruthy(); tree.write( - 'apps/app-e2e/cypress.production.json', + 'app-e2e/cypress.production.json', JSON.stringify({ fileServerFolder: '.', fixturesFolder: './src/fixtures', @@ -246,8 +235,8 @@ describe('convertToCypressTen', () => { pluginsFile: './src/plugins/index', supportFile: './src/support/index.ts', video: true, - videosFolder: '../../dist/cypress/apps/client-e2e/videos', - screenshotsFolder: '../../dist/cypress/apps/client-e2e/screenshots', + videosFolder: '../dist/cypress/client-e2e/videos', + screenshotsFolder: '../dist/cypress/client-e2e/screenshots', chromeWebSecurity: false, }) ); @@ -261,12 +250,12 @@ describe('convertToCypressTen', () => { }, configurations: { production: { - cypressConfig: 'apps/app-e2e/cypress.production.json', + cypressConfig: 'app-e2e/cypress.production.json', devServerTarget: 'target:serve:production', }, static: { baseUrl: 'http://localhost:3000', - cypressConfig: 'apps/app-e2e/cypress.json', + cypressConfig: 'app-e2e/cypress.json', }, }, }, @@ -276,18 +265,16 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); - expect(tree.exists('apps/app-e2e/cypress.config.ts')).toBeTruthy(); - expect( - tree.read('apps/app-e2e/cypress.config.ts', 'utf-8') - ).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(tree.exists('app-e2e/cypress.config.ts')).toBeTruthy(); + expect(tree.read('app-e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', 'cypress.production.config.ts', 'cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); expect( readProjectConfiguration(tree, 'app-e2e').targets['e2e'] ).toMatchSnapshot(); @@ -296,8 +283,8 @@ describe('convertToCypressTen', () => { it('should handle sharing the same config across projects', async () => { mockedInstalledCypressVersion.mockReturnValue(9); addProjectConfiguration(tree, 'app-two', { - root: 'apps/app-two', - sourceRoot: 'apps/app-two/src', + root: 'app-two', + sourceRoot: 'app-two/src', targets: { serve: { executor: '@nx/web:file-server', @@ -310,6 +297,7 @@ describe('convertToCypressTen', () => { name: 'app-two-e2e', skipFormat: true, project: 'app-two', + projectNameAndRootFormat: 'as-provided', }); const appOneProjectConfig = readProjectConfiguration(tree, 'app-e2e'); appOneProjectConfig.targets['e2e'].options.cypressConfig = 'cypress.json'; @@ -333,13 +321,13 @@ describe('convertToCypressTen', () => { await migrateCypressProject(tree); expect(tree.read('cypress.config.ts', 'utf-8')).toMatchSnapshot(); - expect(readJson(tree, 'apps/app-e2e/tsconfig.json').include).toEqual([ + expect(readJson(tree, 'app-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', - '../../cypress.config.ts', + '../cypress.config.ts', ]); - expect(tree.exists('apps/app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-e2e/src/support/e2e.ts')).toBeTruthy(); expect(readProjectConfiguration(tree, 'app-e2e').targets['e2e']).toEqual({ executor: '@nx/cypress:cypress', options: { @@ -353,13 +341,13 @@ describe('convertToCypressTen', () => { }, }, }); - expect(readJson(tree, 'apps/app-two-e2e/tsconfig.json').include).toEqual([ + expect(readJson(tree, 'app-two-e2e/tsconfig.json').include).toEqual([ 'src/**/*.ts', 'src/**/*.js', - '../../cypress.config.ts', + '../cypress.config.ts', ]); - expect(tree.exists('apps/app-two-e2e/src/e2e/app.cy.ts')).toBeTruthy(); - expect(tree.exists('apps/app-two-e2e/src/support/e2e.ts')).toBeTruthy(); + expect(tree.exists('app-two-e2e/src/e2e/app.cy.ts')).toBeTruthy(); + expect(tree.exists('app-two-e2e/src/support/e2e.ts')).toBeTruthy(); expect( readProjectConfiguration(tree, 'app-two-e2e').targets['e2e'] ).toEqual({ @@ -393,8 +381,8 @@ describe('convertToCypressTen', () => { }; const projectConfig = { - root: 'apps/app-e2e', - sourceRoot: 'apps/app-e2e/src', + root: 'app-e2e', + sourceRoot: 'app-e2e/src', }; const filePaths = [ 'src/integration/nested/something.spec.ts', @@ -486,9 +474,7 @@ const eh = require("../../support") expect(newIntegrationFolderContents.length).toEqual( oldIntegrationFolderContents.length ); - expect(tree.exists('apps/app-e2e/src/fixtures/example.json')).toEqual( - true - ); + expect(tree.exists('app-e2e/src/fixtures/example.json')).toEqual(true); }); it('should rename files', () => { @@ -513,7 +499,7 @@ const eh = require("../../support") }); describe('updateImports', () => { - const filePath = 'apps/app-e2e/src/e2e/sometest.cy.ts'; + const filePath = 'app-e2e/src/e2e/sometest.cy.ts'; const fileContents = String.raw` import { getGreeting } from '../support/app.po'; @@ -554,15 +540,15 @@ describe('a', () => { }); describe('Support File Imports', () => { - const newImport = 'apps/app-e2e/src/support/e2e.ts'; + const newImport = 'app-e2e/src/support/e2e.ts'; it('should update imports w/defaults', () => { - const oldImport = 'apps/app-e2e/src/support/index.ts'; + const oldImport = 'app-e2e/src/support/index.ts'; const actual = createSupportFileImport( oldImport, newImport, - 'apps/app-e2e/src' + 'app-e2e/src' ); expect(actual).toEqual({ oldImportPathLeaf: 'support', @@ -571,12 +557,12 @@ describe('a', () => { }); it('should handle custom support file location', () => { - const oldImport = 'apps/app-e2e/src/support/blah.ts'; + const oldImport = 'app-e2e/src/support/blah.ts'; const actual = createSupportFileImport( oldImport, newImport, - 'apps/app-e2e/src' + 'app-e2e/src' ); expect(actual).toEqual({ oldImportPathLeaf: 'support/blah', @@ -585,12 +571,12 @@ describe('a', () => { }); it('should handle nested custom support location', () => { - const oldImport = 'apps/app-e2e/src/support/blah/abc.ts'; + const oldImport = 'app-e2e/src/support/blah/abc.ts'; const actual = createSupportFileImport( oldImport, newImport, - 'apps/app-e2e/src' + 'app-e2e/src' ); expect(actual).toEqual({ oldImportPathLeaf: 'support/blah/abc', @@ -599,12 +585,12 @@ describe('a', () => { }); it('should handle nested custom support location w/index.ts', () => { - const oldImport = 'apps/app-e2e/src/support/something/neat/index.ts'; + const oldImport = 'app-e2e/src/support/something/neat/index.ts'; const actual = createSupportFileImport( oldImport, newImport, - 'apps/app-e2e/src' + 'app-e2e/src' ); expect(actual).toEqual({ oldImportPathLeaf: 'support/something/neat', @@ -616,7 +602,7 @@ describe('a', () => { describe(updatePluginFile.name, () => { it('should update module.exports for ts files', () => { tree.write( - 'apps/app-e2e/src/plugins/index.ts', + 'app-e2e/src/plugins/index.ts', ` function myCoolFunction() { console.log('cool') @@ -631,7 +617,7 @@ module.exports.blah = myCoolFunction; ); const actual = updatePluginFile( tree, - { root: 'apps/app-e2e' }, + { root: 'app-e2e' }, { cypressConfigJson: {}, cypressConfigTs: { e2e: { pluginsFile: './src/plugins/index.ts' } }, @@ -641,7 +627,7 @@ module.exports.blah = myCoolFunction; expect(actual.cypressConfigTs.e2e.pluginsFile).toEqual( './src/plugins/index' ); - expect(tree.read('apps/app-e2e/src/plugins/index.ts', 'utf-8')).toEqual(` + expect(tree.read('app-e2e/src/plugins/index.ts', 'utf-8')).toEqual(` function myCoolFunction() { console.log('cool') } @@ -665,10 +651,10 @@ module.exports = function(on, config) { module.exports.blah = myCoolFunction; `; - tree.write('apps/app-e2e/src/plugins/index.js', pluginFileContent); + tree.write('app-e2e/src/plugins/index.js', pluginFileContent); const actual = updatePluginFile( tree, - { root: 'apps/app-e2e' }, + { root: 'app-e2e' }, { cypressConfigJson: {}, cypressConfigTs: { e2e: { pluginsFile: './src/plugins/index.js' } }, @@ -678,7 +664,7 @@ module.exports.blah = myCoolFunction; expect(actual.cypressConfigTs.e2e.pluginsFile).toEqual( './src/plugins/index' ); - expect(tree.read('apps/app-e2e/src/plugins/index.js', 'utf-8')).toEqual( + expect(tree.read('app-e2e/src/plugins/index.js', 'utf-8')).toEqual( pluginFileContent ); }); @@ -686,7 +672,7 @@ module.exports.blah = myCoolFunction; it('should not update if no file is preset', () => { const actual = updatePluginFile( tree, - { root: 'apps/app-e2e' }, + { root: 'app-e2e' }, { cypressConfigJson: {}, cypressConfigTs: { e2e: { pluginsFile: false } }, @@ -694,7 +680,7 @@ module.exports.blah = myCoolFunction; ); expect(actual.cypressConfigTs.e2e.pluginsFile).toBeFalsy(); - expect(tree.exists('apps/app-e2e/src/plugins/index.ts')).toBeFalsy(); + expect(tree.exists('app-e2e/src/plugins/index.ts')).toBeFalsy(); }); }); });