Przejdź do głównej zawartości

Scenariusz: invalid-nip

Scenariusz invalid-nip symuluje sytuację, w której KSeF odrzuca wysyłaną fakturę z powodu nieprawidłowego numeru NIP. Przydatny do testowania obsługi błędów walidacji po stronie serwera.

OperacjaRezultat
fetchInvoicesDziała normalnie
sendInvoiceKsefApiError(400) z kontekstem NIP
getUpoDziała normalnie

Scenariusz rejestruje hook beforeSend, który rzuca KsefApiError z kodem HTTP 400 i informacją o nieprawidłowym NIP.

  • Testowanie walidacji NIP przed wysyłką
  • Weryfikacja obsługi błędów 400 z KSeF
  • Testowanie komunikatów błędów wyświetlanych użytkownikowi
import { createKsefSimulator } from '@ksefnik/simulator'
import { createKsefnik } from '@ksefnik/core'
import { KsefApiError } from '@ksefnik/shared'
const { adapter } = createKsefSimulator({
scenario: 'invalid-nip',
})
const ksefnik = createKsefnik({
nip: '0000000000',
adapter,
})
try {
await ksefnik.invoices.send({
xml: '<Invoice>...</Invoice>',
})
} catch (error) {
if (error instanceof KsefApiError) {
console.log(error.statusCode) // 400
console.log(error.code) // "INVALID_NIP"
console.log(error.context) // { nip: "0000000000" }
console.log(error.message) // "NIP 0000000000 is not valid"
}
}
import { describe, it, expect } from 'vitest'
import { createKsefSimulator } from '@ksefnik/simulator'
import { createKsefnik } from '@ksefnik/core'
import { KsefApiError } from '@ksefnik/shared'
describe('walidacja NIP', () => {
it('powinien zwrócić błąd dla nieprawidłowego NIP', async () => {
const { adapter } = createKsefSimulator({ scenario: 'invalid-nip' })
const ksefnik = createKsefnik({ nip: '0000000000', adapter })
await expect(
ksefnik.invoices.send({ xml: '<Invoice/>' })
).rejects.toThrow(KsefApiError)
})
})