forked from Shared/esg
Implement normalized error handling with Persian translations across all exception types, replace legacy NestJS exceptions with AppException, and add unit, integration, and smoke tests. - Add error catalog with gateway-owned codes and Persian messages - Introduce AppException wrapping normalized error envelopes - Add translateError helper for automatic messageFa population - Remove claims module and update provider error normalization - Add unit tests for error contracts and helper functions - Add integration tests for admin and inquiry endpoints - Add smoke tests for real provider connectivity - Add test support utilities (auth mocks, assertions, app factory)
80 lines
2.4 KiB
TypeScript
80 lines
2.4 KiB
TypeScript
import { InquiryType } from '../../src/common/enums/inquiry-type.enum';
|
|
|
|
export interface InquiryEndpointCase {
|
|
name: string;
|
|
inquiryType: InquiryType;
|
|
path: string;
|
|
validPayload: Record<string, unknown>;
|
|
invalidPayload: Record<string, unknown>;
|
|
}
|
|
|
|
export const inquiryEndpointCases: InquiryEndpointCase[] = [
|
|
{
|
|
name: 'person inquiry',
|
|
inquiryType: InquiryType.PERSON,
|
|
path: '/inquiry/person',
|
|
validPayload: { nationalCode: '0012345678', birthDate: '1378-11-24', dateHasPostfix: 0 },
|
|
invalidPayload: { nationalCode: '123', birthDate: 'bad-date' },
|
|
},
|
|
{
|
|
name: 'real estate inquiry',
|
|
inquiryType: InquiryType.REAL_ESTATE,
|
|
path: '/inquiry/realEstate',
|
|
validPayload: { nationalCode: '5098961130', postalCode: '1349689554' },
|
|
invalidPayload: { nationalCode: 'bad', postalCode: '134' },
|
|
},
|
|
{
|
|
name: 'sheba inquiry',
|
|
inquiryType: InquiryType.SHEBA,
|
|
path: '/inquiry/sheba',
|
|
validPayload: {
|
|
accountOwnerType: '1',
|
|
nationalCode: '4311402422',
|
|
legalId: '',
|
|
sheba: 'IR800560611828005105117001',
|
|
},
|
|
invalidPayload: { nationalCode: '4311402422', sheba: 'bad' },
|
|
},
|
|
{
|
|
name: 'shahkar inquiry',
|
|
inquiryType: InquiryType.SHAHKAR,
|
|
path: '/inquiry/shahkar',
|
|
validPayload: { nationalCode: '4311402422', mobileNo: '09226187419' },
|
|
invalidPayload: { nationalCode: '4311402422', mobileNo: '123' },
|
|
},
|
|
{
|
|
name: 'postal code inquiry',
|
|
inquiryType: InquiryType.POSTAL_CODE,
|
|
path: '/inquiry/postalCode',
|
|
validPayload: { postalCode: '1234567890' },
|
|
invalidPayload: { postalCode: '123' },
|
|
},
|
|
{
|
|
name: 'policy by chassis inquiry',
|
|
inquiryType: InquiryType.POLICY_BY_CHASSIS,
|
|
path: '/inquiry/policyByChassis',
|
|
validPayload: { chassisNo: 'NAAM01E15HK123456' },
|
|
invalidPayload: { chassisNo: '' },
|
|
},
|
|
{
|
|
name: 'policy by plate inquiry',
|
|
inquiryType: InquiryType.POLICY_BY_PLATE,
|
|
path: '/inquiry/policyByPlate',
|
|
validPayload: {
|
|
nationalCode: '4311402422',
|
|
plk1: '12',
|
|
plk2: 'ب',
|
|
plk3: '345',
|
|
plksrl: '67',
|
|
},
|
|
invalidPayload: { nationalCode: 'bad', plk1: '1', plk2: '', plk3: '3', plksrl: '' },
|
|
},
|
|
{
|
|
name: 'policy by national code inquiry',
|
|
inquiryType: InquiryType.POLICY_BY_NATIONAL_CODE,
|
|
path: '/inquiry/policyByNationalCode',
|
|
validPayload: { nationalCode: '4311402422' },
|
|
invalidPayload: { nationalCode: 'bad' },
|
|
},
|
|
];
|