import { EventsFileChanger, MetaDataFileManagerModel } from "../../src/core/models/meta_data_file_manager_model"; import { TriggerService } from "../../src/core/services/trigger_service"; import { TriggerType } from "../../src/features/triggers/models/trigger_database_model"; import { assert } from "../test"; abstract class TriggerTest { abstract test(): Promise; } class TriggerServiceFileOkTest extends TriggerService implements TriggerTest { constructor() { super( { type: TriggerType.FILE, value: ["context"], }, { "/context/": new MetaDataFileManagerModel("", "", EventsFileChanger.create), }, "" ); } async test(): Promise { const r = await this.call(); return r.isSuccess(); } } class TriggerServiceFileErrorTest extends TriggerService implements TriggerTest { constructor() { super( { type: TriggerType.FILE, value: ["123"], }, { "/ctx/": new MetaDataFileManagerModel("", "", EventsFileChanger.create), "/context/": new MetaDataFileManagerModel("", "", EventsFileChanger.create), }, "" ); } async test(): Promise { const r = await this.call(); return r.isFailure(); } } class TriggerServiceProcessOkTest extends TriggerService implements TriggerTest { constructor() { super( { type: TriggerType.PROCESS, value: [ `function main(){ return true } main()`, ], }, { "/context/": new MetaDataFileManagerModel("", "", EventsFileChanger.create), }, "" ); } async test(): Promise { const r = await this.call(); return r.isSuccess(); } } class TriggerServiceProcessErrorTest extends TriggerService implements TriggerTest { constructor() { super( { type: TriggerType.PROCESS, value: [ `function main(){ return true } `, ], }, { "/context/": new MetaDataFileManagerModel("", "", EventsFileChanger.create), }, "" ); } async test(): Promise { const r = await this.call(); return r.isFailure(); } } export class TriggerServiceTest { public async test() { const tests: TriggerTest[] = [ new TriggerServiceFileOkTest(), new TriggerServiceFileErrorTest(), new TriggerServiceProcessOkTest(), new TriggerServiceProcessErrorTest(), ]; for await (const el of tests) { assert((await el.test()) === true, el.constructor.name); } } }