Files
medreport_mrb2b/lib/services/medipost/medipostPrivateMessage.service.test.ts

113 lines
4.1 KiB
TypeScript

import { AnalysisResponseElement } from "~/lib/types/analysis-response-element";
import { canCreateAnalysisResponseElement, getAnalysisResponseElementsForGroup } from "./medipostPrivateMessage.service";
import { ResponseUuring } from "@/packages/shared/src/types/medipost-analysis";
type TestExistingElement = Pick<AnalysisResponseElement, 'analysis_element_original_id' | 'status' | 'response_value'>;
describe('medipostPrivateMessage.service', () => {
describe('canCreateAnalysisResponseElement', () => {
it('should return true if the analysis response element does not exist', async () => {
const existingElements = [] as TestExistingElement[];
const groupUuring = {
UuringuElement: {
UuringOlek: 1,
UuringId: '1',
},
} as const;
const responseValue = 1;
const log = jest.fn();
expect(await canCreateAnalysisResponseElement({ existingElements, groupUuring, responseValue, log })).toBe(true);
});
it('should return false if the analysis response element exists and the status is higher', async () => {
const existingElements = [{ analysis_element_original_id: '1', status: '2', response_value: 1 }] as TestExistingElement[];
const groupUuring = {
UuringuElement: {
UuringOlek: 1,
UuringId: '1',
},
} as const;
const responseValue = 1;
const log = jest.fn();
expect(await canCreateAnalysisResponseElement({ existingElements, groupUuring, responseValue, log })).toBe(false);
});
});
describe('getAnalysisResponseElementsForGroup', () => {
it('should return single new element', async () => {
const analysisGroup = {
UuringuGruppNimi: '1',
Uuring: [
{
UuringuElement: {
UuringOlek: 1,
UuringId: '1',
UuringuVastus: [{ VastuseVaartus: '1' }],
},
},
] as unknown as ResponseUuring[],
} as const;
const existingElements = [] as TestExistingElement[];
const log = jest.fn();
expect(await getAnalysisResponseElementsForGroup({ analysisGroup, existingElements, log }))
.toEqual([{
analysis_element_original_id: '1',
analysis_name: undefined,
comment: null,
norm_lower: null,
norm_lower_included: false,
norm_status: undefined,
norm_upper: null,
norm_upper_included: false,
response_time: null,
response_value: 1,
unit: null,
original_response_element: {
UuringOlek: 1,
UuringId: '1',
UuringuVastus: [{ VastuseVaartus: '1' }],
},
status: '1',
}]);
});
it('should return no new element if element already exists in higher status', async () => {
const analysisGroup = {
UuringuGruppNimi: '1',
Uuring: [
{
UuringuElement: {
UuringOlek: 1,
UuringId: '1',
UuringuVastus: [{ VastuseVaartus: '1' }],
},
},
] as unknown as ResponseUuring[],
} as const;
const existingElements = [{ analysis_element_original_id: '1', status: '2', response_value: 1 }] as TestExistingElement[];
const log = jest.fn();
expect(await getAnalysisResponseElementsForGroup({ analysisGroup, existingElements, log }))
.toEqual([]);
});
it('should return no new element if element already exists with response value', async () => {
const analysisGroup = {
UuringuGruppNimi: '1',
Uuring: [
{
UuringuElement: {
UuringOlek: 1,
UuringId: '1',
UuringuVastus: [{ VastuseVaartus: '' }],
},
},
] as unknown as ResponseUuring[],
} as const;
const existingElements = [{ analysis_element_original_id: '1', status: '1', response_value: 1 }] as TestExistingElement[];
const log = jest.fn();
expect(await getAnalysisResponseElementsForGroup({ analysisGroup, existingElements, log }))
.toEqual([]);
});
});
});