airvzxf / airvzxf/ftp-deployment-action

test(integration): no end-to-end scenario covers INPUT_FAIL_ON_DEPRECATED=true against an EOL ref

Open
#324 0 comments 0 reactions 0 assignees View on GitHub
area:tests audit pending-design test
Dominant language
Shell
Stars
37
Forks
9
Avg merge
44m
Merged PRs (30d)
47

Description

## Problem

There is no integration scenario that drives the action with `INPUT_FAIL_ON_DEPRECATED=true` AND `GITHUB_ACTION_REF=v1.3.3` (the EOL ref) AND expects the action to exit 1 with a `::error file=action.yml::` annotation. The smoke tests cover this path (smoke.sh:394-402 Test 20), but only by running the validation script in isolation — not by exercising the full action image, lftp attempt, and EXIT trap.

## Why this matters

Fail-on-deprecated is documented as "Useful for orgs with a 'no EOL versions' policy." A regression that breaks the ::error:: path (e.g., a future refactor of `emit_deprecation_warning` that silently exits 0 instead of 1 on EOL+fail-on-deprecated) would not be caught by an integration test. The smoke test runs entrypoint.sh in a container but cannot exercise the actual workflow run semantics.

## Proposed fix

Add a new scenario `13-fail-on-deprecated-e2e.sh` (or fold into existing scenario 08) that:

1. Boots vsftpd (action needs to talk to a real FTP server to reach the lftp attempt path).
2. Sets `GITHUB_ACTION_REF=v1.3.3` + `INPUT_FAIL_ON_DEPRECATED=true` in the env file.
3. Invokes the action image.
4. Asserts:
- Action exits 1 (not 0).
- Captured log contains `::error file=action.yml::`.
- Mirror did NOT run (no "Try #" lines, no "FTP UPLOADED FINISHED" banner).

Note: the action needs a "dev" VERSION baked into /app/VERSION (or whatever the local build sets) so the deprecation-warning emit doesn't short-circuit on a stale /app/VERSION check.

## Severity

LOW — smoke tests the path; missing only the image-level integration.

## Related

- #231 (open): smoke tests do not cover FTPS — same family of integration-coverage gaps
- #323 (new): INPUT_DRY_RUN end-to-end (sister gap)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.