Files
cloudron-box/src/test/apptask-test.js
T

88 lines
2.7 KiB
JavaScript
Raw Normal View History

/* global it:false */
/* global describe:false */
/* global before:false */
/* global after:false */
'use strict';
2021-06-03 12:20:44 -07:00
const apptask = require('../apptask.js'),
common = require('./common.js'),
expect = require('expect.js'),
fs = require('fs'),
paths = require('../paths.js'),
_ = require('underscore');
2021-06-03 12:20:44 -07:00
const { APP } = common;
describe('apptask', function () {
2021-06-03 12:20:44 -07:00
before(common.setup);
after(common.cleanup);
it('create volume', function (done) {
apptask._createAppDir(APP, function (error) {
expect(fs.existsSync(paths.APPS_DATA_DIR + '/' + APP.id)).to.be(true);
expect(fs.existsSync(paths.APPS_DATA_DIR + '/' + APP.id + '/data')).to.be(false);
expect(error).to.be(null);
done();
});
});
2017-09-07 15:43:57 -07:00
it('delete volume - removeDirectory (false) ', function (done) {
apptask._deleteAppDir(APP, { removeDirectory: false }, function (error) {
2017-09-07 15:43:57 -07:00
expect(fs.existsSync(paths.APPS_DATA_DIR + '/' + APP.id)).to.be(true);
expect(fs.readdirSync(paths.APPS_DATA_DIR + '/' + APP.id).length).to.be(0); // empty
expect(error).to.be(null);
done();
});
});
it('delete volume - removeDirectory (true) ', function (done) {
apptask._deleteAppDir(APP, { removeDirectory: true }, function (error) {
2017-09-07 15:43:57 -07:00
expect(!fs.existsSync(paths.APPS_DATA_DIR + '/' + APP.id)).to.be(true);
expect(error).to.be(null);
done();
});
});
it('barfs on empty manifest', function (done) {
var badApp = _.extend({ }, APP);
badApp.manifest = { };
apptask._verifyManifest(badApp.manifest, function (error) {
expect(error).to.be.ok();
done();
});
});
2019-11-19 17:36:05 -08:00
it('fails on bad manifest', function (done) {
var badApp = _.extend({ }, APP);
badApp.manifest = _.extend({ }, APP.manifest);
2019-11-19 17:36:05 -08:00
delete badApp.manifest.httpPort;
apptask._verifyManifest(badApp.manifest, function (error) {
expect(error).to.be.ok();
done();
});
});
it('barfs on incompatible manifest', function (done) {
var badApp = _.extend({ }, APP);
badApp.manifest = _.extend({ }, APP.manifest);
badApp.manifest.maxBoxVersion = '0.0.0'; // max box version is too small
apptask._verifyManifest(badApp.manifest, function (error) {
expect(error).to.be.ok();
done();
});
});
it('verifies manifest', function (done) {
var goodApp = _.extend({ }, APP);
apptask._verifyManifest(goodApp.manifest, function (error) {
expect(error).to.be(null);
done();
});
});
});