diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 0000000..2427e31 --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,38 @@ +name: Test and E2E tests +run-name: Run tests and E2E tests + +on: + push: + pull_request: + branches: + - main +jobs: + run-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + - run: yarn install + - run: yarn backstage-cli repo test + + run-e2e-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 #chekcout te repository + - name: Use Node.js + uses: actions/setup-node@v3 #setup node version 20 + with: + node-version: '20' + + - name: Install dependencies #install dependencies + run: yarn install + + - name: Run E2E tests + env: + PLAYWRIGHT_URL: http://localhost:3000 # set the URL of the app to test with playwright + CI: # unset CI because it is set by default in Github actions + run: | + yarn test:e2e diff --git a/README.md b/README.md index 6324793..e07510c 100644 --- a/README.md +++ b/README.md @@ -298,3 +298,17 @@ This file changes some base values that are necessary to build the correct image **`app-config.production.yaml`:**
This file adds one line to the kubernetes plugin setup, which is only needed if the app is hosted inside of a kubernetes cluster. + +# Testing + +Before committing your changes, run the tests pls. ✨ + +```sh +yarn test +``` + +to run tests without end to end testing run: + +```sh +yarn backstage-cli repo test +``` \ No newline at end of file diff --git a/package.json b/package.json index 09c3be2..2ec8570 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "tsc": "tsc", "tsc:full": "tsc --skipLibCheck false --incremental false", "clean": "backstage-cli repo clean", - "test": "backstage-cli repo test", + "test": "backstage-cli repo test && playwright test", "test:all": "backstage-cli repo test --coverage", "test:e2e": "playwright test", "fix": "backstage-cli repo fix", @@ -31,6 +31,10 @@ "docker:remove-all": "docker compose down", "new": "backstage-cli new --scope internal" }, + "pre-commit": [ + "yarn test", + "yarn e2e-test" + ], "workspaces": { "packages": [ "packages/*", @@ -62,4 +66,5 @@ "prettier --write" ] } + } diff --git a/packages/app/e2e-tests/app.test.ts b/packages/app/e2e-tests/app.test.ts index d45bc0d..9807ea2 100644 --- a/packages/app/e2e-tests/app.test.ts +++ b/packages/app/e2e-tests/app.test.ts @@ -19,5 +19,5 @@ import { test, expect } from '@playwright/test'; test('App should render the welcome page', async ({ page }) => { await page.goto('/'); - await expect(page.getByText('My Company Catalog')).toBeVisible(); + await expect(page.getByText('Scaffolded Backstage App')).toBeVisible(); }); diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx index ec8ba1d..824bc54 100644 --- a/packages/app/src/App.test.tsx +++ b/packages/app/src/App.test.tsx @@ -10,7 +10,7 @@ describe('App', () => { { data: { app: { title: 'Test' }, - backend: { baseUrl: 'http://localhost:7007' }, + backend: { baseUrl: 'http://localhost:3000' }, techdocs: { storageUrl: 'http://localhost:7007/api/techdocs/static/docs', }, diff --git a/yarn.lock b/yarn.lock index 8ec8567..0d6459f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8915,7 +8915,8 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@*", "@types/react-dom@^18.0.0": +"@types/react-dom@*", "@types/react-dom@^18", "@types/react-dom@^18.0.0": +"@types/react-dom@*", "@types/react-dom@^18", "@types/react-dom@^18.0.0": version "18.2.19" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.19.tgz#b84b7c30c635a6c26c6a6dfbb599b2da9788be58" integrity sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA== @@ -8953,15 +8954,6 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0": - version "18.2.56" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.56.tgz#2d3e9021a0b6eb5bfc227761cc61b1c6dc6e0cd8" - integrity sha512-NpwHDMkS/EFZF2dONFQHgkPRwhvgq/OAvIaGQzxGSBmaeR++kTg6njr15Vatz0/2VcCEwJQFi6Jf4Q0qBu0rLA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/react@^16.13.1 || ^17.0.0": version "17.0.75" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.75.tgz#cffbc76840a12fcadaf5a3cf14878bb06efcf73d"