From 7bd024f2c78839e5574b67ecfaa27f830b0c8118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=27rysiek=27=20Wo=C5=BAniak?= Date: Mon, 6 Sep 2021 00:11:33 +0000 Subject: [PATCH] service-worker: test for external urls added (ref. #8) --- __tests__/service-worker.test.js | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/__tests__/service-worker.test.js b/__tests__/service-worker.test.js index f54ff44..d95fe70 100644 --- a/__tests__/service-worker.test.js +++ b/__tests__/service-worker.test.js @@ -109,6 +109,44 @@ describe("service-worker", () => { expect(response.headers.get('X-LibResilient-ETag')).toEqual('TestingETagHeader') }); + test("making an external request should work and not go through the plugins", async () => { + global.fetch.mockImplementation((request, init) => { + return Promise.resolve( + new Response( + new Blob( + [JSON.stringify({ test: "success" })], + {type: "application/json"} + ), + { + status: 200, + statusText: "OK", + headers: { + 'ETag': 'TestingETagHeader' + }, + method: 'GET', + url: request.url + }) + ); + }); + self.LibResilientConfig = { + plugins: { + 'reject-all': {} + }, + loggedComponents: [ + 'service-worker' + ] + } + self.LibResilientPlugins.push({ + name: 'reject-all', + description: 'Reject all requests.', + version: '0.0.1', + fetch: (request, init)=>{ return Promise.reject(request); } + }) + require("../service-worker.js"); + var response = await self.trigger('fetch', new Request('https://example.com/test.json')) + expect(await response.json()).toEqual({ test: "success" }) + }) + test("making a POST request should work and not go through the plugins", async () => { global.fetch.mockImplementation((request, init) => { return Promise.resolve(