(t *testing.T, ctx context.Context, provider Provider)
| 184 | } |
| 185 | |
| 186 | func testUserOperations(t *testing.T, ctx context.Context, provider Provider) { |
| 187 | // Create test user |
| 188 | user := &schemas.User{ |
| 189 | ID: uuid.New().String(), |
| 190 | Email: refs.NewStringRef("test_" + uuid.New().String() + "@test.com"), |
| 191 | Password: refs.NewStringRef("hashedPassword"), |
| 192 | SignupMethods: "basic_auth", |
| 193 | } |
| 194 | |
| 195 | // Test AddUser |
| 196 | createdUser, err := provider.AddUser(ctx, user) |
| 197 | require.NoError(t, err) |
| 198 | require.NotNil(t, createdUser) |
| 199 | assert.Equal(t, user.Email, createdUser.Email) |
| 200 | |
| 201 | // Test GetUserByEmail |
| 202 | fetchedUser, err := provider.GetUserByEmail(ctx, *user.Email) |
| 203 | require.NoError(t, err) |
| 204 | require.NotNil(t, fetchedUser) |
| 205 | assert.Equal(t, user.Email, fetchedUser.Email) |
| 206 | |
| 207 | // Test UpdateUser |
| 208 | fetchedUser.GivenName = refs.NewStringRef("Updated") |
| 209 | updatedUser, err := provider.UpdateUser(ctx, fetchedUser) |
| 210 | require.NoError(t, err) |
| 211 | require.NotNil(t, updatedUser) |
| 212 | assert.Equal(t, "Updated", *updatedUser.GivenName) |
| 213 | |
| 214 | // Test ListUsers |
| 215 | users, pagination, err := provider.ListUsers(ctx, &model.Pagination{ |
| 216 | Limit: 10, |
| 217 | Offset: 0, |
| 218 | }) |
| 219 | assert.NoError(t, err) |
| 220 | assert.NotNil(t, users) |
| 221 | assert.Greater(t, len(users), 0) |
| 222 | assert.NotNil(t, pagination) |
| 223 | assert.Greater(t, pagination.Total, int64(0)) |
| 224 | |
| 225 | // Test DeleteUser |
| 226 | err = provider.DeleteUser(ctx, user) |
| 227 | assert.NoError(t, err) |
| 228 | |
| 229 | // Verify deletion |
| 230 | _, err = provider.GetUserByEmail(ctx, *user.Email) |
| 231 | assert.Error(t, err) |
| 232 | |
| 233 | // Test GetUserByPhoneNumber |
| 234 | user.PhoneNumber = refs.NewStringRef("+1234567891") |
| 235 | createdUser, err = provider.AddUser(ctx, user) |
| 236 | require.NoError(t, err) |
| 237 | require.NotNil(t, createdUser) |
| 238 | assert.Equal(t, user.PhoneNumber, createdUser.PhoneNumber) |
| 239 | |
| 240 | // Test GetUserByID |
| 241 | fetchedUser, err = provider.GetUserByID(ctx, createdUser.ID) |
| 242 | require.NoError(t, err) |
| 243 | require.NotNil(t, fetchedUser) |
no test coverage detected