@webex/storage-adapter-spec 2.36.1 → 2.37.1
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/README.md +1 -0
- package/dist/index.js +3 -8
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.js +95 -82
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = runAbstractStorageAdapterSpec;
|
|
12
|
-
|
|
13
9
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
14
|
-
|
|
15
10
|
var _testHelperChai = require("@webex/test-helper-chai");
|
|
16
|
-
|
|
17
11
|
/*!
|
|
18
12
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
19
13
|
*/
|
|
20
|
-
function noop() {// intentionally empty
|
|
21
|
-
}
|
|
22
14
|
|
|
15
|
+
function noop() {
|
|
16
|
+
// intentionally empty
|
|
17
|
+
}
|
|
23
18
|
function runAbstractStorageAdapterSpec(adapter) {
|
|
24
19
|
var key = 'key';
|
|
25
20
|
var namespace = 'namespace';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["noop","runAbstractStorageAdapterSpec","adapter","key","namespace","obj","a","primitive","options","logger","error","warning","log","info","debug","trace","describe","it","assert","isRejected","bind","bound","before","then","b","put","get","result","deepEqual","forEach","falsey","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', () => 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 before(() => adapter.bind(namespace, options)\n .then((b) => {\n bound = b;\n }));\n\n describe('#put()', () => {\n it('puts a primitive into the store', () => bound.put(key, primitive)\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, primitive))));\n\n [0, false, null].forEach((falsey) => {\n it(`puts falsey primitive \\`${falsey}\\` into the store`, () => bound.put(key, falsey)\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, falsey))));\n });\n\n it('puts an object into the store', () => bound.put(key, obj)\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, obj))));\n\n it('puts an array into the store', () => bound.put(key, [1, 2])\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, [1, 2]))));\n\n it('puts an array back into the store', () => bound.put(key, [1, 2])\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, [1, 2])))\n .then(() => bound.put(key, [1, 2, 3]))\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, [1, 2, 3]))));\n\n it('handles concurrency', () => Promise.all([\n bound.put(key, 1),\n bound.put(key, 2),\n bound.put(key, 3)\n ])\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, 3))));\n\n it('puts same key in different namespaces', () => bound.put(key, primitive)\n .then(() => adapter.bind('namespace2', options)\n .then((b) => {\n const primitive2 = 2;\n\n b.put(key, primitive2)\n .then(() => Promise.all([\n bound.get(key)\n .then((result) => assert.deepEqual(result, primitive)),\n b.get(key)\n .then((result) => assert.deepEqual(result, primitive2))\n ]));\n })));\n });\n\n describe('#get()', () => {\n it('gets a primitive from the store', () => bound.put(key, primitive)\n .then(() => bound.get(key)\n .then((result) => assert.deepEqual(result, primitive))));\n\n it('gets an object from the store', () => bound.put(key, obj)\n .then(() => bound.get(key)\n .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', () => bound.put(key, primitive)\n .then(() => bound.get(key)\n .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', () => bound.put(key, obj)\n .then(() => bound.get(key)\n .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`', () => bound.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', () => bound.put(key, primitive)\n .then(() => bound.get(key)\n .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', () => bound.put(key, obj)\n .then(() => bound.get(key)\n .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`', () => bound.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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"}
|
|
1
|
+
{"version":3,"names":["noop","runAbstractStorageAdapterSpec","adapter","key","namespace","obj","a","primitive","options","logger","error","warning","log","info","debug","trace","describe","it","assert","isRejected","bind","bound","before","then","b","put","get","result","deepEqual","forEach","falsey","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 before(() =>\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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/storage-adapter-spec",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.37.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
]
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@webex/test-helper-chai": "2.
|
|
23
|
+
"@webex/test-helper-chai": "2.37.1"
|
|
24
24
|
}
|
|
25
25
|
}
|
package/src/index.js
CHANGED
|
@@ -20,8 +20,8 @@ export default function runAbstractStorageAdapterSpec(adapter) {
|
|
|
20
20
|
log: noop,
|
|
21
21
|
info: noop,
|
|
22
22
|
debug: noop,
|
|
23
|
-
trace: noop
|
|
24
|
-
}
|
|
23
|
+
trace: noop,
|
|
24
|
+
},
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
describe('#bind()', () => {
|
|
@@ -29,113 +29,126 @@ export default function runAbstractStorageAdapterSpec(adapter) {
|
|
|
29
29
|
// call bind correctly rather than to make sure the adapter uses them.
|
|
30
30
|
it('requires a namespace', () => assert.isRejected(adapter.bind(), /`namespace` is required/));
|
|
31
31
|
|
|
32
|
-
it('requires a logger option', () =>
|
|
32
|
+
it('requires a logger option', () =>
|
|
33
|
+
assert.isRejected(adapter.bind(namespace), /`options.logger` is required/));
|
|
33
34
|
|
|
34
35
|
it('returns a db interface', () => adapter.bind(namespace, options));
|
|
35
36
|
|
|
36
37
|
describe('bound', () => {
|
|
37
38
|
let bound;
|
|
38
39
|
|
|
39
|
-
before(() =>
|
|
40
|
-
.then((b) => {
|
|
40
|
+
before(() =>
|
|
41
|
+
adapter.bind(namespace, options).then((b) => {
|
|
41
42
|
bound = b;
|
|
42
|
-
})
|
|
43
|
+
})
|
|
44
|
+
);
|
|
43
45
|
|
|
44
46
|
describe('#put()', () => {
|
|
45
|
-
it('puts a primitive into the store', () =>
|
|
46
|
-
|
|
47
|
-
.
|
|
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))));
|
|
48
51
|
|
|
49
52
|
[0, false, null].forEach((falsey) => {
|
|
50
|
-
it(`puts falsey primitive \`${falsey}\` into the store`, () =>
|
|
51
|
-
|
|
52
|
-
.
|
|
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))));
|
|
53
57
|
});
|
|
54
58
|
|
|
55
|
-
it('puts an object into the store', () =>
|
|
56
|
-
|
|
57
|
-
.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
.then((result) => assert.deepEqual(result, [1, 2
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
bound.put(key, 3)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
.then((b) => {
|
|
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) => {
|
|
81
84
|
const primitive2 = 2;
|
|
82
85
|
|
|
83
|
-
b.put(key, primitive2)
|
|
84
|
-
|
|
85
|
-
bound.get(key)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
+
));
|
|
91
94
|
});
|
|
92
95
|
|
|
93
96
|
describe('#get()', () => {
|
|
94
|
-
it('gets a primitive from the store', () =>
|
|
95
|
-
|
|
96
|
-
.
|
|
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))));
|
|
97
101
|
|
|
98
|
-
it('gets an object from the store', () =>
|
|
99
|
-
|
|
100
|
-
.
|
|
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))));
|
|
101
106
|
|
|
102
107
|
it('rejects if the key cannot be found', () => assert.isRejected(bound.get('notakey')));
|
|
103
108
|
});
|
|
104
109
|
|
|
105
110
|
describe('#del()', () => {
|
|
106
|
-
it('removes a primitive from the store', () =>
|
|
107
|
-
|
|
108
|
-
.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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))));
|
|
121
130
|
});
|
|
122
131
|
|
|
123
132
|
describe('#clear()', () => {
|
|
124
|
-
it('clears a primitive from the store', () =>
|
|
125
|
-
|
|
126
|
-
.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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))));
|
|
139
152
|
});
|
|
140
153
|
});
|
|
141
154
|
});
|