scc-integration-tests
Version:
Integration tests for SCC
56 lines (49 loc) • 1.96 kB
JavaScript
let assert = require('assert');
let InstanceManager = require('../instance-manager');
let config = require('../config');
let instances = new InstanceManager(config);
before(async function () {
await instances.destroyAllDockerInstances();
});
describe('Stable network, pub/sub sync', () => {
afterEach(async function () {
await instances.destroyAllDockerInstances();
await instances.destroyAllNodeInstances();
});
describe('Pub/sub channels sync', function () {
let instanceDetailsList = [];
let subscriberNodeInstance;
let publisherNodeInstance;
beforeEach(async function () {
instanceDetailsList = instances.generateSCCInstanceClusterDetailsList({
regularInstanceCount: 2,
brokerInstanceCount: 2,
stateInstanceStartPort: 7777,
regularInstanceStartPort: 8000,
brokerInstanceStartPort: 8888
});
await instances.launchSCCInstanceCluster(instanceDetailsList, 2000);
subscriberNodeInstance = await instances.launchSubscriberNodeInstance('subscriber', {
targetPort: 8000,
clientCount: 100,
uniqueChannelCount: 100,
channelsPerClient: 1
});
await instances.waitForTimeout(5000);
publisherNodeInstance = await instances.launchPublisherNodeInstance('publisher', {
targetPort: 8001,
clientCount: 10,
uniqueChannelCount: 100,
publishesPerClient: 10,
publishInterval: 100,
publishRandomness: 100
});
await instances.waitForTimeout(3000);
});
it('messages that are published on one SC instance should reach subscribers on a different SC instance in the cluster', function () {
assert.equal(publisherNodeInstance.failedToSendMessages.length, 0);
assert.equal(subscriberNodeInstance.receivedMessages.length, publisherNodeInstance.sentMessages.length);
assert.equal(subscriberNodeInstance.receivedMessages.length, 100);
});
});
});