test: add tests for SSO avatar provider reset on empty picture URL
This commit is contained in:
parent
415d5d23ad
commit
1065bdd84c
|
|
@ -145,3 +145,13 @@
|
|||
issuer: local
|
||||
updated: 2018-12-02 15:13:12
|
||||
created: 2018-12-01 15:13:12
|
||||
# User with openid avatar provider for SSO avatar reset tests
|
||||
- id: 19
|
||||
username: 'user_openid_avatar'
|
||||
password: '$2a$04$X4aRMEt0ytgPwMIgv36cI..7X9.nhY/.tYwxpqSi0ykRHx2CwQ0S6'
|
||||
email: 'user_openid_avatar@example.com'
|
||||
issuer: 'https://some.service.com'
|
||||
subject: 'openid-avatar-test'
|
||||
avatar_provider: 'openid'
|
||||
updated: 2018-12-02 15:13:12
|
||||
created: 2018-12-01 15:13:12
|
||||
|
|
|
|||
|
|
@ -419,3 +419,49 @@ func TestMergeClaims(t *testing.T) {
|
|||
assert.ErrorAs(t, err, &expectedErr)
|
||||
})
|
||||
}
|
||||
|
||||
func TestSyncUserAvatarFromOpenID(t *testing.T) {
|
||||
t.Run("empty picture URL resets openid provider to default", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
defer s.Close()
|
||||
|
||||
// Use the fixture user that has avatar_provider = "openid"
|
||||
u, err := user.GetUserByID(s, 19)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "openid", u.AvatarProvider, "precondition: user should have openid avatar provider")
|
||||
|
||||
err = syncUserAvatarFromOpenID(s, u, "")
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
require.NoError(t, err)
|
||||
|
||||
// Verify the avatar provider was reset to default in the database
|
||||
db.AssertExists(t, "users", map[string]interface{}{
|
||||
"id": 19,
|
||||
"avatar_provider": "default",
|
||||
}, false)
|
||||
})
|
||||
|
||||
t.Run("empty picture URL does not reset non-openid provider", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
defer s.Close()
|
||||
|
||||
// Use a regular user (avatar_provider is empty/"default")
|
||||
u, err := user.GetUserByID(s, 1)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = syncUserAvatarFromOpenID(s, u, "")
|
||||
require.NoError(t, err)
|
||||
err = s.Commit()
|
||||
require.NoError(t, err)
|
||||
|
||||
// Verify the avatar provider was NOT changed to "default" or anything else
|
||||
s2 := db.NewSession()
|
||||
defer s2.Close()
|
||||
updatedUser, err := user.GetUserByID(s2, 1)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "", updatedUser.AvatarProvider, "avatar provider should remain empty for non-openid user")
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue