forked from Laboratoria/DEV004-md-links
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmd-links.spec.js
101 lines (84 loc) · 3.49 KB
/
md-links.spec.js
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import fs from 'fs';
import path from 'path';
import { determinarExistencia, esAbsoluta, leerArchivo, extraerEnlaces, mdLinks } from './mdlinks';
describe('determinarExistencia', () => {
it('debería retornar true si la ruta existe', () => {
// Llamada a la función determinarExistencia con una ruta existente
return determinarExistencia('./ejemplo.md')
.then((result) => {
// Afirmación: El resultado debe ser igual a true
expect(result).toBe(true);
});
});
// Prueba: Debería retornar false si la ruta no existe
it('debería retornar false si la ruta no existe', () => {
// Llamada a la función determinarExistencia con una ruta inexistente
return determinarExistencia('./ruta/inexistente')
.then((result) => {
// Afirmación: El resultado debe ser igual a false
expect(result).toBe(false);
});
});
});
describe('esAbsoluta', () => {
it('debería retornar la misma ruta si ya es absoluta', () => {
const ruta = '/ejemplo.md';
const resultado = esAbsoluta(ruta);
expect(resultado).toBe(ruta);
});
it('debería retornar la ruta absoluta si es relativa', () => {
const ruta = './ruta/relativa';
const resultado = esAbsoluta(ruta);
const rutaAbsolutaEsperada = path.resolve(ruta);
expect(resultado).toBe(rutaAbsolutaEsperada);
});
});
describe('leerArchivo', () => {
it('debería leer el contenido de un archivo', async () => {
const ruta = './ejemplo.md';
const contenido = await leerArchivo(ruta);
expect(contenido).toBeDefined();
});
it('debería rechazar la promesa si ocurre un error al leer el archivo', async () => {
const ruta = './ruta/archivoInexistente.md';
await expect(leerArchivo(ruta)).rejects.toThrow();
});
});
describe('extraerEnlaces', () => {
it('debería retornar un array de enlaces', () => {
const contenido = `
[Markdown](https://es.wikipedia.org/wiki/Markdown)
[Node.js](https://nodejs.org/)
[motor de JavaScript V8 de Chrome](https://developers.google.com/v8/)
`;
const enlaces = extraerEnlaces(contenido);
expect(Array.isArray(enlaces)).toBe(true);
expect(enlaces.length).toBe(3);
expect(enlaces[0]).toEqual({ text: 'Markdown', href: 'https://es.wikipedia.org/wiki/Markdown' });
expect(enlaces[1]).toEqual({ text: 'Node.js', href: 'https://nodejs.org/' });
expect(enlaces[2]).toEqual({ text: 'motor de JavaScript V8 de Chrome', href: 'https://developers.google.com/v8/' });
});
it('debería retornar un array vacío si no se encuentran enlaces', () => {
const contenido = 'Este es un texto sin enlaces';
const enlaces = extraerEnlaces(contenido);
expect(Array.isArray(enlaces)).toBe(true);
expect(enlaces.length).toBe(0);
});
});
describe('mdLinks', () => {
it('debería retornar un array de objetos con los enlaces encontrados en el archivo Markdown', async () => {
const ruta = './ejemplo.md';
const enlaces = await mdLinks(ruta);
expect(Array.isArray(enlaces)).toBe(true);
expect(enlaces.length).toBe(3);
expect(enlaces[0]).toHaveProperty('text', 'Markdown');
expect(enlaces[0]).toHaveProperty('href', 'https://es.wikipedia.org/wiki/Markdown');
// RESTO DE LOS ENLACES
});
it('debería retornar un array vacío si no se encuentran enlaces', async () => {
const ruta = './archivoSinEnlaces.md';
const enlaces = await mdLinks(ruta);
expect(Array.isArray(enlaces)).toBe(true);
expect(enlaces.length).toBe(0);
});
});