add source code

This commit is contained in:
Michał Chudy
2025-11-14 15:51:00 +01:00
parent df0ef23857
commit b9972746aa
223 changed files with 24651 additions and 46774 deletions

View 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 }]));
});
});