63 lines
2.3 KiB
TypeScript
63 lines
2.3 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
import { generateDaneIdentyfikacyjne } from './PodmiotDaneIdentyfikacyjne';
|
|
import { Content } from 'pdfmake/interfaces';
|
|
import { DaneIdentyfikacyjneTPodmiot2Dto } from '../../types/fa2-additional-types';
|
|
|
|
vi.mock('../../../shared/PDF-functions', () => ({
|
|
createLabelText: vi.fn((label, value) => ({
|
|
text: `LABEL:${label}${typeof value === 'object' && value?._text ? value._text : (value ?? '')}`,
|
|
})),
|
|
getValue: vi.fn((val) => (val && val._text ? val._text : '')),
|
|
hasValue: vi.fn((val) => !!(val && val._text)),
|
|
}));
|
|
|
|
describe('generateDaneIdentyfikacyjne', () => {
|
|
beforeEach(() => vi.clearAllMocks());
|
|
|
|
it('adds NIP label always', () => {
|
|
const dane: DaneIdentyfikacyjneTPodmiot2Dto = { NIP: { _text: '1111111111' } };
|
|
const result = generateDaneIdentyfikacyjne(dane);
|
|
|
|
expect(result[0]).toEqual({ text: 'LABEL:NIP: 1111111111' });
|
|
});
|
|
|
|
it('skips name/last name label for empty values', () => {
|
|
const dane: DaneIdentyfikacyjneTPodmiot2Dto = { NIP: { _text: 'xx' } };
|
|
const result: Content[] = generateDaneIdentyfikacyjne(dane);
|
|
|
|
expect(result.some((r: any): boolean => r.text === 'LABEL: ')).toBeFalsy();
|
|
});
|
|
|
|
it('adds Pełna nazwa label when present', () => {
|
|
const dane: DaneIdentyfikacyjneTPodmiot2Dto = {
|
|
NIP: { _text: '99' },
|
|
PelnaNazwa: { _text: 'INSTRUMENTS INC.' },
|
|
};
|
|
const result = generateDaneIdentyfikacyjne(dane);
|
|
|
|
expect(result).toEqual(expect.arrayContaining([{ text: 'LABEL:Pełna nazwa: INSTRUMENTS INC.' }]));
|
|
});
|
|
|
|
it('adds Nazwa handlowa when surname is present', () => {
|
|
const dane: DaneIdentyfikacyjneTPodmiot2Dto = {
|
|
NIP: { _text: '43210' },
|
|
Nazwisko: { _text: 'Smith' },
|
|
NazwaHandlowa: { _text: 'Smithy PLC' },
|
|
};
|
|
const result = generateDaneIdentyfikacyjne(dane);
|
|
|
|
expect(result).toEqual(expect.arrayContaining([{ text: 'LABEL:Nazwa handlowa: Smithy PLC' }]));
|
|
});
|
|
|
|
it('returns array including only expected fields', () => {
|
|
const dane: DaneIdentyfikacyjneTPodmiot2Dto = {
|
|
NIP: { _text: '11' },
|
|
PelnaNazwa: { _text: 'Best Corp' },
|
|
};
|
|
const result = generateDaneIdentyfikacyjne(dane);
|
|
|
|
expect(result.length).toBe(2);
|
|
expect(result).toEqual([{ text: 'LABEL:NIP: 11' }, { text: 'LABEL:Pełna nazwa: Best Corp' }]);
|
|
});
|
|
});
|