diff --git a/actions-languageservice/src/validate.expressions.test.ts b/actions-languageservice/src/validate.expressions.test.ts index b914ec9..9157a0b 100644 --- a/actions-languageservice/src/validate.expressions.test.ts +++ b/actions-languageservice/src/validate.expressions.test.ts @@ -306,7 +306,7 @@ jobs: }); }); - describe("multi-line strings", () => { + describe("multi-line strings warnings", () => { it("indented |", async () => { const input = `on: push jobs: @@ -428,6 +428,124 @@ jobs: }); }); + describe("multi-line strings errors", () => { + it("indented |", async () => { + const input = `on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - run: | + first line + test \${{ fromJSON2('') }} + test2`; + const result = await validate(createDocument("wf.yaml", input)); + + expect(result).toEqual([ + { + message: "Unrecognized function: 'fromJSON2'", + range: { + end: { + character: 35, + line: 7 + }, + start: { + character: 15, + line: 7 + } + } + } + ]); + }); + + it("indented |+", async () => { + const input = `on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - run: |+ + first line + test \${{ fromJSON2('') }} + test2`; + const result = await validate(createDocument("wf.yaml", input)); + + expect(result).toEqual([ + { + message: "Unrecognized function: 'fromJSON2'", + range: { + end: { + character: 35, + line: 7 + }, + start: { + character: 15, + line: 7 + } + } + } + ]); + }); + + it("indented >", async () => { + const input = `on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - run: > + first line + test \${{ fromJSON2('') }} + test2`; + const result = await validate(createDocument("wf.yaml", input)); + + expect(result).toEqual([ + { + message: "Unrecognized function: 'fromJSON2'", + range: { + end: { + character: 35, + line: 7 + }, + start: { + character: 15, + line: 7 + } + } + } + ]); + }); + + it("indented >+", async () => { + const input = `on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - run: >+ + first line + test \${{ fromJSON2('') }} + test2`; + const result = await validate(createDocument("wf.yaml", input)); + + expect(result).toEqual([ + { + message: "Unrecognized function: 'fromJSON2'", + range: { + end: { + character: 35, + line: 7 + }, + start: { + character: 15, + line: 7 + } + } + } + ]); + }); + }); + describe("matrix context", () => { it("reference within a matrix job", async () => { const input = ` diff --git a/actions-languageservice/src/validate.ts b/actions-languageservice/src/validate.ts index 8d2938e..d913a26 100644 --- a/actions-languageservice/src/validate.ts +++ b/actions-languageservice/src/validate.ts @@ -209,8 +209,6 @@ async function validateExpression( severity: DiagnosticSeverity.Warning, range: mapRange(expression.range) }); - } else { - throw e; } } }