package db
import (
"context"
"testing"
)
func TestEnsureUser(t *testing.T) {
s, _, cleanup := newTestStore(t)
defer cleanup()
ctx := context.Background()
id, err := s.EnsureUser(ctx, "bigbes")
if err != nil {
t.Fatalf("ensure user (insert): %v", err)
}
if id == 0 {
t.Fatal("expected a non-zero user id")
}
// Idempotent: a second call for the same username returns the same id.
id2, err := s.EnsureUser(ctx, "bigbes")
if err != nil {
t.Fatalf("ensure user (upsert): %v", err)
}
if id2 != id {
t.Fatalf("ensure user id changed: got %d, want %d", id2, id)
}
// A different username gets its own row.
other, err := s.EnsureUser(ctx, "someone")
if err != nil {
t.Fatalf("ensure other user: %v", err)
}
if other == id {
t.Fatalf("distinct username reused id %d", id)
}
}