Skip to content

Commit

Permalink
Merge branch 'main' into gordon/filters-session-storage
Browse files Browse the repository at this point in the history
  • Loading branch information
gordonfarrell authored Jan 8, 2025
2 parents 38870f2 + 8cbac55 commit e3c9ee3
Show file tree
Hide file tree
Showing 37 changed files with 761 additions and 5,971 deletions.
101 changes: 55 additions & 46 deletions .github/workflows/container-ecr-viewer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,52 +56,6 @@ jobs:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: ${{ env.CONTAINER }}
cypress-e2e-tests:
if: false
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install dependencies
working-directory: ./containers/${{env.CONTAINER}} # Navigate to your Node.js app directory
run: npm install

- name: Start ${{env.CONTAINER}}
working-directory: ./containers/${{env.CONTAINER}}/cypress
run: docker compose --env-file ../.env.test up -d

- name: Run cypress tests
working-directory: ./containers/${{env.CONTAINER}}
run: npm run cypress:run

- name: Archive cypress failures
if: always()
uses: actions/upload-artifact@v4
with:
name: cypress-results
path: |
containers/ecr-viewer/cypress/screenshots/*
containers/ecr-viewer/cypress/videos/*
- name: Get docker logs
if: always()
working-directory: ./containers/${{env.CONTAINER}}/cypress
shell: bash
run: |
echo "Saving $container logs"
docker compose logs --timestamps >& cypress-run.log
- name: Archive docker logs
if: always()
uses: actions/upload-artifact@v4
with:
name: logs
path: ./containers/${{env.CONTAINER}}/cypress/cypress-run.log

lighthouse:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -170,3 +124,58 @@ jobs:
- name: Run seed data conversion
run: npm run convert-seed-data
working-directory: ./containers/${{env.CONTAINER}}

e2e-tests:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}

- name: Install dependencies
working-directory: ./containers/${{env.CONTAINER}}
run: npm ci

- name: Install Playwright Browsers
run: npx playwright install --with-deps

- name: Set up env vars
working-directory: ./containers/${{env.CONTAINER}}
run: npm run setup-local-env

- name: Run seed data conversion
working-directory: ./containers/${{env.CONTAINER}}
run: npm run convert-seed-data

- name: Run Playwright tests
working-directory: ./containers/${{env.CONTAINER}}
run: npm run test:e2e

- name: Upload playwright report
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: containers/${{env.CONTAINER}}/playwright-report/
retention-days: 30

- name: Get docker logs
if: ${{ !cancelled() }}
working-directory: ./containers/${{env.CONTAINER}}/e2e
shell: bash
run: |
echo "Saving $container logs"
docker compose --profile "*" logs --timestamps >& e2e-run.log
- name: Archive docker logs
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: logs
path: ./containers/${{env.CONTAINER}}/e2e/e2e-run.log
retention-days: 30
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.4
rev: v0.8.6
hooks:
# Run the linter.
- id: ruff
args: [--fix]
# Run the formatter.
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-eslint
rev: "v8.56.0"
rev: v8.56.0
hooks:
- id: eslint
name: ESLint for ECR Viewer
Expand Down
2 changes: 1 addition & 1 deletion containers/ecr-viewer/.dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ docker-compose.yaml
Dockerfile
node_modules
seed-scripts
cypress
e2e
design-review
.swc
6 changes: 4 additions & 2 deletions containers/ecr-viewer/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ seed-scripts/baseECR/TN
seed-scripts/baseECR/KY
seed-scripts/baseECR/ME

cypress/screenshots
cypress/videos
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
96 changes: 0 additions & 96 deletions containers/ecr-viewer/Makefile

This file was deleted.

28 changes: 27 additions & 1 deletion containers/ecr-viewer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,33 @@ Sample eICRs are included in `containers/ecr-viewer/seed-scripts/baseECR/`. If y

### Developer Commands

Additional commands can be found in [`package.json`](package.json) and are also made available in [`Makefile`](Makefile).
Additional commands can be found in [`package.json`](package.json).

### Testing

#### Unit Testing

Unit tests utilize Jest as the test runner. [Jest-axe](https://github.com/nickcolley/jest-axe) provides basic accesibility utilities and [React testing library](https://testing-library.com/docs/react-testing-library/intro) provides react utilities.
Running tests:

- `npm run test` - Run the full suite of unit tests.
- `npm run test:watch` - Run tests in [watch mode](https://jestjs.io/docs/cli#--watch). Tests will run that only affect changed code. It will rerun whenever a new change is detected.

#### End to End Testing

End to end test utilize the Playwright framerwork.
Running Tests:

1. `npm run convert-seed-data:build` to save all required eCRs necessary for e2e tests. The tests require all eCRs located in `/seed-scripts/baseECR/LA` have been saved (and no other eCRs).
2. `npm run test:e2e` to run the tests against http://localhost:3000/ecr-viewer.
- If the service isn't available, Playwright is [configured to spin it up](https://playwright.dev/docs/test-webserver).
- If you would prefer to spin up the service manually, you can run `npm run local-dev` or `npm run local-docker`.

Other useful playwright tools/commands

- [Playwright VScode extension](https://playwright.dev/docs/getting-started-vscode) - Can be used to record tests, run specific tests, and much more!
- `npx playwright show-report` - Show the previous test report.
- `npx playwright codegen` - [Record tests](https://playwright.dev/docs/codegen) using UI.

## API Documentation

Expand Down
16 changes: 0 additions & 16 deletions containers/ecr-viewer/cypress.config.ts

This file was deleted.

1 change: 0 additions & 1 deletion containers/ecr-viewer/cypress/assets/data.sql

This file was deleted.

32 changes: 0 additions & 32 deletions containers/ecr-viewer/cypress/docker-compose.yaml

This file was deleted.

23 changes: 0 additions & 23 deletions containers/ecr-viewer/cypress/e2e/app.cy.tsx

This file was deleted.

39 changes: 0 additions & 39 deletions containers/ecr-viewer/cypress/e2e/page.cy.tsx

This file was deleted.

Loading

0 comments on commit e3c9ee3

Please sign in to comment.