diff --git a/lib/routes/client-api/metrics.test.js b/lib/routes/client-api/metrics.test.js index b1c8e3cca4..abc28d7b8a 100644 --- a/lib/routes/client-api/metrics.test.js +++ b/lib/routes/client-api/metrics.test.js @@ -155,3 +155,30 @@ test('shema allow yes=', t => { t.is(value.bucket.toggles.Demo2.yes, 12); t.is(value.bucket.toggles.Demo2.no, 256); }); + +test('should set lastSeen on toggle', async t => { + t.plan(1); + const { request, stores } = getSetup(); + stores.featureToggleStore.addFeature({ name: 'toggleLastSeen' }); + await request + .post('/api/client/metrics') + .send({ + appName: 'demo', + instanceId: '1', + bucket: { + start: Date.now(), + stop: Date.now(), + toggles: { + toggleLastSeen: { + yes: 200, + no: 0, + }, + }, + }, + }) + .expect(202); + + const toggle = await stores.featureToggleStore.getFeature('toggleLastSeen'); + + t.truthy(toggle.lastSeenAt); +}); diff --git a/test/fixtures/fake-feature-toggle-store.js b/test/fixtures/fake-feature-toggle-store.js index bfbc33fd1c..c49e6e0792 100644 --- a/test/fixtures/fake-feature-toggle-store.js +++ b/test/fixtures/fake-feature-toggle-store.js @@ -26,6 +26,13 @@ module.exports = () => { addFeature: feature => _features.push(feature), getArchivedFeatures: () => Promise.resolve(_archive), addArchivedFeature: feature => _archive.push(feature), - lastSeenToggles: () => {}, + lastSeenToggles: (names = []) => { + names.forEach(name => { + const toggle = _features.find(f => f.name === name); + if (toggle) { + toggle.lastSeenAt = new Date(); + } + }); + }, }; };