Avatarul care crapă la un nume gol
TypeScript · O componentă de avatar într-un dashboard de echipă · Cazuri-limită · dificultate 1/3 · ~5 min
Un coleg i-a cerut asistentului AI: „Scrie un helper initials(fullName) pentru componenta de avatar. Un cuvânt dă o literă, două sau mai multe cuvinte dau prima literă a primului și a ultimului cuvânt, mereu cu majusculă. Adaugă și un wrapper avatarInitials(user) care merge pe înregistrările noastre de utilizatori, unde firstName și lastName sunt ambele opționale, pentru că unele conturi au fost importate dintr-un link de invitație doar cu un email.”
Codul a venit cu teste, iar avatarele arată bine pe echipa demo. Contractul promis de docstring:
- Cuvintele sunt separate prin whitespace.
"Ada"dă"A","Ada King Lovelace"dă"AL".- Un nume gol sau format doar din whitespace dă
"", ca componenta să poată afișa un placeholder. avatarInitialsacceptă o înregistrare în care lipsește oricare dintre părțile numelui.
Fă-i review înainte să ajungă pe pagina de membri, care listează toate conturile, inclusiv pe cele importate.
code.ts
Teste vizibile (trec pe codul primit)
import { describe, it, expect } from "@debunk/harness";
import { initials, avatarInitials } from "./code";
describe("initials", () => {
it("takes the first letter of the first and last word", () => {
expect(initials("Ada Lovelace")).toBe("AL");
expect(initials("Ada King Lovelace")).toBe("AL");
});
it("uppercases a single-word name", () => {
expect(initials("ada")).toBe("A");
});
it("avatarInitials joins first and last name", () => {
expect(avatarInitials({ firstName: "Grace", lastName: "Hopper" })).toBe("GH");
});
});