1
0
forked from baron/baron-sso

chore: snapshot local state before dev merge

This commit is contained in:
2026-06-17 21:25:42 +09:00
parent b2808759d2
commit 49560e8a8c
107 changed files with 8958 additions and 939 deletions

View File

@@ -54,6 +54,36 @@ func TestUserRepository(t *testing.T) {
assert.Equal(t, "010-1234-5678", found.Phone)
})
t.Run("Create and Update preserve top-level user grade for compatibility", func(t *testing.T) {
testDB.Exec("DELETE FROM user_login_ids")
testDB.Exec("DELETE FROM users WHERE email IN ?", []string{"grade-create@example.com", "grade-update@example.com"})
created := &domain.User{
Email: "grade-create@example.com",
Name: "Grade Create",
Role: domain.RoleUser,
Grade: "책임",
}
require.NoError(t, repo.Create(ctx, created))
found, err := repo.FindByEmail(ctx, created.Email)
require.NoError(t, err)
require.Equal(t, "책임", found.Grade)
updated := &domain.User{
ID: uuid.NewString(),
Email: "grade-update@example.com",
Name: "Grade Update",
Role: domain.RoleUser,
Grade: "수석",
}
require.NoError(t, repo.Update(ctx, updated))
found, err = repo.FindByEmail(ctx, updated.Email)
require.NoError(t, err)
require.Equal(t, "수석", found.Grade)
})
t.Run("Update preserves archived email reservation", func(t *testing.T) {
testDB.Exec("DELETE FROM user_login_ids")
testDB.Exec("DELETE FROM users")
@@ -273,6 +303,45 @@ func TestUserRepository_ListIncludesAdditionalTenantAppointments(t *testing.T) {
assert.Equal(t, int64(2), counts[additionalTenant.ID])
}
func TestUserRepository_ListIncludesAdditionalTenantAppointmentsBySlug(t *testing.T) {
repo := NewUserRepository(testDB)
ctx := context.Background()
require.NoError(t, testDB.Exec("DELETE FROM user_login_ids").Error)
require.NoError(t, testDB.Exec("DELETE FROM users").Error)
primaryTenant := createUserRepositoryTestTenant(t, "repo-private-primary-tenant")
visibleTenant := createUserRepositoryTestTenant(t, "repo-visible-leader-tenant")
primaryTenantID := primaryTenant.ID
user := domain.User{
ID: uuid.NewString(),
Email: "slug-appointment-leader@example.com",
Name: "Slug Appointment Leader",
Role: domain.RoleUser,
TenantID: &primaryTenantID,
Metadata: domain.JSONMap{
"additionalAppointments": []any{
map[string]any{
"tenantSlug": visibleTenant.Slug,
"tenantName": visibleTenant.Name,
"isOwner": true,
},
},
},
}
require.NoError(t, repo.Create(ctx, &user))
listed, total, _, err := repo.List(ctx, 0, 20, "", []string{visibleTenant.ID}, "")
require.NoError(t, err)
require.Equal(t, int64(1), total)
require.Len(t, listed, 1)
assert.Equal(t, "slug-appointment-leader@example.com", listed[0].Email)
counts, err := repo.CountByTenantIDs(ctx, []string{visibleTenant.ID})
require.NoError(t, err)
assert.Equal(t, int64(1), counts[visibleTenant.ID])
}
func createUserRepositoryTestTenant(t *testing.T, slug string) domain.Tenant {
t.Helper()
require.NoError(t, testDB.Unscoped().Where("slug = ?", slug).Delete(&domain.Tenant{}).Error)