diff --git a/.travis.yml b/.travis.yml index e36a1a37..87cddb55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ sudo: required language: node_js +services: + - docker + addons: apt: sources: @@ -14,7 +17,7 @@ addons: before_install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CC=gcc-7; fi - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CXX=g++-7; fi - - ./scripts/travis-before-install.sh + - npm run travis-before-install node_js: - 10 @@ -22,6 +25,9 @@ node_js: install: - npm install +before_script: + - npm run start-test-server + script: - npm test diff --git a/package.json b/package.json index b614eec2..fcced712 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,9 @@ "rebuild": "node-gyp rebuild --debug --verbose", "submodule": "git submodule update --recursive --init", "install": "./scripts/rebuild-all", + "travis-before-install": "./scripts/travis-before-install", + "start-test-server": "./scripts/start-test-server", + "stop-test-server": "./scripts/stop-test-server", "generate-constants": "./scripts/generate-constants.js", "test": "standard && npm run dependency-check && nyc node test/index.js", "coverage": "nyc report --reporter=text-lcov | coveralls", diff --git a/scripts/start-test-server b/scripts/start-test-server new file mode 100755 index 00000000..c6d37aaf --- /dev/null +++ b/scripts/start-test-server @@ -0,0 +1,11 @@ +#!/bin/bash + +# Interactive +#docker run -t -i \ +# -e GREENMAIL_OPTS='-Dgreenmail.setup.test.smtps -Dgreenmail.setup.test.imaps -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.users=delta1:delta1,delta2:delta2 -Dgreenmail.verbose' \ +# -p 3025:3025 -p 3110:3110 -p 3143:3143 -p 3465:3465 -p 3993:3993 -p 3995:3995 greenmail/standalone:1.5.8 + +# Daemon +docker run -d --name greenmail \ + -e GREENMAIL_OPTS='-Dgreenmail.setup.test.smtp -Dgreenmail.setup.test.imap -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.users=delta1:delta1,delta2:delta2 -Dgreenmail.verbose' \ + -p 3025:3025 -p 3110:3110 -p 3143:3143 -p 3465:3465 -p 3993:3993 -p 3995:3995 greenmail/standalone:1.5.8 diff --git a/scripts/stop-test-server b/scripts/stop-test-server new file mode 100755 index 00000000..c1dbe6ca --- /dev/null +++ b/scripts/stop-test-server @@ -0,0 +1,3 @@ +#!/bin/bash + +docker rm -f greenmail diff --git a/scripts/travis-before-install.sh b/scripts/travis-before-install similarity index 100% rename from scripts/travis-before-install.sh rename to scripts/travis-before-install diff --git a/test/index.js b/test/index.js index 011632a9..8374462e 100644 --- a/test/index.js +++ b/test/index.js @@ -6,22 +6,27 @@ const fs = require('fs') const c = require('../constants') const events = require('../events') -const env = process.env - -if (!env.DC_ADDR || !env.DC_MAIL_PW) { - throw new Error('No credentials. Please specify $DC_ADDR and $DC_MAIL_PW !') -} - let dc = null test('setUp dc context', t => { t.plan(3) dc = new DeltaChat({ - addr: env.DC_ADDR, - mail_pw: env.DC_MAIL_PW, + addr: 'delta1@delta.localhost', + mail_server: '127.0.0.1', + mail_port: 3143, + mail_user: 'delta1', + mail_pw: 'delta1', + send_server: '127.0.0.1', + send_port: 3025, + send_user: 'delta1', + send_pw: 'delta1', + server_flags: 0x400 | 0x40000, cwd: tempy.directory() }) dc.once('ready', () => t.pass('ready event fired')) + dc.on('DC_EVENT_ERROR', (data1, data2) => { + throw new Error(data1 || data2) + }) dc.once('ALL', () => t.pass('ALL event fired at least once')) dc.open(err => t.error(err, 'no error during open')) })