From afb9ae9423794eb3e8417b4bdaa8efd766ac6960 Mon Sep 17 00:00:00 2001 From: Ayush Date: Wed, 28 Jun 2023 21:57:40 +0530 Subject: [PATCH] added test for utils.ts --- .../custom-input/identifier/utils.test.ts | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.test.ts diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.test.ts b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.test.ts new file mode 100644 index 000000000..52e96511c --- /dev/null +++ b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.test.ts @@ -0,0 +1,75 @@ +import { isUniqueIdentifierTypeForOffline, shouldBlockPatientIdentifierInOfflineMode } from './utils'; + +function createIdentifierType(options: any = {}) { + return { + uniquenessBehavior: (options.uniquenessBehavior as 'UNIQUE' | 'LOCATION' | 'NON_UNIQUE') || null, + identifierSources: [ + { + uuid: 'identifier-source-uuid', + name: 'Identifier Source Name', + autoGenerationOption: { + manualEntryEnabled: (options.manualEntryEnabled as boolean) || false, + automaticGenerationEnabled: (options.automaticGenerationEnabled as boolean) || true, + }, + }, + ], + name: 'Identifier Type Name', + required: true, + uuid: 'identifier-type-uuid', + fieldName: 'identifierFieldName', + format: 'identifierFormat', + isPrimary: true, + }; +} + +describe('shouldBlockPatientIdentifierInOfflineMode', () => { + it('should return false if identifierType is unique and no manual entry is enabled', () => { + const identifierType = createIdentifierType({ uniquenessBehavior: null }); + + const result = shouldBlockPatientIdentifierInOfflineMode(identifierType); + + expect(result).toBe(false); + }); + + it('should return false if identifierType is not unique', () => { + const identifierType = createIdentifierType({ uniquenessBehavior: null }); + + const result = shouldBlockPatientIdentifierInOfflineMode(identifierType); + + expect(result).toBe(false); + }); + + it('should return true if manual entry is enabled and identifierType is unique', () => { + const identifierType = createIdentifierType({ manualEntryEnabled: true, uniquenessBehavior: 'UNIQUE' }); + + const result = shouldBlockPatientIdentifierInOfflineMode(identifierType); + + expect(result).toBe(true); + }); +}); + +describe('isUniqueIdentifierTypeForOffline', () => { + it('should return true if uniquenessBehavior is UNIQUE', () => { + const identifierType = createIdentifierType({ uniquenessBehavior: 'UNIQUE' }); + + const result = isUniqueIdentifierTypeForOffline(identifierType); + + expect(result).toBe(true); + }); + + it('should return true if uniquenessBehavior is LOCATION', () => { + const identifierType = createIdentifierType({ uniquenessBehavior: 'LOCATION' }); + + const result = isUniqueIdentifierTypeForOffline(identifierType); + + expect(result).toBe(true); + }); + + it('should return false for other uniqueness behaviors', () => { + const identifierType = createIdentifierType({ uniquenessBehavior: null }); + + const result = isUniqueIdentifierTypeForOffline(identifierType); + + expect(result).toBe(false); + }); +});