138 lines
2.8 KiB
TypeScript
138 lines
2.8 KiB
TypeScript
import {
|
|
EventsFileChanger,
|
|
MetaDataFileManagerModel,
|
|
} from "../../src/core/model/meta_data_file_manager_model";
|
|
|
|
import { TriggerService } from "../../src/core/services/trigger_service";
|
|
import { TriggerType } from "../../src/features/triggers/trigger_model";
|
|
import { assert } from "../test";
|
|
abstract class TriggerTest {
|
|
abstract test(): Promise<boolean>;
|
|
}
|
|
class TriggerServiceFileOkTest extends TriggerService implements TriggerTest {
|
|
constructor() {
|
|
super(
|
|
{
|
|
type: TriggerType.FILE,
|
|
value: ["context"],
|
|
},
|
|
{
|
|
"/context/": new MetaDataFileManagerModel(
|
|
"",
|
|
"",
|
|
EventsFileChanger.create
|
|
),
|
|
},
|
|
""
|
|
);
|
|
}
|
|
async test(): Promise<boolean> {
|
|
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<boolean> {
|
|
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<boolean> {
|
|
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<boolean> {
|
|
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);
|
|
}
|
|
}
|
|
}
|