Validate context expressions

This commit is contained in:
Christopher Schleiden
2023-04-04 16:40:04 -07:00
parent 45a665690b
commit 6ee228549a
2 changed files with 22 additions and 2 deletions
@@ -56,6 +56,25 @@ describe("validation visitor", () => {
]);
});
it("invalid context access as index", () => {
expect(useVisitor("github[github.foo]", ["github"])).toEqual([
{
message: "Context access might be invalid: foo",
range: {
end: {
column: 17,
line: 0
},
start: {
column: 7,
line: 0
}
},
severity: "warning"
}
]);
});
it("invalid nested context access", () => {
expect(useVisitor("github.repo.name", ["github"])).toEqual([
{
@@ -1,4 +1,4 @@
import {DescriptionDictionary} from "@actions/expressions/.";
import {DescriptionDictionary} from "@actions/expressions";
import {
Binary,
ContextAccess,
@@ -76,7 +76,8 @@ export class ValidationVisitor implements ExprVisitor<void> {
while (i) {
if (i instanceof IndexAccess) {
if (!(i.index instanceof Literal)) {
// Cannot validate
// Not a literal, validate independently
this._validate(i.index);
return;
}
s.push(i.index.literal);