Files
languageservices/actions-languageserver/src/test-utils/workflow-context.ts
T

28 lines
895 B
TypeScript
Raw Normal View History

2022-12-20 17:34:03 -05:00
import {WorkflowContext} from "@github/actions-languageservice/context/workflow-context";
import {convertWorkflowTemplate, parseWorkflow, TraceWriter} from "@github/actions-workflow-parser";
const nullTrace: TraceWriter = {
info: x => {},
verbose: x => {},
error: x => {}
};
export function createWorkflowContext(workflow: string, job?: string, stepIndex?: number): WorkflowContext {
const parsed = parseWorkflow("test.yaml", [{name: "test.yaml", content: workflow}], nullTrace);
if (!parsed.value) {
throw new Error("Failed to parse workflow");
}
const template = convertWorkflowTemplate(parsed.context, parsed.value);
const context: WorkflowContext = {uri: "test.yaml", template};
if (job) {
context.job = template.jobs.find(j => j.id.value === job);
}
2023-01-24 13:04:40 -05:00
if (stepIndex !== undefined) {
2022-12-20 17:34:03 -05:00
context.step = context.job?.steps[stepIndex];
}
return context;
}