Skip to content

Commit 6778db5

Browse files
committed
Clase 7 Intermedio FINAL | 12/03/2025
Debug, Regex y Testing
1 parent e281a08 commit 6778db5

12 files changed

+3567
-10
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules/

.vscode/launch.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"type": "node",
9+
"request": "launch",
10+
"name": "Launch Program",
11+
"skipFiles": [
12+
"<node_internals>/**"
13+
],
14+
"program": "${workspaceFolder}/Intermediate/17-debugging.js"
15+
}
16+
]
17+
}

Intermediate/17-debugging.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
// Depuración
7+
8+
// console.log() (básico)
9+
10+
function sum(a, b) {
11+
console.log("a:", a)
12+
console.log("typeof a:", typeof a)
13+
console.log("b:", b)
14+
console.log("typeof b:", typeof b)
15+
return a + b
16+
}
17+
18+
console.log(sum(3, "5"))
19+
20+
// Depurador (profesional)
21+
22+
function divide(a, b) {
23+
if (b === 0) {
24+
throw new Error("No se puede dividir por cero")
25+
}
26+
return a / b
27+
}
28+
29+
// console.log(divide(5, 0)) Error
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
// 1. Crea un código con un error lógico y usa VS Code para encontrarlo
7+
8+
// 2. Experimenta con breakpoints y observa cómo cambia el flujo de ejecución

Intermediate/19-regex.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
// Expresiones regulares
7+
8+
// - Sintaxis
9+
10+
const regex = /abc/
11+
const regex2 = RegExp("abc")
12+
const text = "Hola abc JavaScript"
13+
14+
// test: verifica coincidencia con true o false
15+
16+
console.log(regex.test(text))
17+
console.log(regex2.test(text))
18+
19+
const text2 = "Mi edad es 37"
20+
const regex3 = /\d/g
21+
const regex4 = /[4-6]/
22+
console.log(regex3.test(text2))
23+
console.log(regex4.test(text2))
24+
25+
// replace: reemplaza el texto que coincide con el patrón
26+
27+
const regex5 = /JavaScript/
28+
console.log("Hola JavaScript".replace(regex5, "JS"))
29+
const text3 = "Estoy contando 1 2 3 4 5 6 7"
30+
console.log(text3.replace(regex3, "[número]"))
31+
32+
// exec: retorna detalles de la coincidencia
33+
34+
console.log(regex3.exec(text3))
35+
36+
while ((match = regex3.exec(text3)) !== null) {
37+
console.log(match)
38+
}

Intermediate/20-regex-exercises.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
// 1. Crea una RegEx que valide correos electrónicos
7+
8+
// 2. Crea una RegEx obtenga Hashtags de un Texto
9+
10+
// 3. Crea una RegEx que valide contraseñas seguras (mínimo 8 caracteres, al menos una letra y un número)
11+
12+
// NOTA: Aplícalas utilizando diferentes operaciones

Intermediate/21-testing.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
// Testing
7+
8+
// - Tipos de testing
9+
10+
// Pruebas unitarias
11+
12+
function sum(a, b) {
13+
return a + b
14+
}
15+
16+
module.exports = sum
17+
18+
console.log(sum(3, 5) === 8)
19+
20+
// Pruebas de integración
21+
22+
// Pruebas end-to-end (E2E)

Intermediate/22-testing.test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
const sum = require('./21-testing')
7+
8+
test("Suma de 3 + 5 tiene que ser 8", () => {
9+
expect(sum(3, 5)).toBe(8)
10+
})
11+
12+
test("Suma de 3 + 3 tiene que ser 6", () => {
13+
expect(sum(3, 4)).toBe(6)
14+
})

Intermediate/23-testing-exercises.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
Clase 7 - Debug, Regex y Testing (12/03/2025)
3+
Vídeo: https://www.twitch.tv/videos/2403971237?t=00h21m55s
4+
*/
5+
6+
// 1. Crea una función isEven(number) que devuelva true si el número es par y false si es impar
7+
8+
// 2. Escribe una prueba en Jest para verificar que la función funciona correctamente
9+
10+
// 3. Verifica que la prueba se ejecuta satisfactoriamente

README.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,11 @@
99
### Proyecto realizado durante emisiones en directo desde [Twitch](https://twitch.tv/mouredev)
1010
> ##### Si consideras útil el curso, apóyalo haciendo "★ Star" en el repositorio. ¡Gracias!
1111
12-
## 🆕 NUEVO: Curso Intermedio [En desarrollo]
12+
## 🆕 NUEVO: Curso Intermedio [Finalizado]
1313

1414
<a href="https://twitch.tv/mouredev"><img src="./Images/intermediate.jpg" style="height: 50%; width:50%;"/></a>
1515

16-
### Curso de fundamentos intermedio (continuación del desde cero). Nueva clase cada semana.
17-
18-
#### 🔴 PRÓXIMA CLASE EN DIRECTO: Miércoles 12 de marzo a las 20:00h (España) en [Twitch](https://twitch.tv/mouredev) y [YouTube](https://youtube.com/@mouredev)
19-
#### 🗓️ CONSULTA EL HORARIO POR PAÍS Y CREA UN RECORDATORIO desde [Discord](https://discord.gg/tqsThtGg?event=1347230711693705339)
16+
### Curso de fundamentos intermedio (continuación del desde cero).
2017

2118
* Clase 1 [29/01/2025] - Funciones avanzadas
2219
* [Vídeo](https://www.twitch.tv/videos/2367024319?t=00h08m45s)
@@ -50,6 +47,12 @@
5047
* Ejemplo simple: [HTML](./Intermediate/12-dom-example.html) - [JS](./Intermediate/13-dom-example.js)
5148
* Ejemplo lista de tareas: [HTML](./Intermediate/14-tasklist.html) - [JS](./Intermediate/15-tasklist.js)
5249
* [Ejercicios](./Intermediate/16-dom-exercises.js)
50+
51+
* Clase 7 [12/03/2025] - Debug, Regex y Testing
52+
* [Vídeo](https://www.twitch.tv/videos/2403971237?t=00h21m55s)
53+
* Debug: [Código](./Intermediate/17-debugging.js) - [Ejercicios](./Intermediate/18-debugging-exercises.js)
54+
* Regex: [Código](./Intermediate/19-regex.js) - [Ejercicios](./Intermediate/20-regex-exercises.js)
55+
* Testing: [Código](./Intermediate/21-testing.js) - [Test](./Intermediate/22-testing.test.js) - [Ejercicios](./Intermediate/23-testing-exercises.js)
5356

5457
## Clases en vídeo
5558

@@ -121,6 +124,8 @@
121124
* [Guía de estilo](https://google.github.io/styleguide/jsguide.html)
122125
* Clientes HTTP: [Postman](https://postman.com) | [Apidog](https://apidog.com) | [Thunder Client](https://thunderclient.com)
123126
* APIs: [JSONPlaceholder](https://jsonplaceholder.typicode.com) | [OpenWeather](https://openweathermap.org) | [PokéAPI](https://pokeapi.co)
127+
* Expresiones regulares: [Documentación](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet
128+
) | [Regex101](https://regex101.com/)
124129

125130
## Únete al campus de programación de la comunidad
126131

@@ -139,18 +144,15 @@ Mi idea es que el curso sea desde cero y para principiantes. Pensado para una pe
139144

140145
Si la acogida de la comunidad es buena, seguiré creando cursos más avanzados.
141146

142-
#### ¿Este curso va a continuar?
143-
Sí, actualmente estoy desarrollando la parte Intermedia. Cada semana una nueva clase en directo.
144-
145147
#### ¿Este curso se va a subir a YouTube?
146148

147-
Sí, una vez finalizado lo editaré y subiré al igual que con la parte Desde Cero. Por el momento podrás encontrar cada una de las clases de manera individual en este repositorio.
149+
Sí, una vez finalizados, todos los cursos son editados y subidos en bloque a YouTube.
148150

149151
#### ¿Existe algún lugar donde consultar dudas?
150152
He creado un canal llamado "JavaScript" en el [servidor de Discord](https://discord.gg/mouredev) de la comunidad. Allí puedes consultar dudas y ayudar al resto de miembros. Así nos beneficiamos tod@s.
151153

152154
#### ¿Cómo puedo practicar?
153-
A medida que avance el curso, crearé ficheros de ejercicios para poner en práctica lo aprendido. También puedes realizar los ejercicios de mi web [retosdeprogramacion.com](https://retosdeprogramacion.com).
155+
En cada lección encontrarás ejercicios para poner en práctica lo aprendido. También puedes realizar los ejercicios de mi web [retosdeprogramacion.com](https://retosdeprogramacion.com).
154156

155157
## ![https://mouredev.com](https://raw.githubusercontent.com/mouredev/mouredev/master/mouredev_emote.png) Hola, mi nombre es Brais Moure.
156158
### Freelance full-stack iOS & Android engineer

0 commit comments

Comments
 (0)