diff options
Diffstat (limited to 'spec/frontend/lib/utils/users_cache_spec.js')
-rw-r--r-- | spec/frontend/lib/utils/users_cache_spec.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/frontend/lib/utils/users_cache_spec.js b/spec/frontend/lib/utils/users_cache_spec.js index 30bdddd8e73..d35ba20f570 100644 --- a/spec/frontend/lib/utils/users_cache_spec.js +++ b/spec/frontend/lib/utils/users_cache_spec.js @@ -228,4 +228,29 @@ describe('UsersCache', () => { expect(userStatus).toBe(dummyUserStatus); }); }); + + describe('updateById', () => { + describe('when the user is not cached', () => { + it('does nothing and returns undefined', () => { + expect(UsersCache.updateById(dummyUserId, { name: 'root' })).toBe(undefined); + expect(UsersCache.internalStorage).toStrictEqual({}); + }); + }); + + describe('when the user is cached', () => { + const updatedName = 'has two farms'; + beforeEach(() => { + UsersCache.internalStorage[dummyUserId] = dummyUser; + }); + + it('updates the user only with the new data', async () => { + UsersCache.updateById(dummyUserId, { name: updatedName }); + + expect(await UsersCache.retrieveById(dummyUserId)).toStrictEqual({ + username: dummyUser.username, + name: updatedName, + }); + }); + }); + }); }); |