import { IChatUser, IChatUserMockService, IGetUserByTokenArgs } from './types'; import { MockCategory } from '../base/enums'; import { ILogger, IMockRepository } from '../base/types'; import { parseIntDefault } from '../base/utils'; export const getChatUserMockService = (logger: ILogger, mockRepository: IMockRepository): IChatUserMockService => { const getUserByMockToken = ({ token, authMethod, mockCounter, tokenCounterMax }: IGetUserByTokenArgs): IChatUser | undefined => { const testUser = mockRepository.getMockDataByMockToken( token, MockCategory.USERS ); if (testUser instanceof Error || !testUser) { logger.error(`Failed fetching test user data ${testUser}`); throw testUser; } const parsedMockCounter = parseIntDefault({ defaultValue: 0, value: mockCounter }); const parsedMaxCouter = parseIntDefault({ defaultValue: 50, value: tokenCounterMax }); testUser.authScenarioSid = authMethod; testUser.valid = parsedMockCounter < parsedMaxCouter; return testUser; }; return { getUserByMockToken }; };