import { AdapterResponse, DataAdapterKeyPath, IDataAdapter, } from '../interfaces/IDataAdapter'; export default class TestDataAdapter implements IDataAdapter { private store: Record = {}; get(key: string): Promise { return Promise.resolve({ result: this.store[key], time: Date.now() }); } set(key: string, value: string, time?: number | undefined): Promise { this.store[key] = value; return Promise.resolve(); } initialize(): Promise { return Promise.resolve(); } shutdown(): Promise { this.store = {}; return Promise.resolve(); } } export class TestSyncingDataAdapter extends TestDataAdapter { private keysToSync: DataAdapterKeyPath[] | undefined; constructor(keysToSync?: DataAdapterKeyPath[]) { super(); this.keysToSync = keysToSync; } supportsPollingUpdatesFor(key): boolean { if (!this.keysToSync) { return false; } return this.keysToSync.includes(key); } } export class TestObjectDataAdapter { public store: Record = {}; get(key: string): Promise { return Promise.resolve({ result: this.store[key], time: Date.now() }); } set(key: string, value: string, time?: number | undefined): Promise { if (key.includes(DataAdapterKeyPath.V1Rulesets) || (key.includes(DataAdapterKeyPath.IDLists))) { this.store[key] = JSON.parse(value); } else { this.store[key] = value; } return Promise.resolve(); } initialize(): Promise { return Promise.resolve(); } shutdown(): Promise { this.store = {}; return Promise.resolve(); } }