jest-webextension-mock 3.8.16 → 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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # jest-webextension-mock
2
2
 
3
+ ## 3.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add support for storage.session
8
+
3
9
  ## 3.8.16
4
10
 
5
11
  ### Patch Changes
@@ -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', () => {
package/dist/setup.js CHANGED
@@ -365,6 +365,48 @@ var storage = {
365
365
  }),
366
366
  onChanged: createEventListeners()
367
367
  },
368
+ session: {
369
+ get: jest.fn(function (id, cb) {
370
+ var result = id === null || id === undefined ? localStore : resolveKey(id, localStore);
371
+ if (cb !== undefined) {
372
+ return cb(result);
373
+ }
374
+ return Promise.resolve(result);
375
+ }),
376
+ getBytesInUse: jest.fn(function (id, cb) {
377
+ if (cb !== undefined) {
378
+ return cb(0);
379
+ }
380
+ return Promise.resolve(0);
381
+ }),
382
+ set: jest.fn(function (payload, cb) {
383
+ Object.keys(payload).forEach(function (key) {
384
+ return localStore[key] = payload[key];
385
+ });
386
+ if (cb !== undefined) {
387
+ return cb();
388
+ }
389
+ return Promise.resolve();
390
+ }),
391
+ remove: jest.fn(function (id, cb) {
392
+ var keys = typeof id === 'string' ? [id] : id;
393
+ keys.forEach(function (key) {
394
+ return delete localStore[key];
395
+ });
396
+ if (cb !== undefined) {
397
+ return cb();
398
+ }
399
+ return Promise.resolve();
400
+ }),
401
+ clear: jest.fn(function (cb) {
402
+ localStore = {};
403
+ if (cb !== undefined) {
404
+ return cb();
405
+ }
406
+ return Promise.resolve();
407
+ }),
408
+ onChanged: createEventListeners()
409
+ },
368
410
  managed: {
369
411
  get: jest.fn(function (id, cb) {
370
412
  var result = id === null || id === undefined ? managedStore : resolveKey(id, managedStore);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jest-webextension-mock",
3
- "version": "3.8.16",
3
+ "version": "3.9.0",
4
4
  "description": "Mock the components of a WebExtension",
5
5
  "main": "dist/setup.js",
6
6
  "module": "src/setup.js",
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') {
@@ -104,6 +105,47 @@ export const storage = {
104
105
  }),
105
106
  onChanged: createEventListeners(),
106
107
  },
108
+ session: {
109
+ get: jest.fn((id, cb) => {
110
+ const result =
111
+ id === null || id === undefined
112
+ ? localStore
113
+ : resolveKey(id, localStore);
114
+ if (cb !== undefined) {
115
+ return cb(result);
116
+ }
117
+ return Promise.resolve(result);
118
+ }),
119
+ getBytesInUse: jest.fn((id, cb) => {
120
+ if (cb !== undefined) {
121
+ return cb(0);
122
+ }
123
+ return Promise.resolve(0);
124
+ }),
125
+ set: jest.fn((payload, cb) => {
126
+ Object.keys(payload).forEach((key) => (localStore[key] = payload[key]));
127
+ if (cb !== undefined) {
128
+ return cb();
129
+ }
130
+ return Promise.resolve();
131
+ }),
132
+ remove: jest.fn((id, cb) => {
133
+ const keys = typeof id === 'string' ? [id] : id;
134
+ keys.forEach((key) => delete localStore[key]);
135
+ if (cb !== undefined) {
136
+ return cb();
137
+ }
138
+ return Promise.resolve();
139
+ }),
140
+ clear: jest.fn((cb) => {
141
+ localStore = {};
142
+ if (cb !== undefined) {
143
+ return cb();
144
+ }
145
+ return Promise.resolve();
146
+ }),
147
+ onChanged: createEventListeners(),
148
+ },
107
149
  managed: {
108
150
  get: jest.fn((id, cb) => {
109
151
  const result =