diff --git a/languageserver/src/test-utils/workflow-context.ts b/languageserver/src/test-utils/workflow-context.ts index 2893bda..edde697 100644 --- a/languageserver/src/test-utils/workflow-context.ts +++ b/languageserver/src/test-utils/workflow-context.ts @@ -17,7 +17,7 @@ export async function createWorkflowContext( if (!parsed.value) { throw new Error("Failed to parse workflow"); } - const template = await convertWorkflowTemplate("test.yaml", parsed.context, parsed.value); + const template = await convertWorkflowTemplate(parsed.context, parsed.value); const context: WorkflowContext = {uri: "test.yaml", template}; if (job) { diff --git a/languageservice/src/complete.test.ts b/languageservice/src/complete.test.ts index 84abd19..55ab096 100644 --- a/languageservice/src/complete.test.ts +++ b/languageservice/src/complete.test.ts @@ -5,9 +5,15 @@ import {registerLogger} from "./log"; import {getPositionFromCursor} from "./test-utils/cursor-position"; import {TestLogger} from "./test-utils/logger"; import {ValueProviderConfig, ValueProviderKind} from "./value-providers/config"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; registerLogger(new TestLogger()); +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); + describe("completion", () => { it("runs-on", async () => { const input = "on: push\njobs:\n build:\n runs-on: |"; diff --git a/languageservice/src/document-links.test.ts b/languageservice/src/document-links.test.ts index 576c0de..fe5fe34 100644 --- a/languageservice/src/document-links.test.ts +++ b/languageservice/src/document-links.test.ts @@ -1,5 +1,11 @@ import {documentLinks} from "./document-links"; import {createDocument} from "./test-utils/document"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; + +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); describe("documentLinks", () => { it("no links without actions", async () => { diff --git a/languageservice/src/hover.expressions.test.ts b/languageservice/src/hover.expressions.test.ts index 6b6bc21..c8f7235 100644 --- a/languageservice/src/hover.expressions.test.ts +++ b/languageservice/src/hover.expressions.test.ts @@ -5,6 +5,7 @@ import {hover} from "./hover"; import {registerLogger} from "./log"; import {getPositionFromCursor} from "./test-utils/cursor-position"; import {TestLogger} from "./test-utils/logger"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; const contextProviderConfig: ContextProviderConfig = { getContext: async (context: string) => { @@ -34,6 +35,11 @@ const contextProviderConfig: ContextProviderConfig = { registerLogger(new TestLogger()); +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); + describe("hover.expressions", () => { it("context access", async () => { const input = `on: push diff --git a/languageservice/src/hover.reusable-workflow.test.ts b/languageservice/src/hover.reusable-workflow.test.ts index 31f9154..fecbe25 100644 --- a/languageservice/src/hover.reusable-workflow.test.ts +++ b/languageservice/src/hover.reusable-workflow.test.ts @@ -1,6 +1,12 @@ import {hover} from "./hover"; import {testHoverConfig} from "./hover.test"; import {getPositionFromCursor} from "./test-utils/cursor-position"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; + +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); describe("hover.reusable-workflow", () => { it("hover on job input with description", async () => { diff --git a/languageservice/src/hover.test.ts b/languageservice/src/hover.test.ts index a7c4064..cc72769 100644 --- a/languageservice/src/hover.test.ts +++ b/languageservice/src/hover.test.ts @@ -3,6 +3,7 @@ import {StringToken} from "@github/actions-workflow-parser/templates/tokens/stri import {DescriptionProvider, hover, HoverConfig} from "./hover"; import {getPositionFromCursor} from "./test-utils/cursor-position"; import {testFileProvider} from "./test-utils/test-file-provider"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; export function testHoverConfig(tokenValue: string, tokenKey: string, description?: string) { return { @@ -22,6 +23,11 @@ export function testHoverConfig(tokenValue: string, tokenKey: string, descriptio } satisfies HoverConfig; } +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); + describe("hover", () => { it("on a key", async () => { const input = `o|n: push diff --git a/languageservice/src/test-utils/test-workflow-context.ts b/languageservice/src/test-utils/test-workflow-context.ts index 3aa8d09..86624d1 100644 --- a/languageservice/src/test-utils/test-workflow-context.ts +++ b/languageservice/src/test-utils/test-workflow-context.ts @@ -18,7 +18,7 @@ export async function testGetWorkflowContext(input: string): Promise { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); + const validationConfig: ValidationConfig = { fetchActionMetadata: async (ref: ActionReference) => { let metadata: ActionMetadata | undefined = undefined; diff --git a/languageservice/src/validate.expressions.test.ts b/languageservice/src/validate.expressions.test.ts index 9d1bc3a..1b4b994 100644 --- a/languageservice/src/validate.expressions.test.ts +++ b/languageservice/src/validate.expressions.test.ts @@ -5,9 +5,16 @@ import {registerLogger} from "./log"; import {createDocument} from "./test-utils/document"; import {TestLogger} from "./test-utils/logger"; import {validate, ValidationConfig} from "./validate"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; registerLogger(new TestLogger()); + +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); + describe("expression validation", () => { it("access invalid context field", async () => { const result = await validate( diff --git a/languageservice/src/validate.test.ts b/languageservice/src/validate.test.ts index 05b8514..03e2be2 100644 --- a/languageservice/src/validate.test.ts +++ b/languageservice/src/validate.test.ts @@ -2,6 +2,12 @@ import {Diagnostic, DiagnosticSeverity} from "vscode-languageserver-types"; import {createDocument} from "./test-utils/document"; import {validate} from "./validate"; import {defaultValueProviders} from "./value-providers/default"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; + +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); describe("validation", () => { it("valid workflow", async () => { diff --git a/languageservice/src/validate.workflow-references.test.ts b/languageservice/src/validate.workflow-references.test.ts index 48614cb..12070b8 100644 --- a/languageservice/src/validate.workflow-references.test.ts +++ b/languageservice/src/validate.workflow-references.test.ts @@ -1,7 +1,13 @@ import {createDocument} from "./test-utils/document"; import {testFileProvider} from "./test-utils/test-file-provider"; +import {clearParsedCache, clearWorkflowTemplateCache} from "./utils/workflow-cache"; import {validate} from "./validate"; +beforeEach(() => { + clearWorkflowTemplateCache(); + clearParsedCache(); +}); + describe("workflow references validation", () => { it("invalid workflow reference", async () => { const input = `