Files
gitea-ci-library/tests/publish-git-pages.bats
T
moilanik a039e6637e
CI Feature / Load example-gitea-env.conf to pipeline env (push) Successful in 19s
acc-tests Cucumber test report
CI Feature / Cucumber tests (push) Failing after 2m11s
unit-tests Bats test report
CI Feature / Bats tests (push) Failing after 7m10s
CI Feature / Report Summary (push) Successful in 5s
fix fragile tests
2026-06-20 13:34:03 +03:00

95 lines
2.6 KiB
Bash

#!/usr/bin/env bats
setup() {
source tests/helpers/mock-api.sh
export GITEA_API_URL="http://localhost:18080"
export GIT_PAGES_URL="http://localhost:18080"
export GIT_PAGES_PUBLISH_TOKEN="publish-token-abc"
export GITHUB_REPOSITORY="test-owner/test-repo"
export GITHUB_SHA="abc123def456789012345678901234567890abcd"
REPORT_DIR="reports/abc123de/unit-tests"
mkdir -p "$REPORT_DIR"
echo "<html>test</html>" > "$REPORT_DIR/index.html"
}
teardown() {
mock_stop
rm -rf "reports/abc123de"
}
@test "missing suite_path argument → exit 1" {
run bash scripts/publish-git-pages.sh ""
[ "$status" -eq 1 ]
[[ "$output" == *"ERROR"* ]]
}
@test "missing GITEA_API_URL → exit 1" {
unset GITEA_API_URL
run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 1 ]
[[ "$output" == *"GITEA_API_URL"* ]]
}
@test "missing GIT_PAGES_URL → exit 1" {
unset GIT_PAGES_URL
run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 1 ]
[[ "$output" == *"GIT_PAGES_URL"* ]]
}
@test "missing GIT_PAGES_PUBLISH_TOKEN → exit 1" {
unset GIT_PAGES_PUBLISH_TOKEN
run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 1 ]
[[ "$output" == *"GIT_PAGES_PUBLISH_TOKEN"* ]]
}
@test "missing GITHUB_REPOSITORY → exit 1" {
unset GITHUB_REPOSITORY
run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 1 ]
[[ "$output" == *"GITHUB_REPOSITORY"* ]]
}
@test "suite path is not a directory → exit 1" {
run bash scripts/publish-git-pages.sh "nonexistent"
[ "$status" -eq 1 ]
[[ "$output" == *"not a directory"* ]]
}
@test "valid publish returns report base URL" {
mock_set_sequence '[
{"code":200,"body":"published"}
]'
mock_start
export GIT_PAGES_URL="http://localhost:${MOCK_PORT}"
run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 0 ]
[[ "$output" == "${GIT_PAGES_URL}/test-owner/test-repo/reports/abc123de" ]]
}
@test "publish with suite subpath" {
mkdir -p "reports/abc123de/sub/suite"
echo "sub" > "reports/abc123de/sub/suite/result.html"
mock_set_sequence '[
{"code":200,"body":"published"}
]'
mock_start
export GIT_PAGES_URL="http://localhost:${MOCK_PORT}"
run bash scripts/publish-git-pages.sh "sub/suite"
[ "$status" -eq 0 ]
[[ "$output" == "${GIT_PAGES_URL}/test-owner/test-repo/reports/abc123de" ]]
}
@test "git-pages returns HTTP 500 → exit 1" {
mock_set_sequence '[
{"code":500,"body":"internal error"}
]'
mock_start
export GIT_PAGES_URL="http://localhost:${MOCK_PORT}"
run bash scripts/publish-git-pages.sh "unit-tests"
[ "$status" -eq 1 ]
[[ "$output" == *"500"* ]]
}