Scripts & tests

Tests & assertions

Matchers expect disponibles, validation de contrats, gestion des erreurs et bonnes pratiques.

# Matchers expect

Tous les matchers
test("matchers", () => {
  expect(res.status).toBe(200);
  expect(res.json).toEqual({ ok: true });
  expect(res.body).toContain("ok");
  expect(res.body).toMatch("success|accepted");
  expect(res.durationMs).toBeGreaterThan(10);
  expect(res.durationMs).toBeLessThan(500);
  expect(res.json.items).toHaveLength(3);
  expect(res.json.user).toBeDefined();
});

# Tests de contrat

Contrat de réponse
test("contrat de réponse", () => {
  expect(res.status).toBe(200);
  expect(res.headers["content-type"]).toContain("application/json");
  expect(res.json.id).toBeDefined();
});

test("pas d’erreur GraphQL", () => {
  expect(res.json.errors ?? []).toHaveLength(0);
});

# Gestion des erreurs

  • Une assertion échouée marque uniquement le test() courant comme échoué.
  • Une exception hors test() devient une erreur de script attachée à la requête.
  • Les boucles infinies sont coupées par un budget CPU et un timeout global.