Vježba pregleda koda · 8 min

Pregledajte promjenu generisanu uz AI

Pregledajte kratak kod krajnje tačke. Odlučite koje dokaze trebate prije prihvatanja promjene.

Situacija

AI asistent predlaže krajnju tačku za fakture. Prijavljeni korisnik smije vidjeti samo fakture svoje organizacije. Pregledate promjenu prije nego što se može izdati.

Šta uraditi

  1. Pročitajte kod i njegovo jednostavno objašnjenje. Ne morate ga izvršavati.
  2. Odaberite svaku provjeru potrebnu prije prihvatanja. Provjerite odgovore, pročitajte razloge i pokušajte ponovo ako neka provjera nedostaje.
Trebate osnovu? Pročitajte lekciju

Pregledate ovaj PR. Funkcija smije vratiti fakturu samo autentificiranom korisniku u istoj organizaciji. Isječak je nepotpun.

// 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);
});
Šta kod radi?

Krajnja tačka uzima identifikator fakture iz zahtjeva, dohvaća tu fakturu, bilježi cijelu fakturu i vraća je. Isječak ne pokazuje ko provjerava pravo korisnika na ovu fakturu.

Autentifikacija provjerava ko je korisnik. Autorizacija provjerava šta korisnik smije raditi. Middleware je kod koji obrađuje zahtjev prije ove krajnje tačke. Može sadržavati provjere koje nedostaju u ovom isječku.

Odaberite sve potrebne radnje pregleda.

ZA KRAJ

Dokazuje li uspješan zahtjev da je krajnja tačka za fakture sigurna?

Uporedite svoj odgovor s objašnjenjem

Ne. Dokazuje da je jedan zahtjev uspio. Trebate i dokaze da korisnik ne može pročitati fakturu druge organizacije. Pregledajte cijeli put zahtjeva, ponašanje kada zapis nedostaje i bilježenje. Uspješan test mora pokriti važan zahtjev.

Primijenite ovo na poslu

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

Odaberite drugu vježbu