diff --git a/packages/insomnia-app/app/templating/__tests__/utils.test.ts b/packages/insomnia-app/app/templating/__tests__/utils.test.ts index 5b763d56cb..628452e08c 100644 --- a/packages/insomnia-app/app/templating/__tests__/utils.test.ts +++ b/packages/insomnia-app/app/templating/__tests__/utils.test.ts @@ -300,9 +300,8 @@ describe('encodeEncoding()', () => { it('encodes things', () => { expect(utils.encodeEncoding('hello', 'base64')).toBe('b64::aGVsbG8=::46b'); expect(utils.encodeEncoding(null, 'base64')).toBe(null); - expect(utils.encodeEncoding('hello', 'unknown')).toBe('hello'); expect(utils.encodeEncoding('hello')).toBe('hello'); - expect(utils.encodeEncoding('hello', 'utf8')).toBe('hello'); + expect(utils.encodeEncoding('', 'base64')).toBe(''); }); }); @@ -314,5 +313,6 @@ describe('decodeEncoding()', () => { expect(utils.decodeEncoding('aGVsbG8=')).toBe('aGVsbG8='); expect(utils.decodeEncoding('hello')).toBe('hello'); expect(utils.decodeEncoding(null)).toBe(null); + expect(utils.decodeEncoding('')).toBe(''); }); }); diff --git a/packages/insomnia-app/app/templating/utils.ts b/packages/insomnia-app/app/templating/utils.ts index ef532bb7d9..2f6a2bab6a 100644 --- a/packages/insomnia-app/app/templating/utils.ts +++ b/packages/insomnia-app/app/templating/utils.ts @@ -246,11 +246,15 @@ export function getDefaultFill(name: string, args: NunjucksParsedTagArg[]) { return `${name} ${stringArgs.join(', ')}`; } -export function encodeEncoding(value: string, encoding: 'base64') { +export function encodeEncoding(value: T, encoding?: 'base64') { if (typeof value !== 'string') { return value; } + if (value.length === 0) { + return value; + } + if (encoding === 'base64') { const encodedValue = Buffer.from(value, 'utf8').toString('base64'); return `b64::${encodedValue}::46b`; @@ -259,7 +263,7 @@ export function encodeEncoding(value: string, encoding: 'base64') { return value; } -export function decodeEncoding(value: string) { +export function decodeEncoding(value: T) { if (typeof value !== 'string') { return value; }