diff --git a/doc/docker/developing_with_docker.md b/doc/docker/developing_with_docker.md index 5d652021087e..b080e0e9b4da 100644 --- a/doc/docker/developing_with_docker.md +++ b/doc/docker/developing_with_docker.md @@ -139,10 +139,11 @@ $ docker-compose run --rm web bundle exec rspec spec ## Running javascript tests -To run tests in headless Chrome: +To run tests in headless Chrome, add the `docker-compose/js-tests.override.yml` +to the `COMPOSE_FILE` environment variable in your .env, and run: ``` -$ docker-compose run --rm karma yarn run test-headless +$ docker-compose run --rm js-tests ``` ### Selenium diff --git a/doc/testing_javascript.md b/doc/testing_javascript.md index 94035c635252..665289c45a5e 100644 --- a/doc/testing_javascript.md +++ b/doc/testing_javascript.md @@ -3,6 +3,23 @@ The process of testing JavaScript sometimes confuses people. This document's goal is to alleviate that confusion and establish how to run JavaScript tests. +## With Docker and headless Chrome + +This is probably the easiest way to run tests, especially for developers that +don't work with Canvas on a regular basis. + +Create a `.env` file in the repository root, containing: + +``` +COMPOSE_FILE=docker-compose.yml:docker-compose.override.yml:docker-compose/js-tests.override.yml +``` + +Then run: + +``` +docker-compose run --rm js-tests +``` + ## With Docker and Webpack This is becoming the go to standard for running Canvas and compiling your not-JavaScript diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 13f4753c0ebd..9ea2df70c8a5 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -35,12 +35,6 @@ services: <<: *BASE-ENV VIRTUAL_HOST: .canvas.docker - karma: - <<: *BASE - build: - context: . - dockerfile: docker-compose/karma/Dockerfile - postgres: volumes: - pg_data:/var/lib/postgresql/data diff --git a/docker-compose/js-tests.override.yml b/docker-compose/js-tests.override.yml index 48f0ca461052..77fc42725f0c 100644 --- a/docker-compose/js-tests.override.yml +++ b/docker-compose/js-tests.override.yml @@ -6,12 +6,18 @@ services: js-tests: build: ./docker-compose/karma volumes: - - .:/app - - generated_1:/app/public/javascripts/client_apps - - generated_2:/app/public/dist - - i18nliner_node_modules:/app/gems/canvas_i18nliner/node_modules - - node_modules:/app/node_modules - - quizzes_node_modules:/app/client_apps/canvas_quizzes/node_modules - - selinimum_node_modules:/app/gems/selinimum/node_modules + - .:/usr/src/app + - brandable_css_brands:/usr/src/app/app/stylesheets/brandable_css_brands + - generated_1:/usr/src/app/public/javascripts/client_apps + - generated_2:/usr/src/app/public/dist + - generated_3:/usr/src/app/public/javascripts/compiled + - i18nliner_node_modules:/usr/src/app/gems/canvas_i18nliner/node_modules + - log:/usr/src/app/log + - node_modules:/usr/src/app/node_modules + - quizzes_node_modules:/usr/src/app/client_apps/canvas_quizzes/node_modules + - selinimum_node_modules:/usr/src/app/gems/selinimum/node_modules + - tmp:/usr/src/app/tmp + - yarn-cache:/home/docker/.cache/yarn environment: NODE_ENV: CI + command: yarn run test-watch-headless diff --git a/package.json b/package.json index 148a927012ba..6c77c7c75192 100644 --- a/package.json +++ b/package.json @@ -139,6 +139,7 @@ "test": "karma start --single-run", "test-headless": "karma start --single-run --browsers ChromeHeadlessNoSandbox", "test-watch": "karma start", + "test-watch-headless": "karma start --browsers ChromeHeadlessNoSandbox", "preinstall": "script/gem_npm install", "preupdate": "script/gem_npm update", "build": "yarn run build:css && yarn run build:js",