1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/test/fixtures/fake-feature-toggle-store.js
2020-12-22 11:05:00 +01:00

39 lines
1.3 KiB
JavaScript

'use strict';
module.exports = () => {
const _features = [];
const _archive = [];
return {
getFeature: name => {
const toggle = _features.find(f => f.name === name);
if (toggle) {
return Promise.resolve(toggle);
}
return Promise.reject(new Error('could not find toggle'));
},
hasFeature: name => {
const toggle = _features.find(f => f.name === name);
const archived = _archive.find(f => f.name === name);
if (toggle) {
return Promise.resolve({ name, archived: false });
}
if (archived) {
return Promise.resolve({ name, archived: true });
}
return Promise.reject();
},
getFeatures: () => Promise.resolve(_features),
addFeature: feature => _features.push(feature),
getArchivedFeatures: () => Promise.resolve(_archive),
addArchivedFeature: feature => _archive.push(feature),
lastSeenToggles: (names = []) => {
names.forEach(name => {
const toggle = _features.find(f => f.name === name);
if (toggle) {
toggle.lastSeenAt = new Date();
}
});
},
};
};