149 lines
2.9 KiB
JavaScript
149 lines
2.9 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
const Lab = require('lab');
|
||
|
const Uuid = require('uuid/v4');
|
||
|
|
||
|
const ContainerPilotWatch = require('../../lib/watch/container-pilot');
|
||
|
const DataMock = require('../_mocks/data');
|
||
|
const TritonMock = require('../_mocks/triton');
|
||
|
|
||
|
|
||
|
const lab = exports.lab = Lab.script();
|
||
|
const it = lab.it;
|
||
|
const expect = Lab.expect;
|
||
|
|
||
|
|
||
|
it('sets instance health statuses appropriately', (done) => {
|
||
|
const networks = [{
|
||
|
id: Uuid(),
|
||
|
'public': false,
|
||
|
subnet: '192.168.1.0/24'
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
'public': true
|
||
|
}];
|
||
|
|
||
|
const machines = [{
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.1', '72.2.119.1'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.2', '72.2.119.2'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.3', '72.2.119.3'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.4', '72.2.119.4'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.5', '72.2.119.5'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.6', '72.2.119.6'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
ips: ['192.168.1.7', '72.2.119.7'],
|
||
|
networks: networks.map(({ id }) => {
|
||
|
return id;
|
||
|
})
|
||
|
}];
|
||
|
|
||
|
const deploymentGroups = [{
|
||
|
id: Uuid()
|
||
|
}, {
|
||
|
id: Uuid()
|
||
|
}];
|
||
|
|
||
|
const services = [{
|
||
|
name: 'mysql',
|
||
|
id: Uuid(),
|
||
|
deploymentGroupId: deploymentGroups[0].id
|
||
|
}, {
|
||
|
name: 'api',
|
||
|
id: Uuid(),
|
||
|
deploymentGroupId: deploymentGroups[0].id
|
||
|
}, {
|
||
|
name: 'frontend',
|
||
|
id: Uuid(),
|
||
|
deploymentGroupId: deploymentGroups[0].id
|
||
|
}, {
|
||
|
name: 'redis',
|
||
|
id: Uuid(),
|
||
|
deploymentGroupId: deploymentGroups[1].id
|
||
|
}, {
|
||
|
name: 'auth',
|
||
|
id: Uuid(),
|
||
|
deploymentGroupId: deploymentGroups[1].id
|
||
|
}];
|
||
|
|
||
|
const instances = [{
|
||
|
id: Uuid(),
|
||
|
serviceId: services[0].id,
|
||
|
machineId: machines[0].id
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
serviceId: services[0].id,
|
||
|
machineId: machines[1].id
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
serviceId: services[0].id,
|
||
|
machineId: machines[2].id
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
serviceId: services[1].id,
|
||
|
machineId: machines[3].id
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
serviceId: services[2].id,
|
||
|
machineId: machines[4].id
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
serviceId: services[3].id,
|
||
|
machineId: machines[5].id
|
||
|
}, {
|
||
|
id: Uuid(),
|
||
|
serviceId: services[4].id,
|
||
|
machineId: machines[6].id
|
||
|
}];
|
||
|
|
||
|
const watch = new ContainerPilotWatch({
|
||
|
data: DataMock({
|
||
|
deploymentGroups,
|
||
|
services,
|
||
|
instances
|
||
|
}),
|
||
|
Triton: TritonMock({
|
||
|
machines,
|
||
|
networks
|
||
|
})
|
||
|
});
|
||
|
|
||
|
watch.on('error', (err) => {
|
||
|
done(err);
|
||
|
});
|
||
|
|
||
|
watch.check((err, data) => {
|
||
|
console.log(err, data);
|
||
|
done(err);
|
||
|
});
|
||
|
});
|