newdrive/internal/application/system_test.go
Elijah 077cf7601a
Some checks failed
CI / Backend (push) Failing after 4s
CI / Frontend (push) Successful in 11s
CI / Contracts and repository policy (push) Failing after 5s
CI / Container (push) Has been skipped
Initial phase 1 baseline implementation
2026-07-16 19:14:01 -07:00

44 lines
1.1 KiB
Go

package application
import (
"context"
"errors"
"testing"
)
type systemRepositoryStub struct {
healthErr error
ownerExists bool
ownerErr error
}
func (s systemRepositoryStub) DatabaseHealth(context.Context) error {
return s.healthErr
}
func (s systemRepositoryStub) OwnerExists(context.Context) (bool, error) {
return s.ownerExists, s.ownerErr
}
func TestSystemServiceReadinessPropagatesDatabaseFailure(t *testing.T) {
t.Parallel()
want := errors.New("database unavailable")
service := NewSystemService(systemRepositoryStub{healthErr: want}, "test")
if err := service.Readiness(context.Background()); !errors.Is(err, want) {
t.Fatalf("Readiness error = %v, want wrapped %v", err, want)
}
}
func TestSystemServiceSetupStatusUsesPersistentOwnerState(t *testing.T) {
t.Parallel()
service := NewSystemService(systemRepositoryStub{ownerExists: true}, "test")
status, err := service.SetupStatus(context.Background())
if err != nil {
t.Fatalf("SetupStatus returned an error: %v", err)
}
if !status.Initialized || status.Phase != "phase-1" || status.Version != "test" {
t.Fatalf("unexpected setup status: %#v", status)
}
}