user_service_email_identity_sync_test.go 804 B

12345678910111213141516171819202122232425262728293031323334
  1. //go:build unit
  2. package service
  3. import (
  4. "context"
  5. "testing"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestUpdateProfile_DoesNotReturnPartialSuccessFromEmailIdentityResync(t *testing.T) {
  9. repo := &emailSyncRepoStub{
  10. user: &User{
  11. ID: 19,
  12. Email: "profile-before@example.com",
  13. Username: "tester",
  14. Concurrency: 2,
  15. },
  16. replaceErr: context.DeadlineExceeded,
  17. }
  18. svc := NewUserService(repo, nil, nil, nil)
  19. newEmail := "profile-after@example.com"
  20. updated, err := svc.UpdateProfile(context.Background(), 19, UpdateProfileRequest{
  21. Email: &newEmail,
  22. })
  23. require.NoError(t, err)
  24. require.NotNil(t, updated)
  25. require.Equal(t, newEmail, updated.Email)
  26. require.Equal(t, 1, repo.updateCalls)
  27. require.Empty(t, repo.replaceCalls)
  28. require.Empty(t, repo.ensureCalls)
  29. }