UNPKG

dockerode-compose

Version:

docker-compose in nodejs using dockerode

173 lines (160 loc) 5.71 kB
const expect = require('chai').expect, assert = require('assert'); var compose = require('./spec_helper').compose; var compose_complex = require('./spec_helper').compose_complex; var compose_build = require('./spec_helper').compose_build; var docker = require('./spec_helper').docker; describe('compose', function () { describe('#pull', function () { it("should pull all needed images with verbose", function (done) { this.timeout(600000); (async () => { await compose.pull(null, { 'verbose': true }); done(); })(); }); it("should pull all needed images silently", function (done) { this.timeout(600000); (async () => { await compose.pull(); done(); })(); }); it("should pull all needed images returning streams", function (done) { this.timeout(600000); (async () => { var streams = await compose.pull(null, { 'streams': true }); expect(streams).to.be.ok; done(); })(); }); }); describe('#up', function () { it("should do compose up", function (done) { this.timeout(60000); (async () => { var report = await compose.up(); expect(report.services).to.be.ok; done(); })(); }); afterEach('clean up', function (done) { this.timeout(60000); (async () => { await compose.down({ volumes: true }); done(); })(); }); }); describe('#down', function () { beforeEach('bring up', function (done) { this.timeout(20000); (async () => { await compose.up(); done(); })(); }); it("should do compose down", function (done) { this.timeout(60000); (async () => { await compose.down({volumes: true}); let listContainers = await docker.listContainers({ 'all': true, 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}); expect(listContainers).to.be.empty let listVolumes = await docker.listVolumes({ 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}) expect(listVolumes.Volumes).to.be.empty expect(listVolumes.Warnings).to.be.null let listNetworks = await docker.listNetworks({ 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}) expect(listNetworks).to.be.empty done(); })(); }); }); describe('#up_complex', function () { it("should do compose up complex example with extends and build", function (done) { this.timeout(300000); (async () => { var report = await compose_complex.up(); expect(report.services).to.be.ok; done(); })(); }); afterEach('clean up', function (done) { this.timeout(60000); (async () => { await compose_complex.down({ volumes: true }); done(); })(); }); }); describe('#down_complex', function () { beforeEach('bring up', function (done) { this.timeout(300000); (async () => { await compose_complex.up(); done(); })(); }); it("should do compose down complex example with extends and build", function (done) { this.timeout(60000); (async () => { await compose_complex.down({volumes: true}); let listContainers = await docker.listContainers({ 'all': true, 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}); expect(listContainers).to.be.empty let listVolumes = await docker.listVolumes({ 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}) expect(listVolumes.Volumes).to.be.empty expect(listVolumes.Warnings).to.be.null let listNetworks = await docker.listNetworks({ 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}) expect(listNetworks).to.be.empty done(); })(); }); }); describe('#up_build', function () { it("should do compose up example with build", function (done) { this.timeout(300000); (async () => { var report = await compose_build.up(); expect(report.services).to.be.ok; done(); })(); }); it("should do compose up example with build(verbose)", function (done) { this.timeout(300000); (async () => { var report = await compose_build.up({ 'verbose': true }); expect(report.services).to.be.ok; done(); })(); }); afterEach('clean up', function (done) { this.timeout(60000); (async () => { await compose_build.down({ volumes: true }); done(); })(); }); }); describe('#down_build', function () { beforeEach('bring up', function (done) { this.timeout(300000); (async () => { await compose_build.up(); done(); })(); }); it("should do compose down example with build", function (done) { this.timeout(60000); (async () => { await compose_build.down({volumes: true}); let listContainers = await docker.listContainers({ 'all': true, 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}); expect(listContainers).to.be.empty let listVolumes = await docker.listVolumes({ 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}) expect(listVolumes.Volumes).to.be.empty expect(listVolumes.Warnings).to.be.null let listNetworks = await docker.listNetworks({ 'filters': {"label":[`com.docker.compose.project=${compose.projectName}`]}}) expect(listNetworks).to.be.empty done(); })(); }); }); });