jest-webextension-mock 3.8.12 → 3.8.13

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.
@@ -0,0 +1,8 @@
1
+ # Changesets
2
+
3
+ Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4
+ with multi-package repos, or single-package repos to help you version and publish your code. You can
5
+ find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6
+
7
+ We have a quick list of common questions to get you started engaging with this project in
8
+ [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
3
+ "changelog": "@changesets/cli/changelog",
4
+ "commit": false,
5
+ "fixed": [],
6
+ "linked": [],
7
+ "access": "restricted",
8
+ "baseBranch": "main",
9
+ "updateInternalDependencies": "patch",
10
+ "ignore": []
11
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # jest-webextension-mock
2
+
3
+ ## 3.8.13
4
+
5
+ ### Patch Changes
6
+
7
+ - 2800518: Add storage onChange event listeners
@@ -143,6 +143,26 @@ describe('browser.storage', () => {
143
143
  });
144
144
  });
145
145
  });
146
+ test('onChanged', () => {
147
+ const callback = jest.fn();
148
+ expect(jest.isMockFunction(storage.onChanged.addListener)).toBe(true);
149
+ expect(jest.isMockFunction(storage.onChanged.removeListener)).toBe(
150
+ true
151
+ );
152
+ expect(jest.isMockFunction(storage.onChanged.hasListener)).toBe(true);
153
+ expect(jest.isMockFunction(storage.onChanged.hasListeners)).toBe(true);
154
+
155
+ expect(storage.onChanged.hasListeners()).toBe(false);
156
+ expect(storage.onChanged.hasListener(callback)).toBe(false);
157
+
158
+ storage.onChanged.addListener(callback);
159
+ expect(storage.onChanged.hasListeners()).toBe(true);
160
+ expect(storage.onChanged.hasListener(callback)).toBe(true);
161
+
162
+ storage.onChanged.removeListener(callback);
163
+ expect(storage.onChanged.hasListeners()).toBe(false);
164
+ expect(storage.onChanged.hasListener(callback)).toBe(false);
165
+ });
146
166
  });
147
167
  });
148
168
  });
package/dist/setup.js CHANGED
@@ -239,6 +239,26 @@ var tabs = {
239
239
  })
240
240
  };
241
241
 
242
+ var createEventListeners = function createEventListeners() {
243
+ var listeners = [];
244
+ return {
245
+ addListener: jest.fn(function (listener) {
246
+ listeners.push(listener);
247
+ }),
248
+ removeListener: jest.fn(function (listener) {
249
+ listeners = listeners.filter(function (l) {
250
+ return l !== listener;
251
+ });
252
+ }),
253
+ hasListener: jest.fn(function (listener) {
254
+ return listeners.includes(listener);
255
+ }),
256
+ hasListeners: jest.fn(function () {
257
+ return listeners.length > 0;
258
+ })
259
+ };
260
+ };
261
+
242
262
  var store = {};
243
263
  function resolveKey(key) {
244
264
  if (typeof key === 'string') {
@@ -298,7 +318,8 @@ var storage = {
298
318
  return cb();
299
319
  }
300
320
  return Promise.resolve();
301
- })
321
+ }),
322
+ onChanged: createEventListeners()
302
323
  },
303
324
  local: {
304
325
  get: jest.fn(function (id, cb) {
@@ -339,7 +360,8 @@ var storage = {
339
360
  return cb();
340
361
  }
341
362
  return Promise.resolve();
342
- })
363
+ }),
364
+ onChanged: createEventListeners()
343
365
  },
344
366
  managed: {
345
367
  get: jest.fn(function (id, cb) {
@@ -380,13 +402,10 @@ var storage = {
380
402
  return cb();
381
403
  }
382
404
  return Promise.resolve();
383
- })
405
+ }),
406
+ onChanged: createEventListeners()
384
407
  },
385
- onChanged: {
386
- addListener: jest.fn(),
387
- removeListener: jest.fn(),
388
- hasListener: jest.fn()
389
- }
408
+ onChanged: createEventListeners()
390
409
  };
391
410
 
392
411
  var getDetails = function getDetails(details, cb) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jest-webextension-mock",
3
- "version": "3.8.12",
3
+ "version": "3.8.13",
4
4
  "description": "Mock the components of a WebExtension",
5
5
  "main": "dist/setup.js",
6
6
  "module": "src/setup.js",
@@ -13,16 +13,16 @@
13
13
  "scripts": {
14
14
  "test": "jest",
15
15
  "build": "rollup -c",
16
- "release": "bumpp && npm publish",
16
+ "release": "changeset version",
17
17
  "prettier": "prettier --write \"{config,src,__{tests,setups}__}/**/*.js\" rollup.config.js",
18
18
  "eslint-check": "eslint --print-config .eslintrc.js | eslint-config-prettier-check"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@babel/core": "^7.11.6",
22
22
  "@babel/preset-env": "^7.11.5",
23
+ "@changesets/cli": "^2.27.1",
23
24
  "babel-core": "^7.0.0-bridge.0",
24
25
  "babel-jest": "^26.5.2",
25
- "bumpp": "^9.4.0",
26
26
  "eslint": "^7.11.0",
27
27
  "eslint-config-prettier": "^6.12.0",
28
28
  "eslint-plugin-prettier": "^3.1.4",
@@ -0,0 +1,18 @@
1
+ export const createEventListeners = () => {
2
+ let listeners = [];
3
+
4
+ return {
5
+ addListener: jest.fn((listener) => {
6
+ listeners.push(listener);
7
+ }),
8
+ removeListener: jest.fn((listener) => {
9
+ listeners = listeners.filter((l) => l !== listener);
10
+ }),
11
+ hasListener: jest.fn((listener) => {
12
+ return listeners.includes(listener);
13
+ }),
14
+ hasListeners: jest.fn(() => {
15
+ return listeners.length > 0;
16
+ }),
17
+ };
18
+ };
package/src/storage.js CHANGED
@@ -1,4 +1,5 @@
1
1
  let store = {};
2
+ import { createEventListeners } from './createEventListeners';
2
3
 
3
4
  function resolveKey(key) {
4
5
  if (typeof key === 'string') {
@@ -56,6 +57,7 @@ export const storage = {
56
57
  }
57
58
  return Promise.resolve();
58
59
  }),
60
+ onChanged: createEventListeners(),
59
61
  },
60
62
  local: {
61
63
  get: jest.fn((id, cb) => {
@@ -93,6 +95,7 @@ export const storage = {
93
95
  }
94
96
  return Promise.resolve();
95
97
  }),
98
+ onChanged: createEventListeners(),
96
99
  },
97
100
  managed: {
98
101
  get: jest.fn((id, cb) => {
@@ -130,10 +133,7 @@ export const storage = {
130
133
  }
131
134
  return Promise.resolve();
132
135
  }),
136
+ onChanged: createEventListeners(),
133
137
  },
134
- onChanged: {
135
- addListener: jest.fn(),
136
- removeListener: jest.fn(),
137
- hasListener: jest.fn(),
138
- },
138
+ onChanged: createEventListeners(),
139
139
  };