insomnia/plugins/insomnia-plugin-base64/__tests__/index.test.js

38 lines
1.3 KiB
JavaScript

const tag = require('..').templateTags[0];
function assertTemplate(args, expected) {
return async function() {
const result = await tag.run(null, ...args);
expect(result).toBe(expected);
};
}
function assertTemplateFails(args, expected) {
return async function() {
try {
await tag.run(null, ...args);
fail(`Render should have thrown ${expected}`);
} catch (err) {
expect(err.message).toContain(expected);
}
};
}
describe('Base64EncodeExtension', () => {
it('encodes nothing', assertTemplate(['encode', 'normal', ''], ''));
it('encodes something', assertTemplate(['encode', 'normal', 'my string'], 'bXkgc3RyaW5n'));
it('urlencodes nothing', assertTemplate(['encode', 'url', ''], ''));
it('urlencodes something', assertTemplate(['encode', 'url', 'hello world'], 'aGVsbG8gd29ybGQ'));
it('decodes nothing', assertTemplate(['decode', 'normal', ''], ''));
it('decodes something', assertTemplate(['decode', 'normal', 'bXkgc3RyaW5n'], 'my string'));
it('urldecodes nothing', assertTemplate(['decode', 'url', ''], ''));
it('urldecodes something', assertTemplate(['decode', 'url', 'aGVsbG8gd29ybGQ'], 'hello world'));
it(
'fails on invalid action',
assertTemplateFails(
['foo', 'normal', ''],
'Unsupported operation "foo". Must be encode or decode.',
),
);
});