From 99fceee23bc53c7287d5be42523db158370e642d Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Mon, 5 Dec 2022 15:23:28 -0500 Subject: [PATCH] Ensure `inputs` is defined --- .../src/complete.expressions.test.ts | 22 +++++++++++++++++++ .../src/context-providers/inputs.ts | 3 +++ 2 files changed, 25 insertions(+) diff --git a/actions-languageservice/src/complete.expressions.test.ts b/actions-languageservice/src/complete.expressions.test.ts index c0b4167..6b95c59 100644 --- a/actions-languageservice/src/complete.expressions.test.ts +++ b/actions-languageservice/src/complete.expressions.test.ts @@ -240,4 +240,26 @@ jobs: expect(result.map(x => x.label)).toEqual(["another-name", "name"]); }); + + it("no inputs", async () => { + const input = ` +on: + workflow_dispatch: +jobs: + a: + outputs: + build_id: my-build-id + runs-on: ubuntu-latest + steps: + - run: echo hello a + b: + needs: [a] + runs-on: ubuntu-latest + steps: + - run: echo "hello \${{ inputs.| +`; + const result = await complete(...getPositionFromCursor(input), undefined, contextProviderConfig); + + expect(result).toEqual([]); + }); }); diff --git a/actions-languageservice/src/context-providers/inputs.ts b/actions-languageservice/src/context-providers/inputs.ts index 0d5a951..167669f 100644 --- a/actions-languageservice/src/context-providers/inputs.ts +++ b/actions-languageservice/src/context-providers/inputs.ts @@ -13,6 +13,9 @@ export function getInputsContext(workflowContext: WorkflowContext): data.Diction } const inputs = event.inputs; + if (!inputs) { + return d; + } for (const inputName of Object.keys(inputs)) { const input = inputs[inputName]; switch (input.type) {