Referință rapidă

Fișă de Referință Mocking HTTP cu Nock

Ghid rapid pentru Nock: bibliotecă de simulare server HTTP pentru Node.js, filtrare URL, potrivire query și răspunsuri simulate.

· Publicat

Nock este o bibliotecă de simulare și verificare HTTP pentru Node.js care interceptează apelurile de rețea trimise prin http.request.

Mocking de Bază

const nock = require('nock');

// Simulează un endpoint GET
const scope = nock('https://api.example.com')
  .get('/users/1')
  .reply(200, {
    id: 1,
    name: 'Alice Cooper'
  });

// Permite cererilor nesimulate să treacă către rețeaua reală
const unmockedScope = nock('https://api.example.com', {
  allowUnmocked: true
});

Filtrarea Cererilor & Potrivirea Query

Potrivirea Parametrilor Query

nock('https://api.example.com')
  .get('/search')
  .query({ q: 'cheese', page: '1' })
  .reply(200, { results: [] });

Filtrarea Căilor (Mascarea Token-urilor Dinamice)

Elimină token-urile dinamice sau marcajele temporale înainte de potrivire:

nock('https://api.example.com')
  .filteringPath(/[&?]token=[^&]*/g, '')
  .get('/user')
  .reply(200, { authorized: true });

// Interceptează "/user?token=xyz123" ca "/user"

Simularea Cererilor POST & Antetelor

nock('https://api.example.com')
  .matchHeader('authorization', 'Bearer token_123')
  .post('/checkout', { items: [1, 2] })
  .reply(201, { status: 'created' }, {
    'X-Custom-Header': 'MockValue'
  });

Aserțiuni & Curățare

// Verifică dacă toți interceptorii declarați au fost apelați
scope.isDone(); // => true / false

// Șterge toți interceptorii activi
nock.cleanAll();

// Restaurează comportamentul HTTP original al Node.js
nock.restore();

Referințe

Subiecte conexe