chore(portal-api): fix tests

This commit is contained in:
geek 2017-08-14 14:21:49 -05:00 committed by Judit Greskovits
parent 454c37a3d6
commit 9f53c1fa17
8 changed files with 71 additions and 29 deletions

View File

@ -673,7 +673,7 @@ class Data extends EventEmitter {
_calcCurrentScale ({ config, currentVersion }, cb) { _calcCurrentScale ({ config, currentVersion }, cb) {
return config.map(({ name }) => { return config.map(({ name }) => {
const currentScale = Find(ForceArray(currentVersion.scale), [ const currentScale = Find(ForceArray(currentVersion ? currentVersion.scale : []), [
'serviceName', 'serviceName',
name name
]); ]);
@ -699,6 +699,11 @@ class Data extends EventEmitter {
return fallback(); return fallback();
} }
if (!this._machines) {
this._server.log(['debug'], '-> watcher not yet defined');
return fallback();
}
const machines = ForceArray(this._machines.getContainers()) const machines = ForceArray(this._machines.getContainers())
.filter(({ tags = {} }) => { .filter(({ tags = {} }) => {
return tags[DEPLOYMENT_GROUP] === deploymentGroupName; return tags[DEPLOYMENT_GROUP] === deploymentGroupName;

View File

@ -10,7 +10,7 @@
"lint": "belly-button --fix", "lint": "belly-button --fix",
"lint-ci": "belly-button", "lint-ci": "belly-button",
"test": "lab -c", "test": "lab -c",
"test-docker": "docker-compose -f test-compose.yml up --abort-on-container-exit --build --force-recreate api", "test-docker": "docker-compose -f test-compose.yml down -v && docker-compose -f test-compose.yml up --abort-on-container-exit --build --force-recreate api",
"test-ci": "echo 0", "test-ci": "echo 0",
"start": "node server.js", "start": "node server.js",
"dev": "CORS=1 NAMESPACE=api node server.js", "dev": "CORS=1 NAMESPACE=api node server.js",

View File

@ -35,9 +35,8 @@ rethinkdb:
- CONSUL_AGENT=1 - CONSUL_AGENT=1
ports: ports:
- 8080:8080 - 8080:8080
expose: - 28015:28015
- 28015 - 29015:29015
- 29015
dns: dns:
- 127.0.0.1 - 127.0.0.1
api: api:
@ -51,5 +50,7 @@ api:
- ../../_env - ../../_env
environment: environment:
- CONSUL=consul - CONSUL=consul
expose:
- 9090
dns: dns:
- 127.0.0.1 - 127.0.0.1

View File

@ -23,5 +23,10 @@
name: 'docker-compose-api', name: 'docker-compose-api',
interval: 5 interval: 5
} }
] ],
telemetry: {
port: 9090,
tags: ['op'],
metrics: []
}
} }

View File

@ -3,14 +3,19 @@
const Fs = require('fs'); const Fs = require('fs');
const Path = require('path'); const Path = require('path');
const Code = require('code'); const Code = require('code');
const { describe, it, afterEach, expect } = exports.lab = require('lab').script(); const { describe, it, beforeEach, expect } = exports.lab = require('lab').script();
const Piloted = require('piloted');
const PortalData = require('../../lib/data'); const PortalData = require('../../lib/data');
const rethinkdb = Piloted.service('rethinkdb');
const internals = { const internals = {
options: { options: {
name: 'test', name: 'test',
db: { test: true }, db: {
test: true,
host: rethinkdb ? rethinkdb.address : 'rethinkdb'
},
server: { server: {
log: function () {} log: function () {}
} }
@ -19,9 +24,13 @@ const internals = {
}; };
afterEach((done) => { beforeEach((done) => {
const data = new PortalData({ name: 'test', db: { test: true } }); const data = new PortalData(internals.options);
data.connect(() => { data.connect((err) => {
if (err) {
console.error(err);
return;
}
data._db.r.dbDrop('test').run(data._db._connection, () => { data._db.r.dbDrop('test').run(data._db._connection, () => {
done(); done();
}); });
@ -98,7 +107,7 @@ describe('deployment groups', () => {
expect(createdDeploymentGroup.id).to.exist(); expect(createdDeploymentGroup.id).to.exist();
data.getDeploymentGroup({ id: createdDeploymentGroup.id }, (err, deploymentGroup) => { data.getDeploymentGroup({ id: createdDeploymentGroup.id }, (err, deploymentGroup) => {
expect(err).to.not.exist(); expect(err).to.not.exist();
expect(deploymentGroup).to.equal(createdDeploymentGroup); expect(deploymentGroup.name).to.equal(createdDeploymentGroup.name);
done(); done();
}); });
}); });
@ -239,7 +248,7 @@ describe('versions', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
@ -285,7 +294,7 @@ describe('versions', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
@ -339,7 +348,7 @@ describe('versions', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
@ -387,7 +396,7 @@ describe('versions', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
@ -440,7 +449,7 @@ describe('manifests', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, result) => { data.provisionManifest(clientManifest, (err, result) => {
@ -468,7 +477,7 @@ describe('manifests', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, result) => { data.provisionManifest(clientManifest, (err, result) => {
@ -492,7 +501,7 @@ describe('manifests', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
@ -551,7 +560,10 @@ describe('instances', () => {
expect(result.id).to.exist(); expect(result.id).to.exist();
data.getInstance({ id: result.id }, (err, instance) => { data.getInstance({ id: result.id }, (err, instance) => {
expect(err).to.not.exist(); expect(err).to.not.exist();
expect(instance).to.equal(result); expect(instance.id).to.equal(result.id);
expect(instance.name).to.equal(result.name);
expect(instance.status).to.equal(result.status);
expect(instance.machineId).to.equal(result.machineId);
done(); done();
}); });
}); });
@ -679,7 +691,7 @@ describe.skip('scale()', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, manifest) => { data.provisionManifest(clientManifest, (err, manifest) => {
@ -715,7 +727,7 @@ describe.skip('stopServices()', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, manifest) => { data.provisionManifest(clientManifest, (err, manifest) => {
@ -749,7 +761,7 @@ describe.skip('startServices()', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, manifest) => { data.provisionManifest(clientManifest, (err, manifest) => {
@ -783,7 +795,7 @@ describe.skip('restartServices()', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, manifest) => { data.provisionManifest(clientManifest, (err, manifest) => {
@ -817,7 +829,7 @@ describe.skip('deleteServices()', () => {
const clientManifest = { const clientManifest = {
deploymentGroupId: deploymentGroup.id, deploymentGroupId: deploymentGroup.id,
type: 'compose', type: 'compose',
format: 'yml', format: 'yaml',
raw: internals.composeFile raw: internals.composeFile
}; };
data.provisionManifest(clientManifest, (err, manifest) => { data.provisionManifest(clientManifest, (err, manifest) => {

View File

@ -7,7 +7,15 @@ const PortalApi = require('../');
const internals = { const internals = {
options: { data: { name: 'test', db: { test: true } } } options: {
data: {
name: 'test',
db: { test: true },
server: {
log: function () { }
}
}
}
}; };
internals.register = { register: PortalApi, options: internals.options }; internals.register = { register: PortalApi, options: internals.options };
@ -107,7 +115,7 @@ describe('graphql', () => {
}); });
beforeEach((done) => { beforeEach((done) => {
const data = new PortalData({ name: 'test', db: { test: true } }); const data = new PortalData(internals.options.data);
data.connect(() => { data.connect(() => {
data.createDatacenter({ region: 'us-sw', name: 'us-sw' }, (err, datacenter) => { data.createDatacenter({ region: 'us-sw', name: 'us-sw' }, (err, datacenter) => {
if (err) { if (err) {

View File

@ -19,3 +19,14 @@ echo -e "${SDC_KEY}" | tr '#' '\n' > ~/.ssh/id_rsa
chmod 400 ~/.ssh/id_rsa.pub chmod 400 ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa chmod 400 ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa ssh-add ~/.ssh/id_rsa
keyid=$(ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub | awk '{print $2}' | cut -d':' -f2-)
containerpilot -putenv "SSH_KEYID=$keyid"
IS_RETHINK_DOWN=1
until [ $IS_RETHINK_DOWN -eq 0 ]; do
curl -o /dev/null --fail -s -m 10 http://rethinkdb:8080
IS_RETHINK_DOWN=$(echo $?)
done

View File

@ -40,7 +40,7 @@ it('updates instances with the current status', (done) => {
} }
}; };
const portalOptions = { data, url: 'url', account: 'account', keyId: 'de:e7:73:9a:aa:91:bb:3e:72:8d:cc:62:ca:58:a2:ec' }; const portalOptions = { data, url: 'url', account: 'account', keyId: process.env.SSH_KEYID || 'de:e7:73:9a:aa:91:bb:3e:72:8d:cc:62:ca:58:a2:ec' };
const portalWatch = new PortalWatch(portalOptions); const portalWatch = new PortalWatch(portalOptions);
portalWatch._tritonWatch.removeAllListeners('change'); portalWatch._tritonWatch.removeAllListeners('change');
@ -79,7 +79,7 @@ it('creates new instance', (done) => {
} }
}; };
const portalOptions = { data, url: 'url', account: 'account', keyId: 'de:e7:73:9a:aa:91:bb:3e:72:8d:cc:62:ca:58:a2:ec' }; const portalOptions = { data, url: 'url', account: 'account', keyId: process.env.SSH_KEYID || 'de:e7:73:9a:aa:91:bb:3e:72:8d:cc:62:ca:58:a2:ec' };
const portalWatch = new PortalWatch(portalOptions); const portalWatch = new PortalWatch(portalOptions);
portalWatch._tritonWatch.removeAllListeners('change'); portalWatch._tritonWatch.removeAllListeners('change');