From b5f24a7d190b284ca54e6c89a533f0ec1babaceb Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Fri, 17 Apr 2020 13:28:13 +0200 Subject: [PATCH] Include a minimal cypress e2e test with the app --- .../templates/default-app/package.json.hbs | 3 +++ .../default-app/packages/app/cypress.json | 5 ++++ .../packages/app/cypress/.eslintrc.json | 21 +++++++++++++++++ .../packages/app/cypress/integration/app.js | 8 +++++++ .../default-app/packages/app/package.json.hbs | 23 +++++++++++++------ 5 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 packages/cli/templates/default-app/packages/app/cypress.json create mode 100644 packages/cli/templates/default-app/packages/app/cypress/.eslintrc.json create mode 100644 packages/cli/templates/default-app/packages/app/cypress/integration/app.js diff --git a/packages/cli/templates/default-app/package.json.hbs b/packages/cli/templates/default-app/package.json.hbs index 231194a54e..8b725c69c1 100644 --- a/packages/cli/templates/default-app/package.json.hbs +++ b/packages/cli/templates/default-app/package.json.hbs @@ -26,5 +26,8 @@ "@backstage/cli": "^{{version}}", "lerna": "^3.20.2", "prettier": "^1.19.1" + }, + "resolutions": { + "**/cypress": "4.2.0" } } diff --git a/packages/cli/templates/default-app/packages/app/cypress.json b/packages/cli/templates/default-app/packages/app/cypress.json new file mode 100644 index 0000000000..6ae01d9c2a --- /dev/null +++ b/packages/cli/templates/default-app/packages/app/cypress.json @@ -0,0 +1,5 @@ +{ + "baseUrl": "http://localhost:3000", + "fixturesFolder": false, + "pluginsFile": false +} diff --git a/packages/cli/templates/default-app/packages/app/cypress/.eslintrc.json b/packages/cli/templates/default-app/packages/app/cypress/.eslintrc.json new file mode 100644 index 0000000000..2b3a458b95 --- /dev/null +++ b/packages/cli/templates/default-app/packages/app/cypress/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "plugins": ["cypress"], + "extends": ["plugin:cypress/recommended"], + "rules": { + "jest/expect-expect": [ + "error", + { + "assertFunctionNames": ["expect", "cy.contains"] + } + ], + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true, + "optionalDependencies": true, + "peerDependencies": true, + "bundledDependencies": true + } + ] + } +} diff --git a/packages/cli/templates/default-app/packages/app/cypress/integration/app.js b/packages/cli/templates/default-app/packages/app/cypress/integration/app.js new file mode 100644 index 0000000000..6c561a734c --- /dev/null +++ b/packages/cli/templates/default-app/packages/app/cypress/integration/app.js @@ -0,0 +1,8 @@ +describe('App', () => { + it('should render the welcome page', () => { + cy.visit('/'); + cy.contains('Welcome to Backstage'); + cy.contains('Getting Started'); + cy.contains('Quick Links'); + }); +}); diff --git a/packages/cli/templates/default-app/packages/app/package.json.hbs b/packages/cli/templates/default-app/packages/app/package.json.hbs index 940091380a..9ac2d989a3 100644 --- a/packages/cli/templates/default-app/packages/app/package.json.hbs +++ b/packages/cli/templates/default-app/packages/app/package.json.hbs @@ -9,23 +9,32 @@ "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", "@backstage/theme": "^{{version}}", - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.3.2", - "@testing-library/user-event": "^7.1.2", - "@types/jest": "^24.0.0", - "@types/node": "^12.0.0", - "@types/react-router-dom": "^5.1.3", "plugin-welcome": "0.0.0", "react": "^16.12.0", "react-dom": "^16.12.0", "react-router-dom": "^5.1.2", "react-use": "^13.24.0" }, + "devDependencies": { + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.3.2", + "@testing-library/user-event": "^7.1.2", + "@types/jest": "^24.0.0", + "@types/node": "^12.0.0", + "@types/react-router-dom": "^5.1.3", + "cypress": "^4.2.0", + "eslint-plugin-cypress": "^2.10.3", + "start-server-and-test": "^1.10.11" + }, "scripts": { "start": "backstage-cli app:serve", "bundle": "backstage-cli app:build", "test": "backstage-cli test", - "lint": "backstage-cli lint" + "lint": "backstage-cli lint", + "test:e2e": "start-server-and-test start http://localhost:3000 cy:dev", + "test:e2e:ci": "start-server-and-test start http://localhost:3000 cy:run", + "cy:dev": "cypress open", + "cy:run": "cypress run" }, "browserslist": { "production": [