do-node-balancer
Version:
Node.js load balancer for digitalocean using tags
74 lines (66 loc) • 1.56 kB
JavaScript
const test = require('tape');
const fs = require('fs');
const Provider = require('../lib/digitalocean');
const joi = require('joi');
const res = JSON.parse(fs.readFileSync('./test/res.json'));
test('do-node-balancer tests', (t1) => {
t1.test('tests', (t2) => {
t2.test('get a server without update', (t) => {
const doRequest = {
getDropletsByTag: () => new Promise((resolve) => {
resolve(res.good_1_droplet);
}),
};
const provider = Provider({
joi,
doRequest,
doTags: ['dummy'],
opts: {
doUpdateTime: 0,
},
});
t.notOk(provider.getServer(['dummy']));
t.end();
});
t2.test('get a server with update', (t) => {
const doRequest = {
getDropletsByTag: () => new Promise((resolve) => {
resolve(res.good_1_droplet);
}),
};
const provider = Provider({
joi,
doRequest,
doTags: ['dummy'],
opts: {
doUpdateTime: 0,
},
});
provider.updateServers();
setTimeout(() => {
t.ok(provider.getServer(['dummy']), 'Got a server');
t.end();
}, 0);
});
t2.test('get a server after update with no droplets', (t) => {
const doRequest = {
getDropletsByTag: () => new Promise((resolve) => {
resolve(res.bad_0_droplets);
}),
};
const provider = Provider({
joi,
doRequest,
doTags: ['dummy'],
opts: {
doUpdateTime: 0,
},
});
provider.updateServers();
setTimeout(() => {
t.equal(Object.keys(provider.getServerList()).length, 0, 'Empty Server List');
t.end();
}, 0);
});
});
});