X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=test%2Flib%2Fcommon.js;h=ff250a4c43098e0be305ab523d2d396eb6defc8b;hb=6c3dbdc13dc125d4faa30d5138a8ada7d14e0ed1;hp=05a0cfcb11b02668bf813486ec7deaa0c87a1cdf;hpb=1c4bb7e3bbdc1121ceba373c5be4459521197155;p=squeep-indieauth-helper diff --git a/test/lib/common.js b/test/lib/common.js index 05a0cfc..ff250a4 100644 --- a/test/lib/common.js +++ b/test/lib/common.js @@ -9,12 +9,12 @@ describe('common', function () { it('names a file path', function () { const filename = 'lib/foo/bar.js'; const result = common.fileScope(filename)('baz'); - assert.strictEqual(result, 'bar:baz'); + assert(result.endsWith(':bar:baz')); }); it('names an index path', function () { const filename = 'lib/foo/index.js'; const result = common.fileScope(filename)('baz'); - assert.strictEqual(result, 'foo:baz'); + assert(result.endsWith(':foo:baz')); }); }); // fileScope @@ -46,46 +46,152 @@ describe('common', function () { }); }); // logTruncate - describe('axiosResponseLogData', function () { + describe('gotResponseLogData', function () { it('covers', function () { const response = { - status: 200, - statusText: 'OK', + statusCode: 200, + statusMessage: 'OK', headers: { 'Content-Type': 'text/plain', }, otherData: 'blah', - data: 'Old Mother West Wind had stopped to talk with the Slender Fir Tree. "I\'ve just come across the Green Meadows," said Old Mother West Wind, “and there I saw the Best Thing in the World.”', + timings: { + phases: { + total: 89, + }, + }, + retryCount: 0, + redirectUrls: [], + body: 'Old Mother West Wind had stopped to talk with the Slender Fir Tree. "I\'ve just come across the Green Meadows," said Old Mother West Wind, “and there I saw the Best Thing in the World.”', + }; + const expected = { + statusCode: 200, + statusMessage: 'OK', + elapsedTimeMs: 89, + headers: { + 'Content-Type': 'text/plain', + }, + body: 'Old Mother West Wind had stopped to talk with the Slender Fir Tree. "I\'ve just come across the Green... (184 bytes)', + }; + const result = common.gotResponseLogData(response); + assert.deepStrictEqual(result, expected); + }); + it('covers no body', function () { + const response = { + statusCode: 200, + statusMessage: 'OK', + headers: { + 'Content-Type': 'text/plain', + }, + timings: { + phases: { + total: 89, + }, + }, + retryCount: 1, }; const expected = { - status: 200, - statusText: 'OK', + statusCode: 200, + statusMessage: 'OK', headers: { 'Content-Type': 'text/plain', }, - data: 'Old Mother West Wind had stopped to talk with the Slender Fir Tree. "I\'ve just come across the Green... (184 bytes)', + elapsedTimeMs: 89, + retryCount: 1, + }; + const result = common.gotResponseLogData(response); + assert.deepStrictEqual(result, expected); + }); + it('covers json', function () { + const response = { + statusCode: 200, + statusMessage: 'OK', + headers: { + 'Content-Type': 'application/json', + }, + timings: { + phases: { + total: 89, + }, + }, + body: { + foo: 'bar', + }, + redirectUrls: ['https://redirect.example.com/'], + }; + const expected = { + statusCode: 200, + statusMessage: 'OK', + headers: { + 'Content-Type': 'application/json', + }, + elapsedTimeMs: 89, + body: { + foo: 'bar', + }, + redirectUrls: ['https://redirect.example.com/'], }; - const result = common.axiosResponseLogData(response); + const result = common.gotResponseLogData(response); assert.deepStrictEqual(result, expected); }); - it('covers no data', function () { + it('covers buffer', function () { const response = { - status: 200, - statusText: 'OK', + statusCode: 200, + statusMessage: 'OK', headers: { 'Content-Type': 'text/plain', }, + timings: { + phases: { + total: 89, + }, + }, + body: Buffer.from('ᘛ⁐̤ᕐᐷ'), }; const expected = { - status: 200, - statusText: 'OK', + statusCode: 200, + statusMessage: 'OK', headers: { 'Content-Type': 'text/plain', }, + elapsedTimeMs: 89, + body: '', }; - const result = common.axiosResponseLogData(response); + const result = common.gotResponseLogData(response); assert.deepStrictEqual(result, expected); }); - }); // axiosResponseLogData + }); // gotResponseLogData + + describe('setSymmetricDifference', function () { + it('covers difference', function () { + const setA = new Set([1, 2, 3]); + const setB = new Set([2, 3, 4]); + const expected = new Set([1, 4]); + const result = common.setSymmetricDifference(setA, setB); + assert(result.size); + assert.deepStrictEqual(result, expected); + }); + it('covers no difference', function () { + const setA = new Set([1, 2, 3, 4]); + const setB = new Set([1, 2, 3, 4]); + const expected = new Set(); + const result = common.setSymmetricDifference(setA, setB); + assert(!result.size); + assert.deepStrictEqual(result, expected); + }); + }); // setSymmetricDifference + + describe('properURLComponentName', function () { + it('maps proper names', function () { + [ + ['hash', 'fragment'], + ['protocol', 'scheme'], + ['host', 'host'], + ].forEach(([name, expected]) => { + const result = common.properURLComponentName(name); + assert.strictEqual(result, expected); + }); + }); + }); // properURLComponentName }); // common \ No newline at end of file