diff --git a/.travis.yml b/.travis.yml index 72ae8027b2f..680052c7437 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,33 @@ language: node_js + node_js: - "lts/*" -install: - - "bin/installDeps.sh" - - "export GIT_HASH=$(git rev-parse --verify --short HEAD)" - - "npm install ep_test_line_attrib" -script: - - "tests/frontend/travis/runner.sh" + +services: + - docker + env: global: - secure: "WMGxFkOeTTlhWB+ChMucRtIqVmMbwzYdNHuHQjKCcj8HBEPdZLfCuK/kf4rG\nVLcLQiIsyllqzNhBGVHG1nyqWr0/LTm8JRqSCDDVIhpyzp9KpCJQQJG2Uwjk\n6/HIJJh/wbxsEdLNV2crYU/EiVO3A4Bq0YTHUlbhUqG3mSCr5Ec=" - secure: "gejXUAHYscbR6Bodw35XexpToqWkv2ifeECsbeEmjaLkYzXmUUNWJGknKSu7\nEUsSfQV8w+hxApr1Z+jNqk9aX3K1I4btL3cwk2trnNI8XRAvu1c1Iv60eerI\nkE82Rsd5lwUaMEh+/HoL8ztFCZamVndoNgX7HWp5J/NRZZMmh4g=" -jdk: - - oraclejdk6 + +jobs: + include: + - name: "Test the Frontend" + install: + - "bin/installDeps.sh" + - "export GIT_HASH=$(git rev-parse --verify --short HEAD)" + - "npm install ep_test_line_attrib" + script: + - "tests/frontend/travis/runner.sh" + - name: "Test the Dockerfile" + install: + - "cd src && npm install && cd -" + script: + - "docker build -t etherpad:test ." + - "docker run -d -p 9001:9001 etherpad:test && sleep 3" + - "cd src && npm run test-container" + notifications: irc: channels: diff --git a/src/package.json b/src/package.json index 5c925007b2e..926de995eac 100644 --- a/src/package.json +++ b/src/package.json @@ -82,7 +82,8 @@ "url": "https://github.com/ether/etherpad-lite.git" }, "scripts": { - "test": "nyc mocha --timeout 5000 ../tests/backend/specs/api" + "test": "nyc mocha --timeout 5000 ../tests/backend/specs/api", + "test-container": "nyc mocha --timeout 5000 ../tests/container/specs/api" }, "version": "1.8.0", "license": "Apache-2.0" diff --git a/tests/backend/loadSettings.js b/tests/backend/loadSettings.js index f208fe3d04e..e1ab27d90da 100644 --- a/tests/backend/loadSettings.js +++ b/tests/backend/loadSettings.js @@ -1,13 +1,22 @@ +/* + * ACHTUNG: there is a copied & modified version of this file in + * /tests/container/loadSettings.js + * + * TODO: unify those two files, and merge in a single one. + */ + var jsonminify = require(__dirname+"/../../src/node_modules/jsonminify"); +const fs = require('fs'); function loadSettings(){ var settingsStr = fs.readFileSync(__dirname+"/../../settings.json").toString(); // try to parse the settings - var settings; try { if(settingsStr) { settingsStr = jsonminify(settingsStr).replace(",]","]").replace(",}","}"); - return JSON.parse(settingsStr); + var settings = JSON.parse(settingsStr); + + return settings; } }catch(e){ console.error("whoops something is bad with settings"); diff --git a/tests/backend/specs/api/pad.js b/tests/backend/specs/api/pad.js index 4a0c6b6a216..9eff0656213 100644 --- a/tests/backend/specs/api/pad.js +++ b/tests/backend/specs/api/pad.js @@ -1,10 +1,17 @@ -var assert = require('assert') - supertest = require(__dirname+'/../../../../src/node_modules/supertest'), - fs = require('fs'), - settings = require(__dirname+'/../../loadSettings').loadSettings(), - api = supertest('http://'+settings.ip+":"+settings.port), - path = require('path'), - async = require(__dirname+'/../../../../src/node_modules/async'); +/* + * ACHTUNG: there is a copied & modified version of this file in + * /tests/container/spacs/api/pad.js + * + * TODO: unify those two files, and merge in a single one. + */ + +const assert = require('assert'); +const supertest = require(__dirname+'/../../../../src/node_modules/supertest'); +const fs = require('fs'); +const settings = require(__dirname+'/../../loadSettings').loadSettings(); +const api = supertest('http://'+settings.ip+":"+settings.port); +const path = require('path'); +const async = require(__dirname+'/../../../../src/node_modules/async'); var filePath = path.join(__dirname, '../../../../APIKEY.txt'); @@ -29,7 +36,7 @@ var ulHtml = '