Vježba pregleda koda · 8 MIN

Pregledajte promjenu generiranu AI-jem

Pregledajte kratku krajnju točku. Odlučite koje dokaze trebate prije prihvaćanja promjene.

Situacija

AI asistent predlaže krajnju točku za račune. Prijavljeni korisnik smije vidjeti samo račune svoje organizacije. Pregledavate promjenu prije izdavanja.

Što učiniti

  1. Pročitajte kod i njegovo objašnjenje jednostavnim jezikom. Ne trebate ga pokrenuti.
  2. Odaberite svaku provjeru potrebnu prije prihvaćanja. Provjerite odgovore, pročitajte razloge i pokušajte ponovno ako neka provjera nedostaje.
Trebate osnovne informacije? Pročitajte lekciju

Pregledavate ovaj PR. Funkcija smije vratiti račun samo autentificiranom korisniku iz iste organizacije. Isječak nije potpun.

// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
  const invoice = await db.invoice.findUnique({
    where: { id: req.params.id }
  });
  console.log('Invoice response', invoice);
  return res.json(invoice);
});
Što kod radi?

Krajnja točka uzima ID računa iz zahtjeva, dohvaća taj račun, zapisuje cijeli račun u log i vraća ga. Isječak ne pokazuje tko provjerava pravo korisnika na taj račun.

Autentifikacija provjerava tko je korisnik. Autorizacija provjerava što korisnik smije učiniti. Middleware je kod koji obrađuje zahtjev prije ove krajnje točke. Može sadržavati provjere kojih nema u ovom isječku.

Odaberite sve potrebne radnje pregleda.

ZA ZAVRŠETAK

Dokazuje li uspješan zahtjev da je krajnja točka za račune sigurna?

Usporedite odgovor s objašnjenjem

Ne. Dokazuje da je jedan zahtjev uspio. Trebate i dokaze da korisnik ne može čitati račun druge organizacije. Pregledajte cijeli put zahtjeva, ponašanje pri nepostojećem zapisu i logiranje. Uspješan test mora pokriti važan zahtjev.

Primijenite na poslu

U sljedećem pregledu PR-a dodajte jedan test radnje koja mora biti odbijena.

Odaberite drugu vježbu