UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

90 lines 2.73 kB
import createStores from '../../../../../test/fixtures/store.js'; import EventEmitter from 'events'; import getLogger from '../../../../../test/fixtures/no-logger.js'; import { LastSeenService } from '../last-seen-service.js'; import { vi } from 'vitest'; function initLastSeenService(flagEnabled = true) { const stores = createStores(); const eventBus = new EventEmitter(); eventBus.emit = vi.fn(); const config = { eventBus, getLogger, flagResolver: { isEnabled: () => { return flagEnabled; }, }, }; const lastSeenService = new LastSeenService({ lastSeenStore: stores.lastSeenStore, }, config); return { lastSeenService, featureToggleStore: stores.featureToggleStore, lastSeenStore: stores.lastSeenStore, }; } test('should not add duplicates per feature/environment', async () => { const { lastSeenService, featureToggleStore, lastSeenStore } = initLastSeenService(false); const lastSeenSpy = vi.spyOn(lastSeenStore, 'setLastSeen'); lastSeenService.updateLastSeen([ { featureName: 'myFeature', environment: 'development', yes: 1, no: 0, appName: 'test', timestamp: new Date(), }, ]); lastSeenService.updateLastSeen([ { featureName: 'myFeature', environment: 'development', yes: 1, no: 0, appName: 'test', timestamp: new Date(), }, ]); await lastSeenService.store(); expect(lastSeenSpy).toHaveBeenCalledWith([ { environment: 'development', featureName: 'myFeature', }, ]); }); test('should call last seen at store with correct data', async () => { const { lastSeenService, lastSeenStore, featureToggleStore } = initLastSeenService(true); lastSeenService.updateLastSeen([ { featureName: 'myFeature', environment: 'development', yes: 1, no: 0, appName: 'test', timestamp: new Date(), }, ]); lastSeenService.updateLastSeen([ { featureName: 'myFeature', environment: 'development', yes: 1, no: 0, appName: 'test', timestamp: new Date(), }, ]); lastSeenStore.setLastSeen = vi.fn(); await lastSeenService.store(); expect(lastSeenStore.setLastSeen).toHaveBeenCalledWith([ { environment: 'development', featureName: 'myFeature', }, ]); }); //# sourceMappingURL=last-seen-service.test.js.map