docker/test/test.ts

56 lines
1.6 KiB
TypeScript
Raw Normal View History

2018-07-16 21:52:50 +00:00
import { expect, tap } from '@pushrocks/tapbundle';
2019-08-15 16:50:13 +00:00
import * as docker from '../ts/index';
2017-04-02 10:05:29 +00:00
2019-08-15 16:50:13 +00:00
let testDockerHost: docker.DockerHost;
2017-04-02 10:05:29 +00:00
2018-07-16 21:52:50 +00:00
tap.test('should create a new Dockersock instance', async () => {
2019-08-15 16:50:13 +00:00
testDockerHost = new docker.DockerHost();
return expect(testDockerHost).to.be.instanceof(docker.DockerHost);
2018-07-16 21:52:50 +00:00
});
2017-04-02 10:05:29 +00:00
2019-08-15 16:50:13 +00:00
// Containers
2018-07-16 21:52:50 +00:00
tap.test('should list containers', async () => {
const containers = await testDockerHost.getContainers();
console.log(containers);
});
2017-04-02 10:05:29 +00:00
2019-08-15 16:50:13 +00:00
// Networks
tap.test('should list networks', async () => {
const networks = await testDockerHost.getNetworks();
console.log(networks);
2018-07-16 21:52:50 +00:00
});
2017-04-02 10:05:29 +00:00
2019-08-15 16:50:13 +00:00
tap.test('should create a network', async () => {
const newNetwork = await docker.DockerNetwork.createNetwork(testDockerHost, {
Name: 'webgateway'
});
expect(newNetwork).to.be.instanceOf(docker.DockerNetwork);
expect(newNetwork.Name).to.equal('webgateway');
});
tap.test('should remove a network', async () => {
const webgateway = await docker.DockerNetwork.getNetworkByName(testDockerHost, 'webgateway');
await webgateway.remove();
});
// Images
tap.test('should pull an image from imagetag', async () => {
const image = await docker.DockerImage.createFromRegistry(testDockerHost, {
imageUrl: 'hosttoday/ht-docker-node',
tag: 'alpine'
});
expect(image).to.be.instanceOf(docker.DockerImage);
console.log(image);
});
tap.test('should return a change Observable', async tools => {
2019-01-09 23:24:35 +00:00
const testObservable = await testDockerHost.getEventObservable();
const subscription = testObservable.subscribe(changeObject => {
console.log(changeObject);
});
await tools.delayFor(2000);
subscription.unsubscribe();
});
2017-04-02 10:05:29 +00:00
2018-07-16 21:52:50 +00:00
tap.start();