Files
cloudron-box/src/test/addonconfigs-test.js
2021-08-19 22:08:31 -07:00

81 lines
2.8 KiB
JavaScript

/* global it:false */
/* global describe:false */
/* global before:false */
/* global after:false */
'use strict';
const addonConfigs = require('../addonconfigs.js'),
common = require('./common.js'),
expect = require('expect.js');
describe('Addon config', function () {
const { setup, cleanup, app } = common;
before(setup);
after(cleanup);
it('returns empty addon config array for invalid app', async function () {
const results = await addonConfigs.getByAppId('randomid');
expect(results).to.eql([ ]);
});
it('set succeeds', async function () {
await addonConfigs.set(app.id, 'addonid1', [ { name: 'ENV1', value: 'env' }, { name: 'ENV2', value: 'env2' } ]);
await addonConfigs.set(app.id, 'addonid2', [ { name: 'ENV3', value: 'env' } ]);
});
it('get succeeds', async function () {
const results = await addonConfigs.get(app.id, 'addonid1');
expect(results).to.eql([ { name: 'ENV1', value: 'env' }, { name: 'ENV2', value: 'env2' } ]);
});
it('getByAppId succeeds', async function () {
const results = await addonConfigs.getByAppId(app.id);
expect(results).to.eql([ { name: 'ENV1', value: 'env' }, { name: 'ENV2', value: 'env2' }, { name: 'ENV3', value: 'env' } ]);
});
it('getByName succeeds', async function () {
const value = await addonConfigs.getByName(app.id, 'addonid1', 'ENV2');
expect(value).to.be('env2');
});
it('getByName of unknown value succeeds', async function () {
const value = await addonConfigs.getByName(app.id, 'addonid1', 'ENVRANDOM');
expect(value).to.be(null);
});
it('getAppIdByValue succeeds', async function () {
const appId = await addonConfigs.getAppIdByValue('addonid1', 'ENV1', 'env');
expect(appId).to.be(app.id);
});
it('getAppIdByValue pattern succeeds', async function () {
const appId = await addonConfigs.getAppIdByValue('addonid1', '%ENV1', 'env');
expect(appId).to.be(app.id);
});
it('getAppIdByValue pattern of unknown succeeds', async function () {
const appId = await addonConfigs.getAppIdByValue('addonid1', '%ENV1', 'envx');
expect(appId).to.be(null);
});
it('unset succeeds', async function () {
await addonConfigs.unset(app.id, 'addonid1');
});
it('unsetAddonConfig did remove configs', async function () {
const results = await addonConfigs.getByAppId(app.id);
expect(results).to.eql([ { name: 'ENV3', value: 'env' }]);
});
it('unsetByAppId succeeds', async function () {
await addonConfigs.unsetByAppId(app.id);
});
it('unsetByAppId did remove configs', async function () {
const results = await addonConfigs.getByAppId(app.id);
expect(results).to.eql([ ]);
});
});