138 lines
2.8 KiB
TypeScript
138 lines
2.8 KiB
TypeScript
![]() |
import {
|
||
|
EventsFileChanger,
|
||
|
MetaDataFileManagerModel,
|
||
|
} from "../../src/core/model/meta_data_file_manager_model.js";
|
||
|
import { TriggerType } from "../../src/core/model/process_model.js";
|
||
|
import { TriggerService } from "../../src/core/services/trigger_service.js";
|
||
|
import { assert } from "../test.js";
|
||
|
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);
|
||
|
}
|
||
|
}
|
||
|
}
|