Skip to content
Snippets Groups Projects
Commit 90e9f433 authored by Prathviraj Suryakant Thokal's avatar Prathviraj Suryakant Thokal
Browse files

Changes in test cases

parent 8c158bea
No related branches found
No related tags found
1 merge request!31Changes in test cases
......@@ -16,8 +16,6 @@ import {
import {
GetHospitalsResponseDto } from
'../../dto/get-hospitals/get-hospital-list-response.dto';
import { HospitalItemDto,
} from '../../dto/get-hospitals/hospital-list-item.dto';
let service: HospitalService;
const mockPrisma = {
......@@ -75,7 +73,7 @@ describe('GetHospitalsResponseDto Transformation', () => {
{
id: '550e8400-e29b-41d4-a716-446655440002',
hospitalNo: 'HSP-23HD', rohiniId: 'ROH001',
hfrId: 'HFR001', name: 'Apollo Hospitals',
hfrId: 'HFR001', hospitalName: 'Apollo Hospitals',
address: 'Mumbai', locality: 'Downtown',
pincode: '667333', emailId: 'apollo@hospital.com',
website: 'www.apollohospital.com', isHospitalRegistered: true,
......@@ -96,8 +94,8 @@ describe('GetHospitalsResponseDto Transformation', () => {
const dtoInstance = plainToInstance(GetHospitalsResponseDto, raw);
expect(dtoInstance.totalCount).toBe(1);
expect(dtoInstance.list).toHaveLength(1);
expect(dtoInstance.list[0]).toBeInstanceOf(HospitalItemDto);
expect(dtoInstance.list[0].name).toBe('Apollo Hospitals');
expect(dtoInstance).toBeInstanceOf(GetHospitalsResponseDto);
expect(dtoInstance.list[0].hospitalName).toBe('Apollo Hospitals');
expect(dtoInstance.list[0].latitude).toBe(76.4878795);
expect(dtoInstance.list[0].registeredFrom).toBe('2025-05-30 20:15:00');
});
......
......@@ -46,7 +46,7 @@ export class HospitalItemDto {
example: 'Apollo Hospitals',
description: 'Name of the hospitals',
})
name: string;
hospitalName: string;
@Expose()
@ApiProperty({
......
......@@ -10,7 +10,6 @@ import { HospitalService } from './hospital.service';
import {
GetHospitalsRequestDto,
} from './dto/get-hospitals/get-hospital-list-request.dto';
import { AppException, errorCode } from 'nest-common-utilities';
describe('HospitalController', () => {
let controller: HospitalController;
......@@ -75,13 +74,11 @@ describe('HospitalController', () => {
it('should throw NotFoundException if no hospitals found', async () => {
mockDto.emailId = 'noresult@example.com';
mockHospitalService.getHospitalByEmailId.mockResolvedValue({
list: [],
totalCount: 0,
});
await expect(controller.getHospitals(mockDto)).rejects.toThrow(
new AppException('No Data Found', errorCode.DATA_NOT_FOUND),
);
const emptyResponse = { list: [], totalCount: 0 };
mockHospitalService.getHospitalByEmailId.mockResolvedValue(emptyResponse);
const result = await controller.getHospitals(mockDto);
expect(result).toEqual(emptyResponse);
});
});
});
......@@ -6,7 +6,7 @@
**/
import { Controller, Post, Body } from '@nestjs/common';
import { Logger, AppException, errorCode } from 'nest-common-utilities';
import { Logger } from 'nest-common-utilities';
import { ApiOperation, ApiResponse } from '@nestjs/swagger';
import { HospitalService } from './hospital.service';
import {
......
......@@ -19,6 +19,7 @@ const mockPrisma = {
jest.mock('nest-common-utilities', () => {
return {
fuzzySearch: jest.fn(),
handlePrismaError: jest.fn(),
Logger: jest.fn().mockImplementation(() => ({
log: jest.fn(),
error: jest.fn(),
......@@ -63,7 +64,7 @@ describe('HospitalService', () => {
};
const mockHospitals = [
{
id: '1', hospital_no: '001', rohini_id: 'ROH123',
hospital_id: '1', hospital_no: '001', rohini_id: 'ROH123',
hfr_id: 'HOSP123', name: 'Test Hospital',
address: '123 Street', locality: 'Town',
pincode_id: 101, email_id: 'test@hospital.com',
......@@ -83,7 +84,7 @@ describe('HospitalService', () => {
expect.objectContaining({ where: { hfr_id: 'HOSP123' } }),
);
expect(result.totalCount).toBe(1);
expect(result.list[0].name).toBe('Test Hospital');
expect(result.list[0].hospitalName).toBe('Test Hospital');
});
});
describe('getHospitalByEmailId', () => {
......@@ -126,12 +127,12 @@ describe('HospitalService', () => {
longitude: new Decimal(20.5678), contact_hash: '123456',
is_epd_enabled: true, is_non_network: false,
status: 'active', remarks: 'Verified',
state_master: {id: '560001',name: 'Maharashtra'},
city_master: {id: '560001',name: 'Mumbai'}
},
];
const result = service.transformHospitalData(input);
expect(result[0].pincode).toBe('600001');
expect(result[0].latitude).toBe(10.1234);
expect(result[0].longitude).toBe(20.5678);
});
});
});
......@@ -181,6 +182,10 @@ describe('getHospitalsByName', () => {
id: '560001',
name: '560001',
},
hospital_type_master: {
id: '560001',
name: 'Type 1',
},
},
],
};
......@@ -191,7 +196,7 @@ describe('getHospitalsByName', () => {
const result = await service.getHospitalsByName(mockDto);
expect(result.totalCount).toBe(1);
expect(result.list[0].name).toBe('Sunshine Hospital Delhi');
expect(result.list[0].hospitalName).toBe('Sunshine Hospital Delhi');
});
it(
......@@ -228,4 +233,22 @@ describe('getHospitalsByName', () => {
expect(result.totalCount).toBe(0);
expect(result.list).toEqual([]);
});
it('should handle errors thrown by fuzzySearch', async () => {
const error = new Error('Simulated fuzzySearch failure');
(fuzzySearch as jest.Mock).mockRejectedValue(error);
const dto = {
hospitalName: 'Test',
page: 1,
limit: 10,
} as any;
const loggerErrorSpy = jest.spyOn(service['logger'], 'error').mockImplementation(() => {});
await expect(service.getHospitalsByName(dto)).resolves.toBeUndefined();
expect(loggerErrorSpy).toHaveBeenCalledWith('Error fetching hospitals:', error);
loggerErrorSpy.mockRestore();
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment