Skip to content

Commit 6717b49

Browse files
Add validation to ensure at least one check is enabled
Co-authored-by: joshjohanning <[email protected]>
1 parent 71e2f72 commit 6717b49

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

__tests__/action.test.sh

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,70 @@ test_comment_id_logic() {
270270
fi
271271
}
272272

273+
# Test Suite: Input Validation
274+
test_input_validation() {
275+
echo ""
276+
echo -e "${YELLOW}Testing: Input Validation${NC}"
277+
echo "========================================"
278+
279+
# Test that at least one check must be enabled
280+
# Simulate both checks disabled (this should fail)
281+
CHECK_COMMITS="false"
282+
CHECK_PR="false"
283+
284+
if [ "$CHECK_COMMITS" = "false" ] && [ "$CHECK_PR" = "false" ]; then
285+
TESTS_RUN=$((TESTS_RUN + 1))
286+
TESTS_PASSED=$((TESTS_PASSED + 1))
287+
echo -e "${GREEN}${NC} Both checks disabled should be detected as invalid"
288+
else
289+
TESTS_RUN=$((TESTS_RUN + 1))
290+
TESTS_FAILED=$((TESTS_FAILED + 1))
291+
echo -e "${RED}${NC} Both checks disabled should be detected as invalid"
292+
fi
293+
294+
# Test check-commits enabled, check-pr disabled (valid)
295+
CHECK_COMMITS="true"
296+
CHECK_PR="false"
297+
298+
if [ "$CHECK_COMMITS" = "true" ] || [ "$CHECK_PR" = "true" ]; then
299+
TESTS_RUN=$((TESTS_RUN + 1))
300+
TESTS_PASSED=$((TESTS_PASSED + 1))
301+
echo -e "${GREEN}${NC} Only check-commits enabled should be valid"
302+
else
303+
TESTS_RUN=$((TESTS_RUN + 1))
304+
TESTS_FAILED=$((TESTS_FAILED + 1))
305+
echo -e "${RED}${NC} Only check-commits enabled should be valid"
306+
fi
307+
308+
# Test check-commits disabled, check-pr enabled (valid)
309+
CHECK_COMMITS="false"
310+
CHECK_PR="true"
311+
312+
if [ "$CHECK_COMMITS" = "true" ] || [ "$CHECK_PR" = "true" ]; then
313+
TESTS_RUN=$((TESTS_RUN + 1))
314+
TESTS_PASSED=$((TESTS_PASSED + 1))
315+
echo -e "${GREEN}${NC} Only check-pull-request enabled should be valid"
316+
else
317+
TESTS_RUN=$((TESTS_RUN + 1))
318+
TESTS_FAILED=$((TESTS_FAILED + 1))
319+
echo -e "${RED}${NC} Only check-pull-request enabled should be valid"
320+
fi
321+
322+
# Test both checks enabled (valid)
323+
CHECK_COMMITS="true"
324+
CHECK_PR="true"
325+
326+
if [ "$CHECK_COMMITS" = "true" ] || [ "$CHECK_PR" = "true" ]; then
327+
TESTS_RUN=$((TESTS_RUN + 1))
328+
TESTS_PASSED=$((TESTS_PASSED + 1))
329+
echo -e "${GREEN}${NC} Both checks enabled should be valid"
330+
else
331+
TESTS_RUN=$((TESTS_RUN + 1))
332+
TESTS_FAILED=$((TESTS_FAILED + 1))
333+
echo -e "${RED}${NC} Both checks enabled should be valid"
334+
fi
335+
}
336+
273337
# Run all tests
274338
main() {
275339
echo "========================================"
@@ -283,6 +347,7 @@ main() {
283347
test_short_sha
284348
test_env_checks
285349
test_comment_id_logic
350+
test_input_validation
286351

287352
# Print summary
288353
echo ""

action.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ runs:
5555
fi
5656
done
5757
58+
# validate that at least one check is enabled
59+
if [ "${{ inputs.check-commits }}" = "false" ] && [ "${{ inputs.check-pull-request }}" = "false" ]; then
60+
echo "::error title=No checks enabled::At least one of 'check-commits' or 'check-pull-request' must be set to true"
61+
exit 1
62+
fi
63+
5864
# have to do some hocus pocus since this isn't a full javascript action
5965
main="${GITHUB_ACTION_PATH}/dist/index.js"
6066
echo "::debug::main.js script location: $main"

0 commit comments

Comments
 (0)