El avatar que falla con un nombre vacío
TypeScript · Un componente de avatar en un panel de equipo · Casos límite · dificultad 1/3 · ~5 min
Un compañero de equipo le pidió al asistente de IA: "Escribe un helper initials(fullName) para el componente de avatar. Una palabra da una letra; dos o más palabras dan la primera letra de la primera y de la última palabra, siempre en mayúsculas. Añade un wrapper avatarInitials(user) que funcione con nuestros registros de usuario, donde firstName y lastName son opcionales, porque algunas cuentas se importaron desde un enlace de invitación que solo tenía un email."
El código llegó con tests, y los avatares se ven bien en el equipo de demo. El contrato que promete el docstring:
- Las palabras se separan por espacios en blanco.
"Ada"da"A","Ada King Lovelace"da"AL".- Un nombre vacío o formado solo por espacios en blanco da
"", para que el componente pueda mostrar un placeholder. avatarInitialsacepta un registro al que le falte cualquiera de las dos partes del nombre.
Revísalo antes de que llegue a la página de miembros, que lista todas las cuentas, incluidas las importadas.
code.ts
Pruebas visibles (pasan con el código tal como está)
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");
});
});