mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #1249 from sharelatex/ja-single-process-acceptance-tests-2
Move to running acceptance tests in same process as web server GitOrigin-RevId: 65757f0b57ac621cafb0066b5c5a7abb30333edd
This commit is contained in:
parent
d0744d779e
commit
65c1943c63
7 changed files with 32 additions and 55 deletions
|
@ -209,40 +209,26 @@ test_frontend: test_clean # stop service
|
||||||
$(MAKE) compile
|
$(MAKE) compile
|
||||||
docker-compose ${DOCKER_COMPOSE_FLAGS} up --exit-code-from test_frontend --abort-on-container-exit test_frontend
|
docker-compose ${DOCKER_COMPOSE_FLAGS} up --exit-code-from test_frontend --abort-on-container-exit test_frontend
|
||||||
|
|
||||||
test_acceptance: test_acceptance_app test_acceptance_modules
|
test_acceptance: compile test_acceptance_app_run test_acceptance_modules_run
|
||||||
|
|
||||||
test_acceptance_app:
|
test_acceptance_app: compile test_acceptance_app_run
|
||||||
|
|
||||||
|
test_acceptance_module: compile test_acceptance_module_run
|
||||||
|
|
||||||
|
test_acceptance_app_run: test_clean
|
||||||
@set -e; \
|
@set -e; \
|
||||||
$(MAKE) test_acceptance_app_start_service; \
|
docker-compose ${DOCKER_COMPOSE_FLAGS} run --rm test_acceptance npm -q run test:acceptance:run_dir -- ${MOCHA_ARGS} test/acceptance/js
|
||||||
$(MAKE) test_acceptance_app_run; \
|
|
||||||
$(MAKE) test_acceptance_app_stop_service;
|
|
||||||
|
|
||||||
test_acceptance_app_start_service: test_clean # stop service and clear dbs
|
test_acceptance_modules_run:
|
||||||
$(MAKE) compile
|
|
||||||
docker-compose ${DOCKER_COMPOSE_FLAGS} up -d test_acceptance
|
|
||||||
|
|
||||||
test_acceptance_app_stop_service:
|
|
||||||
docker-compose ${DOCKER_COMPOSE_FLAGS} stop -t 0 test_acceptance redis mongo
|
|
||||||
|
|
||||||
test_acceptance_app_run:
|
|
||||||
@docker-compose ${DOCKER_COMPOSE_FLAGS} exec -T test_acceptance npm -q run test:acceptance -- ${MOCHA_ARGS}; \
|
|
||||||
result=$$?; \
|
|
||||||
if [ $$result -eq 137 ]; then \
|
|
||||||
docker-compose logs --tail=50 test_acceptance; \
|
|
||||||
echo "\nOh dear, it looks like the web process crashed! Some logs are above, but to see them all, run:\n\n\tdocker-compose logs test_acceptance\n"; \
|
|
||||||
fi; \
|
|
||||||
exit $$result
|
|
||||||
|
|
||||||
test_acceptance_modules:
|
|
||||||
@set -e; \
|
@set -e; \
|
||||||
for dir in $(MODULE_DIRS); \
|
for dir in $(MODULE_DIRS); \
|
||||||
do \
|
do \
|
||||||
if [ -e $$dir/test/acceptance ]; then \
|
if [ -e $$dir/test/acceptance ]; then \
|
||||||
$(MAKE) test_acceptance_module MODULE=$$dir; \
|
$(MAKE) test_acceptance_module_run MODULE=$$dir; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
test_acceptance_module: $(MODULE_MAKEFILES)
|
test_acceptance_module_run: $(MODULE_MAKEFILES) test_clean
|
||||||
@if [ -e $(MODULE)/test/acceptance ]; then \
|
@if [ -e $(MODULE)/test/acceptance ]; then \
|
||||||
cd $(MODULE) && $(MAKE) test_acceptance; \
|
cd $(MODULE) && $(MAKE) test_acceptance; \
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -59,14 +59,5 @@ compile_full:
|
||||||
if [ -e test/unit_frontend/src/ide ]; then $(BABEL) test/unit_frontend/src/ide --out-dir ../../test/unit_frontend/js/ide/$(MODULE_NAME); fi
|
if [ -e test/unit_frontend/src/ide ]; then $(BABEL) test/unit_frontend/src/ide --out-dir ../../test/unit_frontend/js/ide/$(MODULE_NAME); fi
|
||||||
@$(MAKE) compile
|
@$(MAKE) compile
|
||||||
|
|
||||||
test_acceptance: test_acceptance_start_service test_acceptance_run
|
test_acceptance:
|
||||||
$(MAKE) test_acceptance_stop_service
|
${DOCKER_COMPOSE} run --rm test_acceptance npm -q run test:acceptance:run_dir -- ${MOCHA_ARGS} $(MODULE_DIR)/test/acceptance/js
|
||||||
|
|
||||||
test_acceptance_start_service: test_acceptance_stop_service
|
|
||||||
$(DOCKER_COMPOSE) up -d test_acceptance
|
|
||||||
|
|
||||||
test_acceptance_stop_service:
|
|
||||||
$(DOCKER_COMPOSE) stop -t 0 test_acceptance redis mongo
|
|
||||||
|
|
||||||
test_acceptance_run:
|
|
||||||
$(DOCKER_COMPOSE) exec -T test_acceptance npm -q run test:acceptance:dir -- ${MOCHA_ARGS} $(MODULE_DIR)/test/acceptance/js
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ if Settings.catchErrors
|
||||||
|
|
||||||
port = Settings.port or Settings.internal?.web?.port or 3000
|
port = Settings.port or Settings.internal?.web?.port or 3000
|
||||||
host = Settings.internal.web.host or "localhost"
|
host = Settings.internal.web.host or "localhost"
|
||||||
|
if !module.parent # Called directly
|
||||||
Server.server.listen port, host, ->
|
Server.server.listen port, host, ->
|
||||||
logger.info "web starting up, listening on #{host}:#{port}"
|
logger.info "web starting up, listening on #{host}:#{port}"
|
||||||
logger.info("#{require('http').globalAgent.maxSockets} sockets enabled")
|
logger.info("#{require('http').globalAgent.maxSockets} sockets enabled")
|
||||||
|
@ -35,3 +36,5 @@ Server.server.listen port, host, ->
|
||||||
if argv.group
|
if argv.group
|
||||||
process.setgid argv.group
|
process.setgid argv.group
|
||||||
logger.info "Running as group: #{argv.group}"
|
logger.info "Running as group: #{argv.group}"
|
||||||
|
|
||||||
|
module.exports = Server.server
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -e;
|
|
||||||
MOCHA="node_modules/.bin/mocha --exit --recursive --reporter spec --timeout 15000"
|
|
||||||
$MOCHA "$@"
|
|
|
@ -7,8 +7,7 @@ services:
|
||||||
test_acceptance:
|
test_acceptance:
|
||||||
image: node:6.9.5
|
image: node:6.9.5
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app:ro
|
- .:/app
|
||||||
- data:/app/data:rw
|
|
||||||
working_dir: /app
|
working_dir: /app
|
||||||
environment:
|
environment:
|
||||||
REDIS_HOST: redis
|
REDIS_HOST: redis
|
||||||
|
@ -23,7 +22,7 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
- redis
|
- redis
|
||||||
- mongo
|
- mongo
|
||||||
command: node app.js
|
command: npm run test:acceptance:app
|
||||||
|
|
||||||
test_frontend:
|
test_frontend:
|
||||||
build:
|
build:
|
||||||
|
|
|
@ -10,10 +10,7 @@
|
||||||
"public": "./public"
|
"public": "./public"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test:acceptance:wait_for_app": "echo 'Waiting for app to be accessible' && while (! curl -s -o /dev/null localhost:3000/status) do sleep 1; done",
|
"test:acceptance:run_dir": "mocha --recursive --reporter spec --timeout 15000 --exit $@",
|
||||||
"test:acceptance:run": "bin/acceptance_test $@",
|
|
||||||
"test:acceptance:dir": "npm -q run test:acceptance:wait_for_app && npm -q run test:acceptance:run -- $@",
|
|
||||||
"test:acceptance": "npm -q run test:acceptance:dir -- $@ test/acceptance/js",
|
|
||||||
"test:unit": "npm -q run compile && bin/unit_test $@",
|
"test:unit": "npm -q run compile && bin/unit_test $@",
|
||||||
"test:unit:app": "npm -q run compile && bin/unit_test_app $@",
|
"test:unit:app": "npm -q run compile && bin/unit_test_app $@",
|
||||||
"test:frontend": "karma start",
|
"test:frontend": "karma start",
|
||||||
|
|
5
services/web/test/acceptance/coffee/Init.coffee
Normal file
5
services/web/test/acceptance/coffee/Init.coffee
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
App = require '../../../app.js'
|
||||||
|
require("logger-sharelatex").logger.level("error")
|
||||||
|
|
||||||
|
before (done) ->
|
||||||
|
App.listen 3000, 'localhost', done
|
Loading…
Reference in a new issue