import { SqupApi } from "../types/SqupContext"; import stableStringify from 'fast-json-stable-stringify'; export class MockSqupApi implements SqupApi { messages: string[]; constructor() { this.messages = []; } addMessage(prefix: string, message: string | null | undefined, obj?: unknown) { this.messages.push(`${prefix}: ${stableStringify(message)}${ obj === undefined ? '' : `\n${(stableStringify)(obj, { cycles : true })}` }`); } log = { debug: (message: string | null | undefined, obj?: unknown) => this.addMessage('LOG DBG', message, obj), info: (message: string | null | undefined, obj?: unknown) => this.addMessage('LOG INF', message, obj), warn: (message: string | null | undefined, obj?: unknown) => this.addMessage('LOG WRN', message, obj), error: (message: string | null | undefined, obj?: unknown) => this.addMessage('LOG ERR', message, obj), }; report = { warning: (message: string) => this.addMessage('RPT WRN', message), error: (message: string) => this.addMessage('RPT ERR', message), }; patchConfig = ( propertyName: string, propertyValue: any, encryption?: string | string[] ) => this.addMessage('PTCHCFG', null, { propertyName, propertyValue, encryption }); runtimeContext = { getRemainingTimeMs: () => 100000, }; }