Do not report required inputs without value but a default as error
This commit is contained in:
@@ -65,7 +65,7 @@ export async function validateAction(
|
||||
}
|
||||
|
||||
const missingRequiredInputs = Object.entries(actionInputs).filter(
|
||||
([inputName, input]) => input.required && !stepInputs.has(inputName)
|
||||
([inputName, input]) => input.required && !stepInputs.has(inputName) && input.default === undefined
|
||||
);
|
||||
|
||||
if (missingRequiredInputs.length > 0) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {Diagnostic, DiagnosticSeverity} from "vscode-languageserver-types";
|
||||
import {DiagnosticSeverity} from "vscode-languageserver-types";
|
||||
import {ActionInput, ActionReference} from "./action";
|
||||
import {registerLogger} from "./log";
|
||||
import {createDocument} from "./test-utils/document";
|
||||
@@ -29,6 +29,15 @@ const validationConfig: ValidationConfig = {
|
||||
}
|
||||
};
|
||||
break;
|
||||
case "actions/deploy-pages":
|
||||
inputs = {
|
||||
token: {
|
||||
required: true,
|
||||
description: "token to use",
|
||||
default: "${{ github.token }}"
|
||||
}
|
||||
};
|
||||
break;
|
||||
case "actions/cache@v1":
|
||||
inputs = {
|
||||
path: {
|
||||
@@ -73,7 +82,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
notanoption: true
|
||||
notanoption: true
|
||||
`;
|
||||
const result = await validate(createDocument("wf.yaml", input), validationConfig);
|
||||
|
||||
@@ -104,7 +113,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
version: 10
|
||||
version: 10
|
||||
`;
|
||||
const result = await validate(createDocument("wf.yaml", input), validationConfig);
|
||||
|
||||
@@ -157,6 +166,20 @@ jobs:
|
||||
]);
|
||||
});
|
||||
|
||||
it("required input with default value", async () => {
|
||||
const input = `
|
||||
on: push
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/deploy-pages@main
|
||||
`;
|
||||
const result = await validate(createDocument("wf.yaml", input), validationConfig);
|
||||
|
||||
expect(result).toEqual([]);
|
||||
});
|
||||
|
||||
it("multiple missing required inputs", async () => {
|
||||
const input = `
|
||||
on: push
|
||||
@@ -226,7 +249,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
notanoption: true
|
||||
notanoption: true
|
||||
`;
|
||||
const config = validationConfig;
|
||||
config.valueProviderConfig = {
|
||||
|
||||
Reference in New Issue
Block a user