@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 +6 -6
- package/README.md +40 -40
- package/babel.config.js +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +12 -13
- package/process +1 -1
- package/src/index.js +155 -155
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
|
-
[](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
|
+
[](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": "
|
|
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": "
|
|
37
|
-
"@webex/eslint-config-legacy": "
|
|
38
|
-
"@webex/jest-config-legacy": "
|
|
39
|
-
"@webex/legacy-tools": "
|
|
40
|
-
"@webex/test-helper-chai": "
|
|
41
|
-
"@webex/test-helper-mocha": "
|
|
42
|
-
"@webex/test-helper-mock-webex": "
|
|
43
|
-
"@webex/test-helper-test-users": "
|
|
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
|
-
|
|
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
|
+
}
|