docs/tests/Boot2Docker-integration.js

58 lines
1.5 KiB
JavaScript

var boot2docker = require('../build/Boot2Docker');
var path = require('path');
var fs = require('fs');
var packagejson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8'));
describe('Boot2Docker', () => {
it('cli version is correct', done => {
boot2docker.cliversion().then(version => {
expect(version).toBe(packagejson['boot2docker-version']);
done();
});
});
describe('with an existing & running boot2docker vm', () => {
beforeAll(done => {
boot2docker.init().then(boot2docker.start).then(() => {
done();
});
});
it('creates a vm', done => {
boot2docker.exists().then(exists => {
expect(exists).toBe(true);
done();
});
});
it('detects the correct state of running vm', done => {
boot2docker.status().then(status => {
expect(status).toBe('running');
done();
});
});
it('detects ssh keys', () => {
expect(boot2docker.haskeys()).toBe(true);
});
it('receives an ip address from the vm', done => {
boot2docker.ip().then(ip => {
expect(ip).toMatch(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/);
done();
});
});
it('reads a version from the boot2docker iso file', done => {
boot2docker.isoversion().then(version => {
expect(version).toMatch(/\d+\.\d+\.\d+/);
done();
});
});
afterAll(done => {
boot2docker.destroy().finally(done);
});
});
});