@vidal-community/vidal-web-components
Version:
Vidal Web Components
61 lines • 3.97 kB
JavaScript
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