Note: This is a suggestion only; it might be changed or abandoned at any time.
Note
Latest update: tested against invenio-dev-latest master branch at commit #005a90c1346ce8acad78277f7811d09940ce9b29
At the beginning, you have just your repository:
parent-directory
+-- <my-repository>
+-- site
You will need to change it to the following structure:
parent-directory
+-- <my-repository>
+-- e2e
+-- site
+-- invenio-e2e
+-- ...
+-- pnpm-workspace.yaml
-
Create a
pnpm-workspace.yamlfile in parent directory:# pnpm-workspace.yaml packages: - <my-repository>/e2e - invenio-e2e
-
Clone the
invenio-e2erepository from GitHub:gh repo clone oarepo/invenio-e2e # Switch to a feature branch if needed -
Create the
e2edirectory inside your repository:cp -r invenio-e2e/e2e <my-repository>/e2e
-
Install dependencies:
cd <my-repository>/e2e pnpm install
-
Configure environment variables (see
src/config/env.tsfor all options):
Setup a test user and admin (and possibly other users) in your InvenioRDM instance with the credentials matching those in your environment variables (see src/config/env.ts).:
source .venv/bin/activate
invenio users create user@demo.org --password 123456 --active --confirm
invenio roles create admin
invenio access allow administration-access role admin
invenio users create admin@demo.org --password 123456 --active --confirm
invenio roles add admin@demo.org admin
invenio access allow superuser-access user admin@demo.org
export INVENIO_USER_EMAIL=user@demo.org
export INVENIO_USER_PASSWORD=123456- Add this to your
invenio.cfgto enable tests for the FETCH transport:
# invenio.cfg
RECORDS_RESOURCES_FILES_ALLOWED_DOMAINS = [
"inveniordm.docs.cern.ch",
]- Initialize translations
source .venv/bin/activate
cd e2e
npm run build-translations -- -l en
npm run build-translations -- -l de
npm run build-translations -- -l cs-
Run your server in another terminal:
cd <my-repository> invenio-cli run
-
Run tests:
cd <my-repository>/e2e npx playwright test
Tests can be filtered with the following tags:
@api- run API tests@smoke- run smoke tests
Example:
npx playwright test --grep "@api|@smoke"This package contains linter configuration and scripts to build and test the code. Please run:
pnpm install
npm run lint
npm run lint:fix
npm run prettier
npm run prettier:fix