@webex/storage-adapter-spec 2.59.3-next.1 → 2.59.4

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/.eslintrc.js CHANGED
@@ -1,6 +1,6 @@
1
- const config = {
2
- root: true,
3
- extends: ['@webex/eslint-config-legacy'],
4
- };
5
-
6
- module.exports = config;
1
+ const config = {
2
+ root: true,
3
+ extends: ['@webex/eslint-config-legacy'],
4
+ };
5
+
6
+ module.exports = config;
package/README.md CHANGED
@@ -1,40 +1,40 @@
1
- # @webex/storage-adapter-spec
2
-
3
- [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
4
-
5
- > Blackbox test suite for storage adapters
6
-
7
- - [Install](#install)
8
- - [Usage](#usage)
9
- - [Contribute](#contribute)
10
- - [Maintainers](#maintainers)
11
- - [License](#license)
12
-
13
- ## Install
14
-
15
- ```bash
16
- npm install --save-dev @webex/storage-adapter-spec
17
- ```
18
-
19
- ## Usage
20
-
21
- ```js
22
- import runAbstractStorageAdapterSpec from '@webex/storage-adapter-spec';
23
- import MyStorageAdapter from './my-storage-adapter';
24
-
25
- describe('MyStorageAdapter', () => {
26
- runAbstractStorageAdapterSpec(new MyStorageAdapter('test'));
27
- });
28
-
29
- ## Maintainers
30
-
31
- This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
32
-
33
- ## Contribute
34
-
35
- Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
36
-
37
- ## License
38
-
39
- © 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
40
- ```
1
+ # @webex/storage-adapter-spec
2
+
3
+ [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
4
+
5
+ > Blackbox test suite for storage adapters
6
+
7
+ - [Install](#install)
8
+ - [Usage](#usage)
9
+ - [Contribute](#contribute)
10
+ - [Maintainers](#maintainers)
11
+ - [License](#license)
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ npm install --save-dev @webex/storage-adapter-spec
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```js
22
+ import runAbstractStorageAdapterSpec from '@webex/storage-adapter-spec';
23
+ import MyStorageAdapter from './my-storage-adapter';
24
+
25
+ describe('MyStorageAdapter', () => {
26
+ runAbstractStorageAdapterSpec(new MyStorageAdapter('test'));
27
+ });
28
+
29
+ ## Maintainers
30
+
31
+ This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
32
+
33
+ ## Contribute
34
+
35
+ Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
36
+
37
+ ## License
38
+
39
+ © 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
40
+ ```
package/babel.config.js CHANGED
@@ -1,3 +1,3 @@
1
- const babelConfigLegacy = require('@webex/babel-config-legacy');
2
-
3
- module.exports = babelConfigLegacy;
1
+ const babelConfigLegacy = require('@webex/babel-config-legacy');
2
+
3
+ module.exports = babelConfigLegacy;
package/dist/index.js CHANGED
@@ -8,8 +8,8 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  exports.default = runAbstractStorageAdapterSpec;
9
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
10
  var _testHelperChai = require("@webex/test-helper-chai");
11
- /*!
12
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
11
+ /*!
12
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
13
13
  */
14
14
 
15
15
  function noop() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_testHelperChai","require","noop","runAbstractStorageAdapterSpec","adapter","key","namespace","obj","a","primitive","options","logger","error","warning","log","info","debug","trace","describe","it","assert","isRejected","bind","bound","beforeAll","then","b","put","get","result","deepEqual","forEach","falsey","concat","_promise","default","all","primitive2","del","undefined","clear"],"sources":["index.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {assert} from '@webex/test-helper-chai';\r\n\r\nfunction noop() {\r\n // intentionally empty\r\n}\r\n\r\nexport default function runAbstractStorageAdapterSpec(adapter) {\r\n const key = 'key';\r\n const namespace = 'namespace';\r\n const obj = {a: 1};\r\n const primitive = 1;\r\n const options = {\r\n logger: {\r\n error: noop,\r\n warning: noop,\r\n log: noop,\r\n info: noop,\r\n debug: noop,\r\n trace: noop,\r\n },\r\n };\r\n\r\n describe('#bind()', () => {\r\n // namespace and options.logger are required more to make sure we always\r\n // call bind correctly rather than to make sure the adapter uses them.\r\n it('requires a namespace', () => assert.isRejected(adapter.bind(), /`namespace` is required/));\r\n\r\n it('requires a logger option', () =>\r\n assert.isRejected(adapter.bind(namespace), /`options.logger` is required/));\r\n\r\n it('returns a db interface', () => adapter.bind(namespace, options));\r\n\r\n describe('bound', () => {\r\n let bound;\r\n\r\n beforeAll(() =>\r\n adapter.bind(namespace, options).then((b) => {\r\n bound = b;\r\n })\r\n );\r\n\r\n describe('#put()', () => {\r\n it('puts a primitive into the store', () =>\r\n bound\r\n .put(key, primitive)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));\r\n\r\n [0, false, null].forEach((falsey) => {\r\n it(`puts falsey primitive \\`${falsey}\\` into the store`, () =>\r\n bound\r\n .put(key, falsey)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, falsey))));\r\n });\r\n\r\n it('puts an object into the store', () =>\r\n bound\r\n .put(key, obj)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));\r\n\r\n it('puts an array into the store', () =>\r\n bound\r\n .put(key, [1, 2])\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2]))));\r\n\r\n it('puts an array back into the store', () =>\r\n bound\r\n .put(key, [1, 2])\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2])))\r\n .then(() => bound.put(key, [1, 2, 3]))\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2, 3]))));\r\n\r\n it('handles concurrency', () =>\r\n Promise.all([bound.put(key, 1), bound.put(key, 2), bound.put(key, 3)]).then(() =>\r\n bound.get(key).then((result) => assert.deepEqual(result, 3))\r\n ));\r\n\r\n it('puts same key in different namespaces', () =>\r\n bound.put(key, primitive).then(() =>\r\n adapter.bind('namespace2', options).then((b) => {\r\n const primitive2 = 2;\r\n\r\n b.put(key, primitive2).then(() =>\r\n Promise.all([\r\n bound.get(key).then((result) => assert.deepEqual(result, primitive)),\r\n b.get(key).then((result) => assert.deepEqual(result, primitive2)),\r\n ])\r\n );\r\n })\r\n ));\r\n });\r\n\r\n describe('#get()', () => {\r\n it('gets a primitive from the store', () =>\r\n bound\r\n .put(key, primitive)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));\r\n\r\n it('gets an object from the store', () =>\r\n bound\r\n .put(key, obj)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));\r\n\r\n it('rejects if the key cannot be found', () => assert.isRejected(bound.get('notakey')));\r\n });\r\n\r\n describe('#del()', () => {\r\n it('removes a primitive from the store', () =>\r\n bound\r\n .put(key, primitive)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))\r\n .then(() => bound.del(key))\r\n .then(() => assert.isRejected(bound.get(key))));\r\n\r\n it('removes an object from the store', () =>\r\n bound\r\n .put(key, obj)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))\r\n .then(() => bound.del(key))\r\n .then(() => assert.isRejected(bound.get(key))));\r\n\r\n it('removes an item from the store when putting `undefined`', () =>\r\n bound\r\n .put(key, undefined)\r\n .then(() => bound.del(key))\r\n .then(() => assert.isRejected(bound.get(key))));\r\n });\r\n\r\n describe('#clear()', () => {\r\n it('clears a primitive from the store', () =>\r\n bound\r\n .put(key, primitive)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))\r\n .then(() => bound.clear())\r\n .then(() => assert.isRejected(bound.get(key))));\r\n\r\n it('clears an object from the store', () =>\r\n bound\r\n .put(key, obj)\r\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))\r\n .then(() => bound.clear(key))\r\n .then(() => assert.isRejected(bound.get(key))));\r\n\r\n it('clears an item from the store when putting `undefined`', () =>\r\n bound\r\n .put(key, undefined)\r\n .then(() => bound.clear(key))\r\n .then(() => assert.isRejected(bound.get(key))));\r\n });\r\n });\r\n });\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["_testHelperChai","require","noop","runAbstractStorageAdapterSpec","adapter","key","namespace","obj","a","primitive","options","logger","error","warning","log","info","debug","trace","describe","it","assert","isRejected","bind","bound","beforeAll","then","b","put","get","result","deepEqual","forEach","falsey","concat","_promise","default","all","primitive2","del","undefined","clear"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {assert} from '@webex/test-helper-chai';\n\nfunction noop() {\n // intentionally empty\n}\n\nexport default function runAbstractStorageAdapterSpec(adapter) {\n const key = 'key';\n const namespace = 'namespace';\n const obj = {a: 1};\n const primitive = 1;\n const options = {\n logger: {\n error: noop,\n warning: noop,\n log: noop,\n info: noop,\n debug: noop,\n trace: noop,\n },\n };\n\n describe('#bind()', () => {\n // namespace and options.logger are required more to make sure we always\n // call bind correctly rather than to make sure the adapter uses them.\n it('requires a namespace', () => assert.isRejected(adapter.bind(), /`namespace` is required/));\n\n it('requires a logger option', () =>\n assert.isRejected(adapter.bind(namespace), /`options.logger` is required/));\n\n it('returns a db interface', () => adapter.bind(namespace, options));\n\n describe('bound', () => {\n let bound;\n\n beforeAll(() =>\n adapter.bind(namespace, options).then((b) => {\n bound = b;\n })\n );\n\n describe('#put()', () => {\n it('puts a primitive into the store', () =>\n bound\n .put(key, primitive)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));\n\n [0, false, null].forEach((falsey) => {\n it(`puts falsey primitive \\`${falsey}\\` into the store`, () =>\n bound\n .put(key, falsey)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, falsey))));\n });\n\n it('puts an object into the store', () =>\n bound\n .put(key, obj)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));\n\n it('puts an array into the store', () =>\n bound\n .put(key, [1, 2])\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2]))));\n\n it('puts an array back into the store', () =>\n bound\n .put(key, [1, 2])\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2])))\n .then(() => bound.put(key, [1, 2, 3]))\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2, 3]))));\n\n it('handles concurrency', () =>\n Promise.all([bound.put(key, 1), bound.put(key, 2), bound.put(key, 3)]).then(() =>\n bound.get(key).then((result) => assert.deepEqual(result, 3))\n ));\n\n it('puts same key in different namespaces', () =>\n bound.put(key, primitive).then(() =>\n adapter.bind('namespace2', options).then((b) => {\n const primitive2 = 2;\n\n b.put(key, primitive2).then(() =>\n Promise.all([\n bound.get(key).then((result) => assert.deepEqual(result, primitive)),\n b.get(key).then((result) => assert.deepEqual(result, primitive2)),\n ])\n );\n })\n ));\n });\n\n describe('#get()', () => {\n it('gets a primitive from the store', () =>\n bound\n .put(key, primitive)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));\n\n it('gets an object from the store', () =>\n bound\n .put(key, obj)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));\n\n it('rejects if the key cannot be found', () => assert.isRejected(bound.get('notakey')));\n });\n\n describe('#del()', () => {\n it('removes a primitive from the store', () =>\n bound\n .put(key, primitive)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))\n .then(() => bound.del(key))\n .then(() => assert.isRejected(bound.get(key))));\n\n it('removes an object from the store', () =>\n bound\n .put(key, obj)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))\n .then(() => bound.del(key))\n .then(() => assert.isRejected(bound.get(key))));\n\n it('removes an item from the store when putting `undefined`', () =>\n bound\n .put(key, undefined)\n .then(() => bound.del(key))\n .then(() => assert.isRejected(bound.get(key))));\n });\n\n describe('#clear()', () => {\n it('clears a primitive from the store', () =>\n bound\n .put(key, primitive)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))\n .then(() => bound.clear())\n .then(() => assert.isRejected(bound.get(key))));\n\n it('clears an object from the store', () =>\n bound\n .put(key, obj)\n .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))\n .then(() => bound.clear(key))\n .then(() => assert.isRejected(bound.get(key))));\n\n it('clears an item from the store when putting `undefined`', () =>\n bound\n .put(key, undefined)\n .then(() => bound.clear(key))\n .then(() => assert.isRejected(bound.get(key))));\n });\n });\n });\n}\n"],"mappings":"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"}
package/jest.config.js CHANGED
@@ -1,3 +1,3 @@
1
- const config = require('@webex/jest-config-legacy');
2
-
3
- module.exports = config;
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;
package/package.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "@webex/storage-adapter-spec",
3
+ "version": "2.59.4",
3
4
  "description": "",
4
5
  "license": "MIT",
5
6
  "main": "dist/index.js",
@@ -19,12 +20,11 @@
19
20
  ]
20
21
  },
21
22
  "dependencies": {
22
- "@webex/test-helper-chai": "^2.59.3-next.1"
23
+ "@webex/test-helper-chai": "2.59.4"
23
24
  },
24
25
  "scripts": {
25
26
  "build": "yarn build:src",
26
27
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
27
- "deploy:npm": "yarn npm publish",
28
28
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
29
29
  "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
30
30
  "test:integration": "webex-legacy-tools test --integration --runner mocha",
@@ -33,16 +33,15 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@babel/core": "^7.17.10",
36
- "@webex/babel-config-legacy": "^0.0.0",
37
- "@webex/eslint-config-legacy": "^0.0.0",
38
- "@webex/jest-config-legacy": "^0.0.0",
39
- "@webex/legacy-tools": "^0.0.0",
40
- "@webex/test-helper-chai": "^2.59.3-next.1",
41
- "@webex/test-helper-mocha": "^2.59.3-next.1",
42
- "@webex/test-helper-mock-webex": "^2.59.3-next.1",
43
- "@webex/test-helper-test-users": "^2.59.3-next.1",
36
+ "@webex/babel-config-legacy": "2.59.4",
37
+ "@webex/eslint-config-legacy": "2.59.4",
38
+ "@webex/jest-config-legacy": "2.59.4",
39
+ "@webex/legacy-tools": "2.59.4",
40
+ "@webex/test-helper-chai": "2.59.4",
41
+ "@webex/test-helper-mocha": "2.59.4",
42
+ "@webex/test-helper-mock-webex": "2.59.4",
43
+ "@webex/test-helper-test-users": "2.59.4",
44
44
  "eslint": "^8.24.0",
45
45
  "prettier": "^2.7.1"
46
- },
47
- "version": "2.59.3-next.1"
48
- }
46
+ }
47
+ }
package/process CHANGED
@@ -1 +1 @@
1
- module.exports = {browser: true};
1
+ module.exports = {browser: true};
package/src/index.js CHANGED
@@ -1,155 +1,155 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- import {assert} from '@webex/test-helper-chai';
6
-
7
- function noop() {
8
- // intentionally empty
9
- }
10
-
11
- export default function runAbstractStorageAdapterSpec(adapter) {
12
- const key = 'key';
13
- const namespace = 'namespace';
14
- const obj = {a: 1};
15
- const primitive = 1;
16
- const options = {
17
- logger: {
18
- error: noop,
19
- warning: noop,
20
- log: noop,
21
- info: noop,
22
- debug: noop,
23
- trace: noop,
24
- },
25
- };
26
-
27
- describe('#bind()', () => {
28
- // namespace and options.logger are required more to make sure we always
29
- // call bind correctly rather than to make sure the adapter uses them.
30
- it('requires a namespace', () => assert.isRejected(adapter.bind(), /`namespace` is required/));
31
-
32
- it('requires a logger option', () =>
33
- assert.isRejected(adapter.bind(namespace), /`options.logger` is required/));
34
-
35
- it('returns a db interface', () => adapter.bind(namespace, options));
36
-
37
- describe('bound', () => {
38
- let bound;
39
-
40
- beforeAll(() =>
41
- adapter.bind(namespace, options).then((b) => {
42
- bound = b;
43
- })
44
- );
45
-
46
- describe('#put()', () => {
47
- it('puts a primitive into the store', () =>
48
- bound
49
- .put(key, primitive)
50
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));
51
-
52
- [0, false, null].forEach((falsey) => {
53
- it(`puts falsey primitive \`${falsey}\` into the store`, () =>
54
- bound
55
- .put(key, falsey)
56
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, falsey))));
57
- });
58
-
59
- it('puts an object into the store', () =>
60
- bound
61
- .put(key, obj)
62
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));
63
-
64
- it('puts an array into the store', () =>
65
- bound
66
- .put(key, [1, 2])
67
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2]))));
68
-
69
- it('puts an array back into the store', () =>
70
- bound
71
- .put(key, [1, 2])
72
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2])))
73
- .then(() => bound.put(key, [1, 2, 3]))
74
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2, 3]))));
75
-
76
- it('handles concurrency', () =>
77
- Promise.all([bound.put(key, 1), bound.put(key, 2), bound.put(key, 3)]).then(() =>
78
- bound.get(key).then((result) => assert.deepEqual(result, 3))
79
- ));
80
-
81
- it('puts same key in different namespaces', () =>
82
- bound.put(key, primitive).then(() =>
83
- adapter.bind('namespace2', options).then((b) => {
84
- const primitive2 = 2;
85
-
86
- b.put(key, primitive2).then(() =>
87
- Promise.all([
88
- bound.get(key).then((result) => assert.deepEqual(result, primitive)),
89
- b.get(key).then((result) => assert.deepEqual(result, primitive2)),
90
- ])
91
- );
92
- })
93
- ));
94
- });
95
-
96
- describe('#get()', () => {
97
- it('gets a primitive from the store', () =>
98
- bound
99
- .put(key, primitive)
100
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));
101
-
102
- it('gets an object from the store', () =>
103
- bound
104
- .put(key, obj)
105
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));
106
-
107
- it('rejects if the key cannot be found', () => assert.isRejected(bound.get('notakey')));
108
- });
109
-
110
- describe('#del()', () => {
111
- it('removes a primitive from the store', () =>
112
- bound
113
- .put(key, primitive)
114
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))
115
- .then(() => bound.del(key))
116
- .then(() => assert.isRejected(bound.get(key))));
117
-
118
- it('removes an object from the store', () =>
119
- bound
120
- .put(key, obj)
121
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))
122
- .then(() => bound.del(key))
123
- .then(() => assert.isRejected(bound.get(key))));
124
-
125
- it('removes an item from the store when putting `undefined`', () =>
126
- bound
127
- .put(key, undefined)
128
- .then(() => bound.del(key))
129
- .then(() => assert.isRejected(bound.get(key))));
130
- });
131
-
132
- describe('#clear()', () => {
133
- it('clears a primitive from the store', () =>
134
- bound
135
- .put(key, primitive)
136
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))
137
- .then(() => bound.clear())
138
- .then(() => assert.isRejected(bound.get(key))));
139
-
140
- it('clears an object from the store', () =>
141
- bound
142
- .put(key, obj)
143
- .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))
144
- .then(() => bound.clear(key))
145
- .then(() => assert.isRejected(bound.get(key))));
146
-
147
- it('clears an item from the store when putting `undefined`', () =>
148
- bound
149
- .put(key, undefined)
150
- .then(() => bound.clear(key))
151
- .then(() => assert.isRejected(bound.get(key))));
152
- });
153
- });
154
- });
155
- }
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import {assert} from '@webex/test-helper-chai';
6
+
7
+ function noop() {
8
+ // intentionally empty
9
+ }
10
+
11
+ export default function runAbstractStorageAdapterSpec(adapter) {
12
+ const key = 'key';
13
+ const namespace = 'namespace';
14
+ const obj = {a: 1};
15
+ const primitive = 1;
16
+ const options = {
17
+ logger: {
18
+ error: noop,
19
+ warning: noop,
20
+ log: noop,
21
+ info: noop,
22
+ debug: noop,
23
+ trace: noop,
24
+ },
25
+ };
26
+
27
+ describe('#bind()', () => {
28
+ // namespace and options.logger are required more to make sure we always
29
+ // call bind correctly rather than to make sure the adapter uses them.
30
+ it('requires a namespace', () => assert.isRejected(adapter.bind(), /`namespace` is required/));
31
+
32
+ it('requires a logger option', () =>
33
+ assert.isRejected(adapter.bind(namespace), /`options.logger` is required/));
34
+
35
+ it('returns a db interface', () => adapter.bind(namespace, options));
36
+
37
+ describe('bound', () => {
38
+ let bound;
39
+
40
+ beforeAll(() =>
41
+ adapter.bind(namespace, options).then((b) => {
42
+ bound = b;
43
+ })
44
+ );
45
+
46
+ describe('#put()', () => {
47
+ it('puts a primitive into the store', () =>
48
+ bound
49
+ .put(key, primitive)
50
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));
51
+
52
+ [0, false, null].forEach((falsey) => {
53
+ it(`puts falsey primitive \`${falsey}\` into the store`, () =>
54
+ bound
55
+ .put(key, falsey)
56
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, falsey))));
57
+ });
58
+
59
+ it('puts an object into the store', () =>
60
+ bound
61
+ .put(key, obj)
62
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));
63
+
64
+ it('puts an array into the store', () =>
65
+ bound
66
+ .put(key, [1, 2])
67
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2]))));
68
+
69
+ it('puts an array back into the store', () =>
70
+ bound
71
+ .put(key, [1, 2])
72
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2])))
73
+ .then(() => bound.put(key, [1, 2, 3]))
74
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, [1, 2, 3]))));
75
+
76
+ it('handles concurrency', () =>
77
+ Promise.all([bound.put(key, 1), bound.put(key, 2), bound.put(key, 3)]).then(() =>
78
+ bound.get(key).then((result) => assert.deepEqual(result, 3))
79
+ ));
80
+
81
+ it('puts same key in different namespaces', () =>
82
+ bound.put(key, primitive).then(() =>
83
+ adapter.bind('namespace2', options).then((b) => {
84
+ const primitive2 = 2;
85
+
86
+ b.put(key, primitive2).then(() =>
87
+ Promise.all([
88
+ bound.get(key).then((result) => assert.deepEqual(result, primitive)),
89
+ b.get(key).then((result) => assert.deepEqual(result, primitive2)),
90
+ ])
91
+ );
92
+ })
93
+ ));
94
+ });
95
+
96
+ describe('#get()', () => {
97
+ it('gets a primitive from the store', () =>
98
+ bound
99
+ .put(key, primitive)
100
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive))));
101
+
102
+ it('gets an object from the store', () =>
103
+ bound
104
+ .put(key, obj)
105
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj))));
106
+
107
+ it('rejects if the key cannot be found', () => assert.isRejected(bound.get('notakey')));
108
+ });
109
+
110
+ describe('#del()', () => {
111
+ it('removes a primitive from the store', () =>
112
+ bound
113
+ .put(key, primitive)
114
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))
115
+ .then(() => bound.del(key))
116
+ .then(() => assert.isRejected(bound.get(key))));
117
+
118
+ it('removes an object from the store', () =>
119
+ bound
120
+ .put(key, obj)
121
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))
122
+ .then(() => bound.del(key))
123
+ .then(() => assert.isRejected(bound.get(key))));
124
+
125
+ it('removes an item from the store when putting `undefined`', () =>
126
+ bound
127
+ .put(key, undefined)
128
+ .then(() => bound.del(key))
129
+ .then(() => assert.isRejected(bound.get(key))));
130
+ });
131
+
132
+ describe('#clear()', () => {
133
+ it('clears a primitive from the store', () =>
134
+ bound
135
+ .put(key, primitive)
136
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, primitive)))
137
+ .then(() => bound.clear())
138
+ .then(() => assert.isRejected(bound.get(key))));
139
+
140
+ it('clears an object from the store', () =>
141
+ bound
142
+ .put(key, obj)
143
+ .then(() => bound.get(key).then((result) => assert.deepEqual(result, obj)))
144
+ .then(() => bound.clear(key))
145
+ .then(() => assert.isRejected(bound.get(key))));
146
+
147
+ it('clears an item from the store when putting `undefined`', () =>
148
+ bound
149
+ .put(key, undefined)
150
+ .then(() => bound.clear(key))
151
+ .then(() => assert.isRejected(bound.get(key))));
152
+ });
153
+ });
154
+ });
155
+ }