-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathchallenge.test.js
More file actions
75 lines (63 loc) · 2.4 KB
/
challenge.test.js
File metadata and controls
75 lines (63 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { describe, it, expect } from "vitest";
const { saludar, crearUsuario, multiplicar, crearNota } = require("./challenge.js");
describe("Reto 13 - Anatomía de funciones en JavaScript", () => {
describe("Reto 1: saludar", () => {
it("retorna saludo con template literal", () => {
expect(saludar("Óscar")).toBe("Hola, Óscar");
});
it("retorna saludo para otro nombre", () => {
expect(saludar("Felipe")).toBe("Hola, Felipe");
});
it("retorna tipo string", () => {
expect(typeof saludar("Ana")).toBe("string");
});
});
describe("Reto 2: crearUsuario", () => {
it("retorna objeto con nombre y edad", () => {
expect(crearUsuario("Ana", 25)).toEqual({ nombre: "Ana", edad: 25 });
});
it("retorna objeto con otros argumentos", () => {
expect(crearUsuario("Luis", 30)).toEqual({ nombre: "Luis", edad: 30 });
});
it("retorna un objeto", () => {
const usuario = crearUsuario("Pedro", 18);
expect(typeof usuario).toBe("object");
expect(usuario).toHaveProperty("nombre");
expect(usuario).toHaveProperty("edad");
});
});
describe("Reto 3: multiplicar", () => {
it("retorna producto de dos números", () => {
expect(multiplicar(4, 5)).toBe(20);
});
it("retorna tipo number", () => {
expect(typeof multiplicar(3, 7)).toBe("number");
});
it("multiplica correctamente otros valores", () => {
expect(multiplicar(10, 2)).toBe(20);
expect(multiplicar(0, 100)).toBe(0);
});
});
describe("Reto 4: crearNota", () => {
it("usa título por defecto cuando no se pasa", () => {
const nota = crearNota("Mi contenido");
expect(nota.titulo).toBe("sin título");
expect(nota.contenido).toBe("Mi contenido");
expect(typeof nota.creado).toBe("number");
expect(nota.creado).toBeGreaterThan(0);
});
it("usa el título pasado como argumento", () => {
const nota = crearNota("Otro contenido", "Mi nota");
expect(nota.titulo).toBe("Mi nota");
expect(nota.contenido).toBe("Otro contenido");
expect(typeof nota.creado).toBe("number");
});
it("creado es un timestamp en milisegundos (número)", () => {
const antes = Date.now();
const nota = crearNota("Test");
const despues = Date.now();
expect(nota.creado).toBeGreaterThanOrEqual(antes);
expect(nota.creado).toBeLessThanOrEqual(despues + 1);
});
});
});