80 lines
1.7 KiB
Bash
80 lines
1.7 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
setup() {
|
|
export CONF_FILE=$(mktemp)
|
|
export CI_CONF_FILE="$CONF_FILE"
|
|
}
|
|
|
|
teardown() {
|
|
rm -f "$CONF_FILE"
|
|
}
|
|
|
|
@test "missing config file → exit 1" {
|
|
export CI_CONF_FILE="/nonexistent/path/$(date +%s).conf"
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" == *"ERROR"* ]]
|
|
}
|
|
|
|
@test "empty value in config → exit 1" {
|
|
cat > "$CONF_FILE" <<EOF
|
|
SOME_KEY=
|
|
EOF
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" == *"empty"* ]]
|
|
}
|
|
|
|
@test "invalid URL in config → exit 1" {
|
|
cat > "$CONF_FILE" <<EOF
|
|
API_URL=not-a-url
|
|
EOF
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" == *"URL"* ]]
|
|
}
|
|
|
|
@test "missing GITEA_TOKEN secret → exit 1" {
|
|
cat > "$CONF_FILE" <<EOF
|
|
SOME_KEY=ok
|
|
EOF
|
|
unset GITEA_TOKEN
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" == *"GITEA_TOKEN"* ]]
|
|
}
|
|
|
|
@test "missing GIT_PAGES_PUBLISH_TOKEN secret → exit 1" {
|
|
cat > "$CONF_FILE" <<EOF
|
|
SOME_KEY=ok
|
|
EOF
|
|
export GITEA_TOKEN="sometoken"
|
|
unset GIT_PAGES_PUBLISH_TOKEN
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 1 ]
|
|
[[ "$output" == *"GIT_PAGES_PUBLISH_TOKEN"* ]]
|
|
}
|
|
|
|
@test "valid config and all secrets → exit 0" {
|
|
cat > "$CONF_FILE" <<EOF
|
|
API_URL=https://example.com
|
|
ANOTHER=https://test.fi
|
|
EOF
|
|
export GITEA_TOKEN="sometoken"
|
|
export GIT_PAGES_PUBLISH_TOKEN="sometoken"
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 0 ]
|
|
}
|
|
|
|
@test "comment and blank lines are ignored → exit 0" {
|
|
cat > "$CONF_FILE" <<EOF
|
|
# this is a comment
|
|
|
|
VALID_URL=https://example.com
|
|
EOF
|
|
export GITEA_TOKEN="sometoken"
|
|
export GIT_PAGES_PUBLISH_TOKEN="sometoken"
|
|
run bash scripts/ci-validate.sh
|
|
[ "$status" -eq 0 ]
|
|
}
|