UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

68 lines (45 loc) 1.78 kB
import { pushToCache, pullFromCache, enableCache } from '~/cache/api'; import { client, connectClient, message11 as message } from '~/utils/tests'; import { logout } from '..'; describe('logout', () => { beforeEach(async () => { await connectClient(); }); test('it should disconnect client', async () => { const recieved = await logout(); expect(recieved).toBe(true); }); test('it should set sesion state to notLoggedIn after disconnect', async () => { await logout(); expect(client.sessionState).toBe(Amity.SessionStates.NOT_LOGGED_IN); }); test('it should not update sesion state if session state terminated', async () => { client.sessionState = Amity.SessionStates.TERMINATED; await logout(); expect(client.sessionState).toBe(Amity.SessionStates.TERMINATED); }); test('it should clear userId and accessToken on disconnect', async () => { await logout(); expect(client.userId).toBeUndefined(); expect(client.token).toBeUndefined(); }); test('it should clear auth header on disconnect', async () => { await logout(); expect(client.http.defaults.headers.common.Authorization).toBeFalsy(); }); test('it should clear cache on disconnect', async () => { enableCache(); const cacheKey = ['message', 'get', message.messageId]; pushToCache(cacheKey, message); await logout(); expect(pullFromCache(cacheKey)).toBeUndefined(); }); test('it should not clear cache if tokenExpired', async () => { client.sessionState = Amity.SessionStates.TOKEN_EXPIRED; enableCache(); const cacheKey = ['message', 'get', message.messageId]; pushToCache(cacheKey, message); await logout(); expect(pullFromCache(cacheKey)?.data).toStrictEqual(message); }); });