implemented 03-gitea-client.md: added Gitea API client for commit statuses, status mapping, and extensive tests

This commit is contained in:
Michael Hoennig
2026-07-07 07:34:18 +02:00
parent a427665ce8
commit ae3ae7aa04
7 changed files with 528 additions and 1 deletions
@@ -0,0 +1,33 @@
package de.hoennig.gittally.gitea
import de.hoennig.gittally.build.BuildStatus
import io.kotest.core.spec.style.FunSpec
import io.kotest.matchers.nulls.shouldBeNull
import io.kotest.matchers.shouldBe
class GiteaStateMappingTest :
FunSpec({
test("maps each build status to its Gitea state") {
BuildStatus.SUCCESS.toGiteaState() shouldBe "success"
BuildStatus.FAILED.toGiteaState() shouldBe "failure"
BuildStatus.INTERRUPTED.toGiteaState() shouldBe "failure"
BuildStatus.CANCELLED.toGiteaState() shouldBe "failure"
BuildStatus.PENDING.toGiteaState() shouldBe "pending"
BuildStatus.RUNNING.toGiteaState() shouldBe "pending"
}
test("maps Gitea states back to build statuses") {
buildStatusFromGiteaState("success") shouldBe BuildStatus.SUCCESS
buildStatusFromGiteaState("failure") shouldBe BuildStatus.FAILED
buildStatusFromGiteaState("error") shouldBe BuildStatus.FAILED
buildStatusFromGiteaState("warning") shouldBe BuildStatus.FAILED
buildStatusFromGiteaState("pending") shouldBe BuildStatus.RUNNING
}
test("maps unknown Gitea states to null") {
buildStatusFromGiteaState("").shouldBeNull()
buildStatusFromGiteaState("deleted").shouldBeNull()
buildStatusFromGiteaState("SUCCESS").shouldBeNull()
}
})