diff options
Diffstat (limited to 'spec/frontend/lib/utils/users_cache_spec.js')
-rw-r--r-- | spec/frontend/lib/utils/users_cache_spec.js | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/spec/frontend/lib/utils/users_cache_spec.js b/spec/frontend/lib/utils/users_cache_spec.js index d35ba20f570..5a55874b5fa 100644 --- a/spec/frontend/lib/utils/users_cache_spec.js +++ b/spec/frontend/lib/utils/users_cache_spec.js @@ -154,8 +154,8 @@ describe('UsersCache', () => { }; const user = await UsersCache.retrieveById(dummyUserId); - expect(user).toBe(dummyUser); - expect(UsersCache.internalStorage[dummyUserId]).toBe(dummyUser); + expect(user).toEqual(dummyUser); + expect(UsersCache.internalStorage[dummyUserId]).toEqual(dummyUser); }); it('returns undefined if Ajax call fails and cache is empty', async () => { @@ -180,6 +180,29 @@ describe('UsersCache', () => { const user = await UsersCache.retrieveById(dummyUserId); expect(user).toBe(dummyUser); }); + + it('does not clobber existing cached values', async () => { + UsersCache.internalStorage[dummyUserId] = { + status: dummyUserStatus, + }; + + apiSpy = (id) => { + expect(id).toBe(dummyUserId); + + return Promise.resolve({ + data: dummyUser, + }); + }; + + const user = await UsersCache.retrieveById(dummyUserId); + const expectedUser = { + status: dummyUserStatus, + ...dummyUser, + }; + + expect(user).toEqual(expectedUser); + expect(UsersCache.internalStorage[dummyUserId]).toEqual(expectedUser); + }); }); describe('retrieveStatusById', () => { |