add source code
This commit is contained in:
118
src/lib-public/generators/FA1/Podmioty.spec.ts
Normal file
118
src/lib-public/generators/FA1/Podmioty.spec.ts
Normal file
@@ -0,0 +1,118 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { generatePodmioty } from './Podmioty';
|
||||
import { Faktura } from '../../types/fa1.types';
|
||||
|
||||
vi.mock('../../../shared/PDF-functions', () => ({
|
||||
createSection: vi.fn((arr) => arr),
|
||||
getTable: vi.fn((obj) => (obj ? (Array.isArray(obj) ? obj : [obj]) : [])),
|
||||
getValue: vi.fn((val) => (val && val._text ? val._text : '')),
|
||||
hasValue: vi.fn((val) => Boolean(val && val._text)),
|
||||
}));
|
||||
vi.mock('./Podmiot1', () => ({
|
||||
generatePodmiot1: vi.fn(() => [{ podmiot1: true }]),
|
||||
}));
|
||||
vi.mock('./Podmiot1Podmiot1K', () => ({
|
||||
generatePodmiot1Podmiot1K: vi.fn(() => [{ podmiot1K: true }]),
|
||||
}));
|
||||
vi.mock('./Podmiot2', () => ({
|
||||
generatePodmiot2: vi.fn(() => [{ podmiot2: true }]),
|
||||
}));
|
||||
vi.mock('./Podmiot2Podmiot2k', () => ({
|
||||
generatePodmiot2Podmiot2K: vi.fn(() => [{ podmiot2K: true }]),
|
||||
}));
|
||||
vi.mock('./Podmiot3', () => ({
|
||||
generatePodmiot3: vi.fn(() => [{ podmiot3: true }]),
|
||||
}));
|
||||
vi.mock('./Podmiot3Podmiot2k', () => ({
|
||||
generateDaneIdentyfikacyjneTPodmiot3Dto: vi.fn(() => [{ daneIdentyfikacyjne: true }]),
|
||||
}));
|
||||
vi.mock('./PodmiotUpowazniony', () => ({
|
||||
generatePodmiotUpowazniony: vi.fn(() => [{ upowazniony: true }]),
|
||||
}));
|
||||
vi.mock('../../../shared/generators/common/functions', () => ({
|
||||
getValue: vi.fn((val) => (val && val._text ? val._text : '')),
|
||||
}));
|
||||
|
||||
describe(generatePodmioty.name, () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('calls generatePodmiot1Podmiot1K when Podmiot1K exists', () => {
|
||||
const invoice: Faktura = {
|
||||
Podmiot1: {},
|
||||
Podmiot2: {},
|
||||
Fa: {
|
||||
Podmiot1K: {},
|
||||
Podmiot2K: [{}],
|
||||
},
|
||||
};
|
||||
const result = generatePodmioty(invoice);
|
||||
|
||||
expect(result).toContainEqual(expect.arrayContaining([{ podmiot1K: true }]));
|
||||
});
|
||||
|
||||
it('calls generatePodmiot1 when Podmiot1K missing', () => {
|
||||
const invoice: Faktura = {
|
||||
Podmiot1: {},
|
||||
Podmiot2: {},
|
||||
Fa: {
|
||||
Podmiot2K: [{}],
|
||||
},
|
||||
};
|
||||
const result = generatePodmioty(invoice);
|
||||
|
||||
expect(result).toContainEqual(expect.arrayContaining([{ podmiot1: true }]));
|
||||
});
|
||||
|
||||
it('calls generatePodmiot2Podmiot2K when Podmiot2K available', () => {
|
||||
const invoice: Faktura = {
|
||||
Podmiot2: {},
|
||||
Fa: {
|
||||
Podmiot2K: [{}, {}],
|
||||
},
|
||||
};
|
||||
const result = generatePodmioty(invoice);
|
||||
|
||||
expect(result).toContainEqual(expect.arrayContaining([{ podmiot2K: true }]));
|
||||
});
|
||||
|
||||
it('renders Podmiot1 and Podmiot2 side by side if no Fa Podmiot1K or Podmiot2K', () => {
|
||||
const invoice: Faktura = {
|
||||
Podmiot1: {},
|
||||
Podmiot2: {},
|
||||
};
|
||||
const result = generatePodmioty(invoice);
|
||||
|
||||
expect(result).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
columns: expect.any(Array),
|
||||
}),
|
||||
]),
|
||||
])
|
||||
);
|
||||
});
|
||||
|
||||
it('calls generateDaneIdentyfikacyjneTPodmiot3Dto or generatePodmiot3 accordingly', () => {
|
||||
const invoice: Faktura = {
|
||||
Podmiot3: [{ Rola: { _text: '4' } }],
|
||||
Fa: {
|
||||
Podmiot2K: [{}, {}],
|
||||
},
|
||||
};
|
||||
const result = generatePodmioty(invoice);
|
||||
|
||||
expect(result.some((e: any) => e.some((o: any) => o.daneIdentyfikacyjne || o.podmiot3))).toBe(true);
|
||||
});
|
||||
|
||||
it('calls generatePodmiotUpowazniony last', () => {
|
||||
const invoice: Faktura = {
|
||||
PodmiotUpowazniony: {},
|
||||
};
|
||||
const result = generatePodmioty(invoice);
|
||||
|
||||
expect(result).toContainEqual(expect.arrayContaining([{ upowazniony: true }]));
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user