(t *testing.T)
| 81 | } |
| 82 | |
| 83 | func TestUserIdentityUniqueConflict(t *testing.T) { |
| 84 | t.Parallel() |
| 85 | ctx := context.Background() |
| 86 | ts := NewTestingStore(ctx, t) |
| 87 | defer ts.Close() |
| 88 | |
| 89 | userA, err := createTestingHostUser(ctx, ts) |
| 90 | require.NoError(t, err) |
| 91 | userB, err := createTestingUserWithRole(ctx, ts, "conflict_user", store.RoleUser) |
| 92 | require.NoError(t, err) |
| 93 | |
| 94 | _, err = ts.CreateUserIdentity(ctx, &store.UserIdentity{ |
| 95 | UserID: userA.ID, |
| 96 | Provider: "idp-A", |
| 97 | ExternUID: "sub-1", |
| 98 | }) |
| 99 | require.NoError(t, err) |
| 100 | |
| 101 | // Second insert with the same (provider, extern_uid) must fail regardless of user_id. |
| 102 | _, err = ts.CreateUserIdentity(ctx, &store.UserIdentity{ |
| 103 | UserID: userB.ID, |
| 104 | Provider: "idp-A", |
| 105 | ExternUID: "sub-1", |
| 106 | }) |
| 107 | require.Error(t, err) |
| 108 | } |
| 109 | |
| 110 | func TestUserIdentitySameExternUIDDifferentProviders(t *testing.T) { |
| 111 | t.Parallel() |
nothing calls this directly
no test coverage detected