Skip to content
This repository was archived by the owner on Nov 18, 2024. It is now read-only.

Commit d3e301a

Browse files
authored
update unit tests to use node-server-sdk 6.0 persistent data store test suite (#11)
* update unit tests to use node-server-sdk 6.0 persistent data store test suite * lint
1 parent 25933ca commit d3e301a

File tree

3 files changed

+29
-59
lines changed

3 files changed

+29
-59
lines changed

.eslintrc.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ module.exports = {
33
"node": true,
44
"es6": true
55
},
6+
"parserOptions": {
7+
"ecmaVersion": 2017,
8+
},
69
"extends": "eslint:recommended",
710
"rules": {
811
"indent": [

tests/.eslintrc.js

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,7 @@ module.exports = {
22
"env": {
33
"node": true,
44
"es6": true,
5+
"jasmine": true,
56
"jest": true
67
},
7-
"extends": "eslint:recommended",
8-
"rules": {
9-
"indent": [
10-
"error",
11-
2
12-
],
13-
"linebreak-style": [
14-
"error",
15-
"unix"
16-
],
17-
"quotes": [
18-
"error",
19-
"single"
20-
],
21-
"semi": [
22-
"error",
23-
"always"
24-
]
25-
}
268
};

tests/consul_feature_store-test.js

Lines changed: 25 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,38 @@
1-
var ConsulFeatureStore = require('../consul_feature_store');
2-
var testBase = require('launchdarkly-node-server-sdk/test/feature_store_test_base');
3-
var consul = require('consul');
4-
5-
function stubLogger() {
6-
return {
7-
debug: jest.fn(),
8-
info: jest.fn(),
9-
warn: jest.fn(),
10-
error: jest.fn()
11-
};
12-
}
13-
14-
describe('ConsulFeatureStore', function() {
1+
const ConsulFeatureStore = require('../consul_feature_store');
2+
const {
3+
runPersistentFeatureStoreTests,
4+
} = require('launchdarkly-node-server-sdk/sharedtest/store_tests');
5+
const consul = require('consul');
156

16-
var client = consul();
7+
// Runs the standard test suites provided by the SDK's store_tests module.
178

18-
function clearTable(done) {
19-
client.kv.del({ key: 'launchdarkly', recurse: true }, function() {
20-
done();
21-
});
22-
}
9+
function actualPrefix(prefix) {
10+
return prefix || 'launchdarkly';
11+
}
2312

24-
const sdkConfig = { logger: stubLogger() };
13+
function clearAllData(client) {
14+
return async (prefix) => {
15+
await client.kv.del({ key: actualPrefix(prefix), recurse: true });
16+
};
17+
}
2518

26-
function makeStore() {
27-
return ConsulFeatureStore()(sdkConfig);
28-
}
19+
describe('ConsulFeatureStore', function() {
2920

30-
function makeStoreWithoutCache() {
31-
return ConsulFeatureStore({ cacheTTL: 0 })(sdkConfig);
32-
}
21+
const client = consul({ promisify: true });
3322

34-
function makeStoreWithPrefix(prefix) {
35-
return ConsulFeatureStore({ prefix: prefix, cacheTTL: 0 })(sdkConfig);
23+
function createStore(prefix, cacheTTL, logger) {
24+
return ConsulFeatureStore({ prefix, cacheTTL })({ logger });
3625
}
3726

38-
function makeStoreWithHook(hook) {
39-
var store = makeStore();
27+
function createStoreWithConcurrentUpdateHook(prefix, logger, hook) {
28+
const store = createStore(prefix, 0, logger);
4029
store.underlyingStore.testUpdateHook = hook;
4130
return store;
4231
}
4332

44-
describe('cached', function() {
45-
testBase.baseFeatureStoreTests(makeStore, clearTable, true);
46-
});
47-
48-
describe('uncached', function() {
49-
testBase.baseFeatureStoreTests(makeStoreWithoutCache, clearTable, false, makeStoreWithPrefix);
50-
});
51-
52-
testBase.concurrentModificationTests(makeStore, makeStoreWithHook);
33+
runPersistentFeatureStoreTests(
34+
createStore,
35+
clearAllData(client),
36+
createStoreWithConcurrentUpdateHook,
37+
);
5338
});

0 commit comments

Comments
 (0)