testeranto
Version:
the AI powered BDD test framework for typescript projects
91 lines (84 loc) • 2.21 kB
text/typescript
/* eslint-disable @typescript-eslint/no-empty-object-type */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Ibdd_in_any, Ibdd_out_any, ITestSpecification } from "../../CoreTypes";
import { BaseBuilder } from "../basebuilder";
import {
ISuiteKlasser,
IGivenKlasser,
IWhenKlasser,
IThenKlasser,
} from "../types";
import { ITTestResourceRequest } from "..";
/**
* Concrete implementation of BaseBuilder for testing purposes only
*/
export class MockBaseBuilder<
I extends Ibdd_in_any,
O extends Ibdd_out_any,
SuiteExtensions = {},
GivenExtensions = {},
WhenExtensions = {},
ThenExtensions = {}
> extends BaseBuilder<
I,
O,
SuiteExtensions,
GivenExtensions,
WhenExtensions,
ThenExtensions
> {
public summary: Record<string, any> = {};
constructor(
input: I["iinput"],
suitesOverrides: Record<
keyof SuiteExtensions,
ISuiteKlasser<I, O>
> = {} as any,
givenOverrides: Record<keyof GivenExtensions, IGivenKlasser<I>> = {} as any,
whenOverrides: Record<keyof WhenExtensions, IWhenKlasser<I>> = {} as any,
thenOverrides: Record<keyof ThenExtensions, IThenKlasser<I>> = {} as any,
testResourceRequirement: ITTestResourceRequest = { ports: 0 },
testSpecification: ITestSpecification<I, O> = () => []
) {
super(
input,
suitesOverrides,
givenOverrides,
whenOverrides,
thenOverrides,
testResourceRequirement,
testSpecification
);
}
/**
* Simplified version for testing that doesn't actually run tests
*/
public async testRun(puppetMaster: any): Promise<any> {
try {
this.summary = {
[puppetMaster.testResourceConfiguration.name]: {
typeErrors: 0,
staticErrors: 0,
runTimeError: "",
prompt: "",
failingFeatures: {},
},
};
return {
failed: false,
fails: 0,
artifacts: this.artifacts,
features: [],
};
} catch (error) {
console.error("Test run failed:", error);
return {
failed: true,
fails: 1,
artifacts: this.artifacts,
features: [],
error: error.message
};
}
}
}