kopia lustrzana https://gitlab.com/rysiekpl/libresilient
tests fixed for all changes related to caching the config.json (ref. #31)
rodzic
3025278899
commit
99810d3a79
|
@ -108,6 +108,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
} catch(e) {}
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(typeof self.LibResilientConfig).toEqual('object')
|
||||
expect(self.LibResilientConfig.defaultPluginTimeout).toBe(10000)
|
||||
|
@ -140,6 +143,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
} catch(e) {}
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(typeof self.LibResilientConfig).toEqual('object')
|
||||
expect(self.LibResilientConfig.defaultPluginTimeout).toBe(10000)
|
||||
|
@ -172,6 +178,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
} catch(e) {}
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(typeof self.LibResilientConfig).toEqual('object')
|
||||
expect(self.LibResilientConfig.defaultPluginTimeout).toBe(10000)
|
||||
|
@ -204,6 +213,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
} catch(e) {}
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(typeof self.LibResilientConfig).toEqual('object')
|
||||
expect(self.LibResilientConfig.defaultPluginTimeout).toBe(10000)
|
||||
|
@ -236,6 +248,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
} catch(e) {}
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(typeof self.LibResilientConfig).toEqual('object')
|
||||
expect(self.LibResilientConfig.defaultPluginTimeout).toBe(10000)
|
||||
|
@ -246,28 +261,31 @@ describe("service-worker", () => {
|
|||
test("basic set-up: use config values from a valid config.json file", async () => {
|
||||
self.LibResilientConfig = null
|
||||
|
||||
global.fetch.mockImplementation((url, init) => {
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
new Blob(
|
||||
[JSON.stringify({loggedComponents: ['service-worker', 'cache'], plugins: [{name: "cache"}], defaultPluginTimeout: 5000})],
|
||||
{type: "application/json"}
|
||||
),
|
||||
{
|
||||
status: 200,
|
||||
statusText: "OK",
|
||||
headers: {
|
||||
'ETag': 'TestingETagHeader'
|
||||
},
|
||||
url: url
|
||||
})
|
||||
);
|
||||
});
|
||||
global.fetch.mockImplementation((url, init) => {
|
||||
return Promise.resolve(
|
||||
new Response(
|
||||
new Blob(
|
||||
[JSON.stringify({loggedComponents: ['service-worker', 'cache'], plugins: [{name: "cache"}], defaultPluginTimeout: 5000})],
|
||||
{type: "application/json"}
|
||||
),
|
||||
{
|
||||
status: 200,
|
||||
statusText: "OK",
|
||||
headers: {
|
||||
'ETag': 'TestingETagHeader'
|
||||
},
|
||||
url: url
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
try {
|
||||
require("../service-worker.js");
|
||||
} catch(e) {}
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(typeof self.LibResilientConfig).toEqual('object')
|
||||
expect(self.LibResilientConfig.defaultPluginTimeout).toBe(5000)
|
||||
|
@ -287,6 +305,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', new Request('/test.json'))
|
||||
|
@ -347,6 +368,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', new Request('/test.json'))
|
||||
|
@ -419,6 +443,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', new Request('/test.json', initTest))
|
||||
|
@ -430,9 +457,8 @@ describe("service-worker", () => {
|
|||
});
|
||||
|
||||
test("defaultPluginTimeout should be respected", async () => {
|
||||
jest.useFakeTimers()
|
||||
self.LibResilientConfig = {
|
||||
defaultPluginTimeout: 1000,
|
||||
defaultPluginTimeout: 100,
|
||||
plugins: [{
|
||||
name: 'resolve-with-timeout'
|
||||
}],
|
||||
|
@ -448,7 +474,7 @@ describe("service-worker", () => {
|
|||
version: '0.0.1',
|
||||
fetch: (request, init)=>{
|
||||
return new Promise((resolve, reject)=>{
|
||||
setTimeout(rwtCallback, 5000)
|
||||
setTimeout(rwtCallback, 300)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -457,15 +483,17 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = self.trigger('fetch', new Request('/test.json'))
|
||||
jest.advanceTimersByTime(1000);
|
||||
expect.assertions(2)
|
||||
try {
|
||||
await response
|
||||
} catch(e) {
|
||||
expect(e.toString()).toBe("Error: LibResilient request using resolve-with-timeout timed out after 1000ms.")
|
||||
expect(e.toString()).toBe("Error: LibResilient request using resolve-with-timeout timed out after 100ms.")
|
||||
}
|
||||
expect(rwtCallback).not.toHaveBeenCalled()
|
||||
});
|
||||
|
@ -565,6 +593,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', new Request('/test.json'))
|
||||
|
@ -636,6 +667,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', new Request('/test.json'))
|
||||
|
@ -726,6 +760,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', {
|
||||
|
@ -791,6 +828,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var response = await self.trigger('fetch', new Request('/test.json'))
|
||||
|
@ -811,6 +851,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
await self.trigger(
|
||||
|
@ -928,6 +971,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
var initTest = {
|
||||
|
@ -967,6 +1013,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
await self.trigger(
|
||||
|
@ -1038,6 +1087,9 @@ describe("service-worker", () => {
|
|||
require("../service-worker.js");
|
||||
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
|
||||
await self.trigger(
|
||||
|
@ -1104,6 +1156,9 @@ describe("service-worker", () => {
|
|||
})
|
||||
require("../service-worker.js");
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(self.LibResilientPlugins.map(p=>p.name)).toEqual(['dependent-test'])
|
||||
expect(self.LibResilientPlugins[0].uses.map(p=>p.name)).toEqual(['dependency1-test', 'dependency2-test'])
|
||||
|
@ -1133,6 +1188,9 @@ describe("service-worker", () => {
|
|||
})
|
||||
require("../service-worker.js");
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect(self.LibResilientPlugins.map(p=>p.name)).toEqual(['plugin-test', 'plugin-test', 'plugin-test'])
|
||||
expect(self.LibResilientPlugins.map(p=>p.version)).toEqual(['0.0.1', '0.0.2', '0.0.3'])
|
||||
|
@ -1157,6 +1215,9 @@ describe("service-worker", () => {
|
|||
})
|
||||
require("../service-worker.js");
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
expect.assertions(1)
|
||||
try {
|
||||
|
@ -1222,6 +1283,9 @@ describe("service-worker", () => {
|
|||
})
|
||||
require("../service-worker.js");
|
||||
await self.trigger('install')
|
||||
// this is silly but works, and is necessary because
|
||||
// event.waitUntil() in the install event handler is not handled correctly in NodeJS
|
||||
await new Promise(resolve => resolve(true))
|
||||
await self.trigger('activate')
|
||||
await self.trigger('fetch', new Request('/test.json'))
|
||||
})
|
||||
|
|
Ładowanie…
Reference in New Issue