69 lines
2.6 KiB
TypeScript
69 lines
2.6 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
import { Podmiot1, Podmiot1K } from '../../types/fa1.types';
|
|
import { generatePodmiot1Podmiot1K } from './Podmiot1Podmiot1K';
|
|
import { Content } from 'pdfmake/interfaces';
|
|
|
|
vi.mock('../../../shared/PDF-functions', () => ({
|
|
createHeader: vi.fn((label: string) => [{ text: `HEADER:${label}` }]),
|
|
createLabelText: vi.fn((label: string, value: any) => ({
|
|
text: `LABEL:${label}${value && value._text ? value._text : value}`,
|
|
})),
|
|
createSubHeader: vi.fn((label: string) => ({ text: `SUBHEADER:${label}` })),
|
|
verticalSpacing: vi.fn((v: number) => ({ text: `SPACING:${v}` })),
|
|
getTable: vi.fn((data) => data || []),
|
|
generateColumns: vi.fn((left, right) => ({ columns: [left, right] })),
|
|
}));
|
|
vi.mock('./PodmiotAdres', () => ({
|
|
generatePodmiotAdres: vi.fn((adres: any, label: string) => ({ adr: label })),
|
|
}));
|
|
vi.mock('./PodmiotDaneIdentyfikacyjne', () => ({
|
|
generateDaneIdentyfikacyjne: vi.fn(() => [{ id: 'ID' }]),
|
|
}));
|
|
vi.mock('./PodmiotDaneKontaktowe', () => ({
|
|
generateDaneKontaktowe: vi.fn(() => ({ contact: 'KONTAKT' })),
|
|
}));
|
|
|
|
describe('generatePodmiot1Podmiot1K', () => {
|
|
beforeEach(() => vi.clearAllMocks());
|
|
|
|
it('puts DaneIdentyfikacyjne & status in firstColumn', () => {
|
|
const podmiot1: Podmiot1 = {
|
|
NrEORI: { _text: 'EORI' },
|
|
DaneIdentyfikacyjne: { NIP: { _text: '777' } },
|
|
StatusInfoPodatnika: { _text: 'AKTYWNY' },
|
|
};
|
|
const podmiot1K: Podmiot1K = {};
|
|
const result: any = generatePodmiot1Podmiot1K(podmiot1, podmiot1K);
|
|
const firstCol: Content = result.find((r: any) => r.columns)?.columns[0];
|
|
|
|
expect(firstCol).toEqual(
|
|
expect.arrayContaining([
|
|
{ text: 'SUBHEADER:Dane identyfikacyjne' },
|
|
{ text: 'LABEL:Numer EORI: EORI' },
|
|
{ id: 'ID' },
|
|
{ text: 'LABEL:Status podatnika: AKTYWNY' },
|
|
])
|
|
);
|
|
});
|
|
|
|
it('adds contact if Email present', () => {
|
|
const podmiot1: Podmiot1 = {
|
|
NrEORI: { _text: 'EORI' },
|
|
Email: { _text: 'mail@ex.pl' },
|
|
};
|
|
const podmiot1K: Podmiot1K = {};
|
|
const result: any = generatePodmiot1Podmiot1K(podmiot1, podmiot1K);
|
|
const firstCol: Content = result.find((r: any) => r.columns)?.columns[0];
|
|
|
|
expect(firstCol).toEqual(expect.arrayContaining([{ contact: 'KONTAKT' }]));
|
|
});
|
|
|
|
it('adds verticalSpacing at the end', () => {
|
|
const podmiot1: Podmiot1 = { NrEORI: { _text: 'EORI' } };
|
|
const podmiot1K: Podmiot1K = {};
|
|
const result: Content[] = generatePodmiot1Podmiot1K(podmiot1, podmiot1K);
|
|
|
|
expect(result[result.length - 1]).toEqual({ text: 'SPACING:1' });
|
|
});
|
|
});
|