Files
2026-08-04 00:45:50 +01:00

56 lines
1.8 KiB
Go

package persistence
import (
"testing"
"time"
"github.com/kandev/kandev/internal/testutil"
)
func TestPostgresLatestVersionMetaRoundTrip(t *testing.T) {
db := testutil.OpenIsolatedPostgres(t, testutil.PostgresDSNFromEnv(t))
if err := ensureMetaTable(db); err != nil {
t.Fatalf("ensure meta table: %v", err)
}
checkedAt := time.Unix(123, 0).UTC()
if err := WriteLatestVersion(db, "v1.2.3", "https://example.test/release", checkedAt); err != nil {
t.Fatalf("write latest version: %v", err)
}
version, url, gotCheckedAt, err := ReadLatestVersion(db)
if err != nil {
t.Fatalf("read latest version: %v", err)
}
if version != "v1.2.3" || url != "https://example.test/release" || !gotCheckedAt.Equal(checkedAt) {
t.Fatalf("meta round-trip = (%q, %q, %s)", version, url, gotCheckedAt)
}
nightlyCheckedAt := checkedAt.Add(time.Hour)
if err := WriteLatestNightlyVersion(
db,
"v1.2.4-nightly.shaabc123def456",
"https://example.test/nightly",
nightlyCheckedAt,
); err != nil {
t.Fatalf("write latest nightly version: %v", err)
}
nightlyVersion, nightlyURL, gotNightlyCheckedAt, err := ReadLatestNightlyVersion(db)
if err != nil {
t.Fatalf("read latest nightly version: %v", err)
}
if nightlyVersion != "v1.2.4-nightly.shaabc123def456" ||
nightlyURL != "https://example.test/nightly" ||
!gotNightlyCheckedAt.Equal(nightlyCheckedAt) {
t.Fatalf("nightly meta round-trip = (%q, %q, %s)", nightlyVersion, nightlyURL, gotNightlyCheckedAt)
}
version, url, gotCheckedAt, err = ReadLatestVersion(db)
if err != nil {
t.Fatalf("read stable version after nightly write: %v", err)
}
if version != "v1.2.3" || url != "https://example.test/release" || !gotCheckedAt.Equal(checkedAt) {
t.Fatalf("stable meta changed after nightly write = (%q, %q, %s)", version, url, gotCheckedAt)
}
}