Skip to content

Cypress end to end tests #17

Cypress end to end tests

Cypress end to end tests #17

Workflow file for this run

name: Cypress end to end tests
on:
workflow_dispatch:
jobs:
test_e2e_cypress:
strategy:
matrix:
include:
- name: csv-add-affiliations
spec: |
cypress/e2e/retention/csv-add-affiliations.cy.js
- name: csv-edit-affiliations
spec: |
cypress/e2e/retention/csv-edit-affiliations.cy.js
- name: add-affiliation
spec: |
cypress/e2e/retention/add-affiliation.cy.js
- name: notifications
spec: |
cypress/e2e/retention/notifications.cy.js
- name: other-tests
spec: |
cypress/e2e/retention/add-member.cy.js
cypress/e2e/retention/add-user.cy.js
cypress/e2e/retention/csv-invalid-affiliation.cy.js
cypress/e2e/retention/edit-affiliation.cy.js
cypress/e2e/retention/edit-member.cy.js
cypress/e2e/retention/edit-user.cy.js
cypress/e2e/retention/reset-password.cy.js
cypress/e2e/retention/restricted-access.cy.js
cypress/e2e/retention/ui-authorities.cy.js
cypress/e2e/retention/ui-login.cy.js
cypress/e2e/retention/ui-pagination.cy.js
cypress/e2e/retention/ui-homepage.cy.js
cypress/e2e/retention/ui-homepage-edit.cy.js
cypress/e2e/retention/ui-reports.cy.js
# keep running jobs even if one test fails in case there are multiple failed tests
fail-fast: false
###################################################################################################
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: "Create creds json"
id: create-creds-json
uses: jsdaniell/[email protected]
with:
name: "credentials.json"
json: '{"adminEmail": "${{secrets.CY_ADMIN_EMAIL}}", "adminPassword": "${{secrets.CY_ADMIN_PASSWORD}}", "password": "${{secrets.CY_PASSWORD}}", "shortPassword": "${{secrets.CY_SHORT_PASSWORD}}", "shortConfirmationPassword": "${{secrets.CY_SHORT_CONFIRMATION_PASSWORD}}", "wrongConfirmationPasssword": "${{secrets.CY_WRONG_CONFIRMATION_PASSWORD}}"}'
dir: "ui/cypress/fixtures"
- name: "Create Gmail creds json"
id: create-gmail-creds-file
uses: jsdaniell/[email protected]
with:
name: "credentials_qa.json"
json: '{"installed":{"client_id":"${{secrets.CY_CREDS_CLIENT_ID}}","project_id":"${{secrets.CY_CREDS_PROJECT_ID}}","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"${{secrets.CY_CREDS_CLIENT_SECRET}}","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}'
dir: "ui/cypress/plugins"
- name: "Create Gmail token json"
id: create-gmail-token-file
uses: jsdaniell/[email protected]
with:
name: "token_qa.json"
json: '{"access_token":"${{secrets.CY_TOKEN_ACCESS}}","refresh_token":"${{secrets.CY_TOKEN_REFRESH}}","scope":"https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.send","token_type":"Bearer","expiry_date":${{secrets.CY_TOKEN_EXPIRY_DATE}}}'
dir: "ui/cypress/plugins"
##########################################################################################################
- name: Cypress run
uses: cypress-io/github-action@v6
with:
install-command: npm install cypress --legacy-peer-deps
working-directory: ui
spec: "${{ matrix.spec }}"
# upload our cypress output results but only if the cypress tests failed
# NOTE: artifacts must have unique names
- uses: actions/upload-artifact@v4
if: failure()
with:
name: "cypress-screenshots-${{ matrix.name }}"
path: ui/cypress/screenshots
if-no-files-found: ignore
- uses: actions/upload-artifact@v4
if: failure()
with:
name: "cypress-videos-${{ matrix.name }}"
path: ui/cypress/videos
if-no-files-found: ignore