update docs and remove references to testcafe
This commit is contained in:
parent
3d86204db6
commit
ed0e49d16e
@ -67,46 +67,20 @@ $ docker-compose exec back yarn run pretty
|
||||
|
||||
WorkAdventure is based on a video game engine (Phaser), and video games are not the easiest programs to unit test.
|
||||
|
||||
Nevertheless, if your code can be unit tested, please provide a unit test (we use Jasmine), or an end-to-end test (we use Testcafe).
|
||||
Nevertheless, if your code can be unit tested, please provide a unit test (we use Jasmine), or an end-to-end test (we use Playwright).
|
||||
|
||||
If you are providing a new feature, you should setup a test map in the `maps/tests` directory. The test map should contain
|
||||
some description text describing how to test the feature.
|
||||
|
||||
* if the features is meant to be manually tested, you should modify the `maps/tests/index.html` file to add a reference
|
||||
to your newly created test map
|
||||
* if the features can be automatically tested, please provide a testcafe test
|
||||
* if the features can be automatically tested, please provide an end-to-end test
|
||||
|
||||
#### Running testcafe tests
|
||||
#### Running end-to-end tests
|
||||
|
||||
End-to-end tests are available in the "/tests" directory.
|
||||
|
||||
To run these tests locally:
|
||||
|
||||
```console
|
||||
$ LIVE_RELOAD=0 docker-compose up -d
|
||||
$ cd tests
|
||||
$ npm install
|
||||
$ npm run test
|
||||
```
|
||||
|
||||
Note: If your tests fail on a Javascript error in "sockjs", this is due to the
|
||||
Webpack live reload. The Webpack live reload feature is conflicting with testcafe. This is why we recommend starting
|
||||
WorkAdventure with the `LIVE_RELOAD=0` environment variable.
|
||||
|
||||
End-to-end tests can take a while to run. To run only one test, use:
|
||||
|
||||
```console
|
||||
$ npm run test -- tests/[name of the test file].ts
|
||||
```
|
||||
|
||||
You can also run the tests inside a container (but you will not have visual feedbacks on your test, so we recommend using
|
||||
the local tests).
|
||||
|
||||
```console
|
||||
$ LIVE_RELOAD=0 docker-compose up -d
|
||||
# Wait 2-3 minutes for the environment to start, then:
|
||||
$ PROJECT_DIR=$(pwd) docker-compose -f docker-compose.testcafe.yml up
|
||||
```
|
||||
More information on running end-to-end tests can be found in the [`/tests/README`](/tests/README.md).
|
||||
|
||||
### A bad wording or a missing language
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
||||
{
|
||||
"fontfamily":"Sans Serif",
|
||||
"pixelsize":11,
|
||||
"text":"Test:\nThis test is to be run automatically using testcafe",
|
||||
"text":"Test:\nThis test is to be run automatically using playwright",
|
||||
"wrap":true
|
||||
},
|
||||
"type":"",
|
||||
|
@ -40,7 +40,7 @@
|
||||
{
|
||||
"fontfamily":"Sans Serif",
|
||||
"pixelsize":11,
|
||||
"text":"Test:\nThis test is to be run automatically using testcafe\n\n(2nd file)",
|
||||
"text":"Test:\nThis test is to be run automatically using playwright\n\n(2nd file)",
|
||||
"wrap":true
|
||||
},
|
||||
"type":"",
|
||||
|
@ -1,5 +0,0 @@
|
||||
FROM testcafe/testcafe:1.18.2
|
||||
|
||||
USER root
|
||||
RUN apk add docker-compose
|
||||
USER user
|
@ -1,20 +1,52 @@
|
||||
End-to-end tests
|
||||
# End-to-end tests
|
||||
|
||||
This directory contains automated end to end tests.
|
||||
|
||||
To run them locally:
|
||||
## Installation
|
||||
|
||||
```console
|
||||
$ npm install
|
||||
$ ADMIN_API_TOKEN=123 npm test
|
||||
```bash
|
||||
npm install
|
||||
npx playwright install --with-deps
|
||||
```
|
||||
|
||||
## Run on development environment
|
||||
|
||||
Start WorkAdventure with:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Wait 2-3 minutes for the environment to start, then:
|
||||
|
||||
Start the tests with:
|
||||
|
||||
```bash
|
||||
ADMIN_API_TOKEN=123 npm run test
|
||||
```
|
||||
|
||||
You'll need to adapt the `ADMIN_API_TOKEN` to the value you use in your `.env` file.
|
||||
|
||||
Alternatively, you can use docker-compose to run the tests:
|
||||
## Run on production like environment
|
||||
|
||||
```console
|
||||
$ PROJECT_DIR=$(pwd) docker-compose -f docker-compose.testcafe.yml up --exit-code-from testcafe
|
||||
Start WorkAdventure with:
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.yaml -f docker-compose.e2e.yml up -d --build
|
||||
```
|
||||
|
||||
Note: by default, tests are running in Chrome locally and in Chromium in the Docker image.
|
||||
Start the tests with:
|
||||
|
||||
```bash
|
||||
ADMIN_API_TOKEN=123 npm run test-prod-like
|
||||
```
|
||||
|
||||
You'll need to adapt the `ADMIN_API_TOKEN` to the value you use in your `.env` file.
|
||||
|
||||
## Run selected tests
|
||||
|
||||
End-to-end tests can take a while to run. To run only one test in one browser, use:
|
||||
|
||||
```bash
|
||||
ADMIN_API_TOKEN=123 npm run test -- [name of the test file] --project=[chromium|firefox|webkit]
|
||||
```
|
||||
|
@ -6,7 +6,7 @@
|
||||
"dockerode": "^3.3.1"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "ADMIN_API_TOKEN=123 playwright test",
|
||||
"test": "playwright test",
|
||||
"test-prod-like": "OVERRIDE_DOCKER_COMPOSE=docker-compose.e2e.yml npm run test"
|
||||
}
|
||||
}
|
||||
|
@ -8,23 +8,12 @@ const path = require("path");
|
||||
const fs = require('fs');
|
||||
|
||||
/**
|
||||
* Execute Docker compose, passing the correct host directory (in case this is run from the TestCafe container)
|
||||
* Execute Docker compose, passing the correct host directory
|
||||
*/
|
||||
export function dockerCompose(command: string): void {
|
||||
let param = '';
|
||||
const projectDir = process.env.PROJECT_DIR;
|
||||
const overrideDockerCompose = process.env.OVERRIDE_DOCKER_COMPOSE;
|
||||
|
||||
if (!projectDir && fs.existsSync('/project')) {
|
||||
// We are probably in the docker-image AND we did not pass PROJECT_DIR env variable
|
||||
throw new Error('Incorrect docker-compose command used to fire testcafe tests. You need to add a PROJECT_DIR environment variable. Please refer to the CONTRIBUTING.md guide');
|
||||
}
|
||||
|
||||
if (projectDir) {
|
||||
const dirName = path.basename(projectDir);
|
||||
param = '--project-name '+dirName+' --project-directory '+projectDir;
|
||||
}
|
||||
|
||||
if (overrideDockerCompose) {
|
||||
param += ' -f docker-compose.yaml -f '+overrideDockerCompose;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user