diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f3b7aff689..3fe88a58b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,12 +15,16 @@ jobs: env: # The ci step will test the dspace-angular code against DSpace REST. # Direct that step to utilize a DSpace REST service that has been started in docker. + # NOTE: These settings should be kept in sync with those in [src]/docker/docker-compose-ci.yml DSPACE_REST_HOST: 127.0.0.1 DSPACE_REST_PORT: 8080 DSPACE_REST_NAMESPACE: '/server' DSPACE_REST_SSL: false # Spin up UI on 127.0.0.1 to avoid host resolution issues in e2e tests with Node 18+ DSPACE_UI_HOST: 127.0.0.1 + DSPACE_UI_PORT: 4000 + # Tell Cypress to run e2e tests using the same UI URL + CYPRESS_BASE_URL: http://127.0.0.1:4000 # When Chrome version is specified, we pin to a specific version of Chrome # Comment this out to use the latest release #CHROME_VERSION: "90.0.4430.212-1" diff --git a/cypress.config.ts b/cypress.config.ts index e45b8a5396..91eeb9838b 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from 'cypress' +import { defineConfig } from 'cypress'; export default defineConfig({ videosFolder: 'cypress/videos', @@ -9,23 +9,36 @@ export default defineConfig({ openMode: 0, }, env: { + // Global constants used in DSpace e2e tests (see also ./cypress/support/e2e.ts) + // May be overridden in our cypress.json config file using specified environment variables. + // Default values listed here are all valid for the Demo Entities Data set available at + // https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data + // (This is the data set used in our CI environment) + + // Admin account used for administrative tests DSPACE_TEST_ADMIN_USER: 'dspacedemo+admin@gmail.com', DSPACE_TEST_ADMIN_PASSWORD: 'dspace', + // Community/collection/publication used for view/edit tests DSPACE_TEST_COMMUNITY: '0958c910-2037-42a9-81c7-dca80e3892b4', DSPACE_TEST_COLLECTION: '282164f5-d325-4740-8dd1-fa4d6d3e7200', DSPACE_TEST_ENTITY_PUBLICATION: 'e98b0f27-5c19-49a0-960d-eb6ad5287067', + // Search term (should return results) used in search tests DSPACE_TEST_SEARCH_TERM: 'test', + // Collection used for submission tests DSPACE_TEST_SUBMIT_COLLECTION_NAME: 'Sample Collection', DSPACE_TEST_SUBMIT_COLLECTION_UUID: '9d8334e9-25d3-4a67-9cea-3dffdef80144', + // Account used to test basic submission process DSPACE_TEST_SUBMIT_USER: 'dspacedemo+submit@gmail.com', DSPACE_TEST_SUBMIT_USER_PASSWORD: 'dspace', }, e2e: { - // We've imported your old cypress plugins here. - // You may want to clean this up later by importing these. + // Setup our plugins for e2e tests setupNodeEvents(on, config) { - return require('./cypress/plugins/index.ts')(on, config) + return require('./cypress/plugins/index.ts')(on, config); }, + // This is the base URL that Cypress will run all tests against + // It can be overridden via the CYPRESS_BASE_URL environment variable + // (By default we set this to a value which should work in most development environments) baseUrl: 'http://localhost:4000', }, -}) +}); diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts index 17950eb629..9f2edec31b 100644 --- a/cypress/support/e2e.ts +++ b/cypress/support/e2e.ts @@ -30,11 +30,11 @@ beforeEach(() => { // For better stability between tests, we visit "about:blank" (i.e. blank page) after each test. // This ensures any remaining/outstanding XHR requests are killed, so they don't affect the next test. // Borrowed from: https://glebbahmutov.com/blog/visit-blank-page-between-tests/ -afterEach(() => { +/*afterEach(() => { cy.window().then((win) => { win.location.href = 'about:blank'; }); -}); +});*/ // Global constants used in tests diff --git a/cypress/support/utils.ts b/cypress/support/utils.ts index fc0820d25c..96575969e8 100644 --- a/cypress/support/utils.ts +++ b/cypress/support/utils.ts @@ -40,13 +40,5 @@ export const testA11y = (context?: any, options?: Options) => { { id: 'color-contrast', enabled: false }, ] }); - // Default retries to 2, meaning this accessibility test will retry up to 2 times. - const a11yRetries = 2; - if (options) { - options.retries = a11yRetries; - } else { - options = { retries: a11yRetries } as Options; - } - cy.checkA11y(context, options, terminalLog); };