UNPKG

@vidal-community/vidal-web-components

Version:

Vidal Web Components

61 lines 3.97 kB
import { assert } from '@open-wc/testing'; import { PrescriptionLine } from '../model/prescription-line'; import { Drug } from '../model/drug'; import { MultiComposableDrugData } from '../model/multi-composable-drug-data'; import { EquivalentFormularyFilter } from './equivalent-formulary-filter'; suite('equivalent-formulary-filter', () => { suite('filter prescription line by route and indicator', () => { test('keep one equivalent formulary after filter', () => { const equivalentFormularyToFilter = new Map(); const prescriptionLineOk = new PrescriptionLine(new Drug('', '')); prescriptionLineOk.multiComposableDrugData = new MultiComposableDrugData(['1', '2'], ''); prescriptionLineOk.routeUri = 'vidal://route/38'; const prescriptionLineKo1 = new PrescriptionLine(new Drug('', '')); prescriptionLineKo1.multiComposableDrugData = new MultiComposableDrugData(['3', '2'], ''); prescriptionLineKo1.routeUri = 'vidal://route/38'; const prescriptionLineKo2 = new PrescriptionLine(new Drug('', '')); prescriptionLineKo2.multiComposableDrugData = new MultiComposableDrugData(['3', '2'], ''); equivalentFormularyToFilter .set(prescriptionLineOk, []) .set(prescriptionLineKo2, []) .set(prescriptionLineKo1, []); const equivalentFormularyFilter = new EquivalentFormularyFilter(); const filteredEquivalentFormulary = equivalentFormularyFilter.byRouteAndIndicators(equivalentFormularyToFilter); assert.equal(filteredEquivalentFormulary.size, 1); assert.equal(filteredEquivalentFormulary.keys().next().value, prescriptionLineOk); }); }); suite('route and indicator incompatible for multi composable', () => { test('return true because of no routeUri', () => { const multicomposableDrugData = new MultiComposableDrugData(['1', '2'], ''); const equivalentFormularyFilter = new EquivalentFormularyFilter(); const isCompatible = equivalentFormularyFilter.isRouteAndIndicatorIncompatibleForMultiComposable(multicomposableDrugData); assert.isTrue(isCompatible); }); test('return true because of non compatible routeUri', () => { const multicomposableDrugData = new MultiComposableDrugData(['1', '2'], ''); const fakeRouteUris = 'vidal://route/123'; multicomposableDrugData.routeUris = ['vidal://route/85']; const equivalentFormularyFilter = new EquivalentFormularyFilter(); const isCompatible = equivalentFormularyFilter.isRouteAndIndicatorIncompatibleForMultiComposable(multicomposableDrugData, fakeRouteUris); assert.isTrue(isCompatible); }); test('return true because of non compatible indicator', () => { const multicomposableDrugData = new MultiComposableDrugData(['59', '2'], ''); const routeUris = 'vidal://route/85'; multicomposableDrugData.routeUris = [routeUris]; const equivalentFormularyFilter = new EquivalentFormularyFilter(); const isCompatible = equivalentFormularyFilter.isRouteAndIndicatorIncompatibleForMultiComposable(multicomposableDrugData, routeUris); assert.isTrue(isCompatible); }); test('return false', () => { const multicomposableDrugData = new MultiComposableDrugData(['1', '2'], ''); const routeUris = 'vidal://route/85'; multicomposableDrugData.routeUris = [routeUris]; const equivalentFormularyFilter = new EquivalentFormularyFilter(); const isCompatible = equivalentFormularyFilter.isRouteAndIndicatorIncompatibleForMultiComposable(multicomposableDrugData, routeUris); assert.isFalse(isCompatible); }); }); }); //# sourceMappingURL=equivalent-formulary-filter_test.js.map