Validate context expressions
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user