UNPKG

firmament-docker

Version:

Typescript classes for performing Docker operations

170 lines 9.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("reflect-metadata"); const inversify_config_1 = require("../inversify.config"); const chai_1 = require("chai"); const docker_ode_mock_impl_1 = require("./docker-ode-mock-impl"); const docker_descriptors_1 = require("../interfaces/docker-descriptors"); describe('DockerContainerManagement', function () { let dockerContainerManagement; beforeEach(() => { inversify_config_1.default.unbind('DockerOde'); inversify_config_1.default.bind('DockerOde').to(docker_ode_mock_impl_1.DockerOdeMockImpl); dockerContainerManagement = inversify_config_1.default.get('DockerContainerManagement'); }); describe('DockerContainerManagement.listContainers (force error)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.forceError = true; dockerContainerManagement.listContainers(true, (err, containers) => { chai_1.expect(err).to.not.equal(null); chai_1.expect(containers).to.equal(null); done(); }); }); }); describe('DockerContainerManagement.listContainers (all)', function () { it('should return array of all (3) Containers in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.listContainers(true, (err, containers) => { chai_1.expect(err).to.equal(null); chai_1.expect(containers).to.have.lengthOf(3); done(); }); }); }); describe('DockerContainerManagement.listContainers (not-all)', function () { it('should return array of all (1) Containers in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.listContainers(false, (err, containers) => { chai_1.expect(err).to.equal(null); chai_1.expect(containers).to.have.lengthOf(1); done(); }); }); }); describe('DockerContainerManagement.getContainer (force error)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.forceError = true; dockerContainerManagement.getContainer('2', (err, container) => { chai_1.expect(err).to.not.equal(null); chai_1.expect(container).to.equal(null); done(); }); }); }); describe('DockerContainerManagement.getContainer (by firmamentId)', function () { it(`should return DockerContainer with name: 'jstnldrs/caffedata:1.0'`, function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.getContainer('2', (err, container) => { chai_1.expect(err).to.equal(null); chai_1.expect(container.constructor.name).to.equal('DockerContainerImpl'); chai_1.expect(container.Name).to.equal('/mysql'); done(); }); }); }); describe('DockerContainerManagement.getContainers (force error)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.forceError = true; dockerContainerManagement.getContainers(['2', '3'], (err, containers) => { chai_1.expect(err).to.not.equal(null); chai_1.expect(containers).to.equal(null); done(); }); }); }); describe('DockerContainerManagement.getContainers (by firmamentId)', function () { let containerNames = ['/mysql', '/ubuntu']; it(`should return array of DockerContainers (length 2)`, function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.getContainers(['2', '3'], (err, containers) => { chai_1.expect(err).to.equal(null); chai_1.expect(containers).to.have.lengthOf(2); for (let i = 0; i < containers.length; ++i) { chai_1.expect(containers[i].constructor.name).to.equal('DockerContainerImpl'); chai_1.expect(containers[i].Name).to.equal(containerNames[i]); } done(); }); }); }); describe('DockerContainerManagement.createContainer (force error)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.forceError = true; dockerContainerManagement.createContainer(docker_descriptors_1.DockerDescriptors.dockerContainerConfigTemplate[0], (err, container) => { chai_1.expect(err).to.not.equal(null); chai_1.expect(container).to.equal(null); done(); }); }); }); describe('DockerContainerManagement.createContainer', function () { it('should return DockerContainer description in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.createContainer(docker_descriptors_1.DockerDescriptors.dockerContainerConfigTemplate[0], (err, container) => { chai_1.expect(err).to.equal(null); chai_1.expect(container).to.not.equal(null); done(); }); }); }); describe('DockerContainerManagement.removeContainers (force error)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.forceError = true; dockerContainerManagement.removeContainers(['2', '3', '113'], (err, containerRemoveResult) => { chai_1.expect(err).to.not.equal(null); done(); }); }); }); describe('DockerContainerManagement.removeContainers (by firmamentId)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.removeContainers(['2', '3', '113'], (err, containerRemoveResults) => { chai_1.expect(err).to.equal(null); chai_1.expect(containerRemoveResults).to.be.instanceOf(Array); chai_1.expect(containerRemoveResults).to.have.lengthOf(3); for (let i = 0; i < containerRemoveResults.length - 1; ++i) { chai_1.expect(containerRemoveResults[i].msg.substring(0, 8)).to.equal('Removing'); } chai_1.expect(containerRemoveResults[containerRemoveResults.length - 1].msg.substring(0, 6)).to.equal('Unable'); done(); }); }); }); describe('DockerContainerManagement.removeContainers (by Docker Id)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.removeContainers(['228', '75b', 'xxx'], (err, containerRemoveResults) => { chai_1.expect(err).to.equal(null); chai_1.expect(containerRemoveResults).to.be.instanceOf(Array); chai_1.expect(containerRemoveResults).to.have.lengthOf(3); for (let i = 0; i < containerRemoveResults.length - 1; ++i) { chai_1.expect(containerRemoveResults[i].msg.substring(0, 8)).to.equal('Removing'); } chai_1.expect(containerRemoveResults[containerRemoveResults.length - 1].msg.substring(0, 6)).to.equal('Unable'); done(); }); }); }); describe('DockerContainerManagement.removeContainers (all)', function () { it('should return non-null Error instance in callback', function (done) { chai_1.expect(dockerContainerManagement).to.not.equal(null); dockerContainerManagement.removeContainers(['???', 'all', 'xxx'], (err, containerRemoveResults) => { chai_1.expect(err).to.equal(null); chai_1.expect(containerRemoveResults).to.be.instanceOf(Array); chai_1.expect(containerRemoveResults).to.have.lengthOf(3); for (let i = 0; i < containerRemoveResults.length; ++i) { chai_1.expect(containerRemoveResults[i].msg.substring(0, 8)).to.equal('Removing'); } done(); }); }); }); }); //# sourceMappingURL=docker-container-management.test.js.map