meta {
  name: 05 Get detail
  type: http
  seq: 5
}

get {
  url: {{baseUrl}}/api/v1/invoices/{{invoiceId}}
  body: none
  auth: inherit
}

tests {
  test("200 OK", function () {
    expect(res.getStatus()).to.equal(200);
  });
  test("client preload present", function () {
    expect(res.getBody().data.client).to.have.property("name");
  });
  test("timeline is array with `issued` event", function () {
    const tl = res.getBody().data.timeline;
    expect(tl).to.be.an("array");
    expect(tl[0].state).to.equal("past");
  });
}

docs {
  GET /api/v1/invoices/:id

  Détail enrichi : champs Invoice + `client` (Client préchargé) + `plan`
  (Plan + steps préchargés) + `timeline` composée par le serveur.

  La timeline calque les `plan.steps` sur `dueDate + offsetDays` et marque
  chaque étape `past` / `current` / `future` selon l'horodatage courant.
}
