jest-webextension-mock 3.8.15 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/__tests__/storage.test.js +4 -1
- package/dist/setup.js +45 -3
- package/package.json +1 -1
- package/src/storage.js +52 -3
package/CHANGELOG.md
CHANGED
|
@@ -11,7 +11,7 @@ describe('browser.storage', () => {
|
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
describe('browser.storage', () => {
|
|
14
|
-
['sync', 'local', 'managed'].forEach((type) => {
|
|
14
|
+
['sync', 'local', 'managed', 'session'].forEach((type) => {
|
|
15
15
|
describe(type, () => {
|
|
16
16
|
const storage = browser.storage[type];
|
|
17
17
|
describe('get', () => {
|
|
@@ -55,6 +55,9 @@ describe('browser.storage', () => {
|
|
|
55
55
|
expect(e.message).toBe('Wrong key given');
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
+
test('an undefined key', () => {
|
|
59
|
+
return expect(storage.get()).resolves.toEqual({});
|
|
60
|
+
});
|
|
58
61
|
afterEach(() => {
|
|
59
62
|
expect(storage.get).toHaveBeenCalledTimes(1);
|
|
60
63
|
storage.clear();
|
package/dist/setup.js
CHANGED
|
@@ -283,7 +283,7 @@ function resolveKey(key, store) {
|
|
|
283
283
|
var storage = {
|
|
284
284
|
sync: {
|
|
285
285
|
get: jest.fn(function (id, cb) {
|
|
286
|
-
var result = id === null ? syncStore : resolveKey(id, syncStore);
|
|
286
|
+
var result = id === null || id === undefined ? syncStore : resolveKey(id, syncStore);
|
|
287
287
|
if (cb !== undefined) {
|
|
288
288
|
return cb(result);
|
|
289
289
|
}
|
|
@@ -325,7 +325,49 @@ var storage = {
|
|
|
325
325
|
},
|
|
326
326
|
local: {
|
|
327
327
|
get: jest.fn(function (id, cb) {
|
|
328
|
-
var result = id === null ? localStore : resolveKey(id, localStore);
|
|
328
|
+
var result = id === null || id === undefined ? localStore : resolveKey(id, localStore);
|
|
329
|
+
if (cb !== undefined) {
|
|
330
|
+
return cb(result);
|
|
331
|
+
}
|
|
332
|
+
return Promise.resolve(result);
|
|
333
|
+
}),
|
|
334
|
+
getBytesInUse: jest.fn(function (id, cb) {
|
|
335
|
+
if (cb !== undefined) {
|
|
336
|
+
return cb(0);
|
|
337
|
+
}
|
|
338
|
+
return Promise.resolve(0);
|
|
339
|
+
}),
|
|
340
|
+
set: jest.fn(function (payload, cb) {
|
|
341
|
+
Object.keys(payload).forEach(function (key) {
|
|
342
|
+
return localStore[key] = payload[key];
|
|
343
|
+
});
|
|
344
|
+
if (cb !== undefined) {
|
|
345
|
+
return cb();
|
|
346
|
+
}
|
|
347
|
+
return Promise.resolve();
|
|
348
|
+
}),
|
|
349
|
+
remove: jest.fn(function (id, cb) {
|
|
350
|
+
var keys = typeof id === 'string' ? [id] : id;
|
|
351
|
+
keys.forEach(function (key) {
|
|
352
|
+
return delete localStore[key];
|
|
353
|
+
});
|
|
354
|
+
if (cb !== undefined) {
|
|
355
|
+
return cb();
|
|
356
|
+
}
|
|
357
|
+
return Promise.resolve();
|
|
358
|
+
}),
|
|
359
|
+
clear: jest.fn(function (cb) {
|
|
360
|
+
localStore = {};
|
|
361
|
+
if (cb !== undefined) {
|
|
362
|
+
return cb();
|
|
363
|
+
}
|
|
364
|
+
return Promise.resolve();
|
|
365
|
+
}),
|
|
366
|
+
onChanged: createEventListeners()
|
|
367
|
+
},
|
|
368
|
+
session: {
|
|
369
|
+
get: jest.fn(function (id, cb) {
|
|
370
|
+
var result = id === null || id === undefined ? localStore : resolveKey(id, localStore);
|
|
329
371
|
if (cb !== undefined) {
|
|
330
372
|
return cb(result);
|
|
331
373
|
}
|
|
@@ -367,7 +409,7 @@ var storage = {
|
|
|
367
409
|
},
|
|
368
410
|
managed: {
|
|
369
411
|
get: jest.fn(function (id, cb) {
|
|
370
|
-
var result = id === null ? managedStore : resolveKey(id, managedStore);
|
|
412
|
+
var result = id === null || id === undefined ? managedStore : resolveKey(id, managedStore);
|
|
371
413
|
if (cb !== undefined) {
|
|
372
414
|
return cb(result);
|
|
373
415
|
}
|
package/package.json
CHANGED
package/src/storage.js
CHANGED
|
@@ -3,6 +3,7 @@ import { createEventListeners } from './createEventListeners';
|
|
|
3
3
|
let syncStore = {};
|
|
4
4
|
let localStore = {};
|
|
5
5
|
let managedStore = {};
|
|
6
|
+
let sessionStore = {};
|
|
6
7
|
|
|
7
8
|
function resolveKey(key, store) {
|
|
8
9
|
if (typeof key === 'string') {
|
|
@@ -26,7 +27,8 @@ function resolveKey(key, store) {
|
|
|
26
27
|
export const storage = {
|
|
27
28
|
sync: {
|
|
28
29
|
get: jest.fn((id, cb) => {
|
|
29
|
-
const result =
|
|
30
|
+
const result =
|
|
31
|
+
id === null || id === undefined ? syncStore : resolveKey(id, syncStore);
|
|
30
32
|
if (cb !== undefined) {
|
|
31
33
|
return cb(result);
|
|
32
34
|
}
|
|
@@ -64,7 +66,51 @@ export const storage = {
|
|
|
64
66
|
},
|
|
65
67
|
local: {
|
|
66
68
|
get: jest.fn((id, cb) => {
|
|
67
|
-
const result =
|
|
69
|
+
const result =
|
|
70
|
+
id === null || id === undefined
|
|
71
|
+
? localStore
|
|
72
|
+
: resolveKey(id, localStore);
|
|
73
|
+
if (cb !== undefined) {
|
|
74
|
+
return cb(result);
|
|
75
|
+
}
|
|
76
|
+
return Promise.resolve(result);
|
|
77
|
+
}),
|
|
78
|
+
getBytesInUse: jest.fn((id, cb) => {
|
|
79
|
+
if (cb !== undefined) {
|
|
80
|
+
return cb(0);
|
|
81
|
+
}
|
|
82
|
+
return Promise.resolve(0);
|
|
83
|
+
}),
|
|
84
|
+
set: jest.fn((payload, cb) => {
|
|
85
|
+
Object.keys(payload).forEach((key) => (localStore[key] = payload[key]));
|
|
86
|
+
if (cb !== undefined) {
|
|
87
|
+
return cb();
|
|
88
|
+
}
|
|
89
|
+
return Promise.resolve();
|
|
90
|
+
}),
|
|
91
|
+
remove: jest.fn((id, cb) => {
|
|
92
|
+
const keys = typeof id === 'string' ? [id] : id;
|
|
93
|
+
keys.forEach((key) => delete localStore[key]);
|
|
94
|
+
if (cb !== undefined) {
|
|
95
|
+
return cb();
|
|
96
|
+
}
|
|
97
|
+
return Promise.resolve();
|
|
98
|
+
}),
|
|
99
|
+
clear: jest.fn((cb) => {
|
|
100
|
+
localStore = {};
|
|
101
|
+
if (cb !== undefined) {
|
|
102
|
+
return cb();
|
|
103
|
+
}
|
|
104
|
+
return Promise.resolve();
|
|
105
|
+
}),
|
|
106
|
+
onChanged: createEventListeners(),
|
|
107
|
+
},
|
|
108
|
+
session: {
|
|
109
|
+
get: jest.fn((id, cb) => {
|
|
110
|
+
const result =
|
|
111
|
+
id === null || id === undefined
|
|
112
|
+
? localStore
|
|
113
|
+
: resolveKey(id, localStore);
|
|
68
114
|
if (cb !== undefined) {
|
|
69
115
|
return cb(result);
|
|
70
116
|
}
|
|
@@ -102,7 +148,10 @@ export const storage = {
|
|
|
102
148
|
},
|
|
103
149
|
managed: {
|
|
104
150
|
get: jest.fn((id, cb) => {
|
|
105
|
-
const result =
|
|
151
|
+
const result =
|
|
152
|
+
id === null || id === undefined
|
|
153
|
+
? managedStore
|
|
154
|
+
: resolveKey(id, managedStore);
|
|
106
155
|
if (cb !== undefined) {
|
|
107
156
|
return cb(result);
|
|
108
157
|
}
|