57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
const assert = require('assert');
|
|
const CamoConfig = require('../../lib/configuration/camoconfig').CamoConfig;
|
|
|
|
describe('CamoConfig', () => {
|
|
describe('#constructor', () => {
|
|
it('strips trailing slashes from the server', () => {
|
|
const config = new CamoConfig({
|
|
camo: {
|
|
server: 'http://abc.xyz/'
|
|
}
|
|
});
|
|
assert.strictEqual(config.getServer(), 'http://abc.xyz');
|
|
});
|
|
|
|
it('defaults to enabled=false', () => {
|
|
assert.strictEqual(new CamoConfig().isEnabled(), false);
|
|
});
|
|
|
|
it('validates that encoding must be either url or hex', () => {
|
|
|
|
assert.throws(() => {
|
|
new CamoConfig({
|
|
camo: {
|
|
encoding: 'asdjfnasdf'
|
|
}
|
|
});
|
|
}, /must be either 'url' or 'hex'/);
|
|
});
|
|
});
|
|
|
|
describe('#getWhitelistedDomains', () => {
|
|
it('defaults to an empty array', () => {
|
|
assert.deepStrictEqual(new CamoConfig().getWhitelistedDomains(), []);
|
|
});
|
|
});
|
|
|
|
describe('#getEncoding', () => {
|
|
it('defaults to url', () => {
|
|
assert.deepStrictEqual(new CamoConfig().getEncoding(), 'url');
|
|
});
|
|
});
|
|
|
|
describe('#getWhitelistedDomainsRegexp', () => {
|
|
it('generates a regex based on the whitelisted domains', () => {
|
|
const config = new CamoConfig({
|
|
camo: {
|
|
server: 'localhost:8081',
|
|
'whitelisted-domains': ['abc.xyz', 'tii.kzz.qqq']
|
|
}
|
|
});
|
|
|
|
const re = config.getWhitelistedDomainsRegexp();
|
|
assert.deepStrictEqual(re, /\.abc\.xyz$|\.tii\.kzz\.qqq$/i);
|
|
});
|
|
});
|
|
});
|