ci: test basic application response of the docker build
Note by muxator: This commit introduced a copied & modified version of the testing files loadSettings.js and pad.js. It's Christmas night, and we want to shipt this feature, so I merged it anyway, adding a note in both the original and copied files so that hopefully someone in the distant future is going to merge them back again.pull/3688/head
parent
69fd393708
commit
92f07a544b
|
@ -21,8 +21,12 @@ jobs:
|
|||
script:
|
||||
- "tests/frontend/travis/runner.sh"
|
||||
- name: "Test the Dockerfile"
|
||||
install:
|
||||
- "cd src && npm install && cd -"
|
||||
script:
|
||||
- "docker build ."
|
||||
- "docker build -t etherpad:test ."
|
||||
- "docker run -d -p 9001:9001 etherpad:test && sleep 3"
|
||||
- "cd src && npm run test-container"
|
||||
|
||||
notifications:
|
||||
irc:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
* ACHTUNG: there is a copied & modified version of this file in
|
||||
* <basedir>/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');
|
||||
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
* ACHTUNG: there is a copied & modified version of this file in
|
||||
* <basedir>/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');
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* ACHTUNG: this file was copied & modified from the analogous
|
||||
* <basedir>/tests/backend/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.docker").toString();
|
||||
// try to parse the settings
|
||||
try {
|
||||
if(settingsStr) {
|
||||
settingsStr = jsonminify(settingsStr).replace(",]","]").replace(",}","}");
|
||||
var settings = JSON.parse(settingsStr);
|
||||
|
||||
// custom settings for running in a container
|
||||
settings.ip = 'localhost';
|
||||
settings.port = '9001';
|
||||
|
||||
return settings;
|
||||
}
|
||||
}catch(e){
|
||||
console.error("whoops something is bad with settings");
|
||||
}
|
||||
}
|
||||
|
||||
exports.loadSettings = loadSettings;
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* ACHTUNG: this file was copied & modified from the analogous
|
||||
* <basedir>/tests/backend/specs/api/pad.js
|
||||
*
|
||||
* TODO: unify those two files, and merge in a single one.
|
||||
*/
|
||||
|
||||
const supertest = require(__dirname+'/../../../../src/node_modules/supertest');
|
||||
const settings = require(__dirname+'/../../loadSettings').loadSettings();
|
||||
const api = supertest('http://'+settings.ip+":"+settings.port);
|
||||
|
||||
var apiVersion = 1;
|
||||
|
||||
describe('Connectivity', function(){
|
||||
it('can connect', function(done) {
|
||||
api.get('/api/')
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(200, done)
|
||||
});
|
||||
})
|
||||
|
||||
describe('API Versioning', function(){
|
||||
it('finds the version tag', function(done) {
|
||||
api.get('/api/')
|
||||
.expect(function(res){
|
||||
if (!res.body.currentVersion) throw new Error("No version set in API");
|
||||
return;
|
||||
})
|
||||
.expect(200, done)
|
||||
});
|
||||
})
|
||||
|
||||
describe('Permission', function(){
|
||||
it('errors with invalid APIKey', function(done) {
|
||||
api.get('/api/'+apiVersion+'/createPad?apikey=wrong_password&padID=test')
|
||||
.expect(401, done)
|
||||
});
|
||||
})
|
Loading…
Reference in New Issue