Files
medreport_mrb2b/lib/services/medipost/medipostPrivateMessage.service.test.ts
Danel Kungla 0c2cfe6d18 prettier fix
2025-09-19 17:22:36 +03:00

158 lines
4.4 KiB
TypeScript

import { ResponseUuring } from '@/packages/shared/src/types/medipost-analysis';
import { AnalysisResponseElement } from '~/lib/types/analysis-response-element';
import {
canCreateAnalysisResponseElement,
getAnalysisResponseElementsForGroup,
} from './medipostPrivateMessage.service';
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([]);
});
});
});