﻿1
00:00:04,646 --> 00:00:08,167
Para garantizar que los controles
sean retirados del reproductor

2
00:00:08,192 --> 00:00:12,743
en cuanto termine el juego,
opté por crear dos nuevas pruebas,

3
00:00:12,926 --> 00:00:16,033
una que aseguraría que el jugador
perdería el control

4
00:00:16,058 --> 00:00:19,550
después de haber hecho una serie
de errores,

5
00:00:19,666 --> 00:00:21,733
es decir, no han conseguido ganar el juego,

6
00:00:21,767 --> 00:00:25,233
y otra que aseguraría
que el jugador pierde el control

7
00:00:25,400 --> 00:00:27,167
una vez que gane el juego.

8
00:00:27,326 --> 00:00:33,300
Ambas pruebas fueron escritas
dentro del bloque de descripción de la entrada del jugador.

9
00:00:35,269 --> 00:00:37,067
Para el caso de perder el juego

10
00:00:37,067 --> 00:00:40,533
Acabo de hacer que el jugador haga
seis errores seguidos

11
00:00:40,700 --> 00:00:48,167
y luego afirmo que la entrada del jugador
tiene el atributo disabled.

12
00:00:49,233 --> 00:00:52,625
Del mismo modo, para el caso
de que el jugador gane el juego,

13
00:00:52,650 --> 00:00:54,877
el jugador acertará,

14
00:00:54,902 --> 00:00:57,648
es decir, su suposición va a
contendrá la palabra del día,

15
00:00:57,800 --> 00:01:00,367
y al igual que en la prueba anterior,

16
00:01:00,400 --> 00:01:04,433
la entrada también debe tener
el atributo disabled.

17
00:01:05,033 --> 00:01:06,633
Para que esta prueba pase,

18
00:01:06,700 --> 00:01:10,500
He definido un prop opcional
en la entrada del jugador.

19
00:01:10,593 --> 00:01:13,167
Así que puedes ver aquí
que estoy definiendo desactivado

20
00:01:13,192 --> 00:01:15,800
como una propiedad opcional de tipo booleano,

21
00:01:16,033 --> 00:01:19,767
y si el usuario
no me proporciona esta prop,

22
00:01:19,812 --> 00:01:22,772
será por defecto el valor falso.

23
00:01:23,500 --> 00:01:28,633
Esta prop se utiliza directamente
en la entrada nativa.

24
00:01:29,067 --> 00:01:33,333
Así que está inmediatamente ligada
al atributo HTML disabled.

25
00:01:34,583 --> 00:01:37,723
Este accesorio está siendo utilizado
por el wordleboard.

26
00:01:37,979 --> 00:01:40,633
Puedes ver aquí
que el accesorio desactivado

27
00:01:40,846 --> 00:01:43,700
sólo utiliza cualquier valor contenido

28
00:01:43,733 --> 00:01:46,500
dentro de nuestra propiedad
calculada isGameOver.

29
00:01:46,933 --> 00:01:50,517
Así que tan pronto como el juego termine
la propiedad disabled se convierte en true.

30
00:01:50,542 --> 00:01:53,433
De lo contrario, la propiedad desactivada es falsa.

31
00:01:54,963 --> 00:01:58,900
Para este trabajo, he hecho un commit
llamado disableControls

32
00:01:58,925 --> 00:02:00,300
si el juego ha terminado.

33
00:02:00,887 --> 00:02:06,946
Y como puedes ver
todas las pruebas siguen pasando.

34
00:02:08,733 --> 00:02:12,323
En cuanto a la representación
todo el tablero con conjeturas vacías

35
00:02:12,348 --> 00:02:13,700
al comienzo del juego,

36
00:02:13,867 --> 00:02:18,333
Consideré fuertemente no escribir
ninguna prueba adicional para esto,

37
00:02:18,567 --> 00:02:23,867
ya que primero pensé que esto
sería sólo una preferencia estilística

38
00:02:23,900 --> 00:02:28,333
en lugar de un verdadero operativo
de la aplicación.

39
00:02:29,043 --> 00:02:34,382
Pero al pensar un poco más sobre esto
cambié de opinión y llegué a la conclusión

40
00:02:34,407 --> 00:02:39,300
que el tablero siempre debe mostrar
exactamente cuántas conjeturas puede hacer el usuario

41
00:02:39,767 --> 00:02:42,233
es un requisito del juego.

42
00:02:42,840 --> 00:02:45,367
Pero honestamente,
siéntete libre de estar en desacuerdo conmigo.

43
00:02:45,400 --> 00:02:47,733
Sólo ten en cuenta que la idea

44
00:02:47,758 --> 00:02:51,333
es que deberíamos estar probando
el comportamiento y los objetivos,

45
00:02:51,533 --> 00:02:54,733
y esta línea puede ser
un poco borrosa a veces.

46
00:02:56,923 --> 00:02:58,610
Así que aquí están las pruebas que escribí

47
00:02:58,635 --> 00:03:01,767
para hacer cumplir que siempre habrá
seis conjeturas

48
00:03:01,926 --> 00:03:03,733
presentes durante todo el juego.

49
00:03:03,946 --> 00:03:06,633
Así que hice un bloque
bloque descriptivo para esto,

50
00:03:06,959 --> 00:03:11,308
y me aseguro de que habrá
exactamente seis conjeturas vistas

51
00:03:11,333 --> 00:03:13,427
al comienzo del juego.

52
00:03:13,500 --> 00:03:17,333
Y esto también sigue siendo cierto
si el jugador gana el juego,

53
00:03:17,400 --> 00:03:20,876
y sigue siendo cierto
si el jugador pierde el juego.

54
00:03:20,901 --> 00:03:22,557
Así que son tres pruebas diferentes,

55
00:03:22,567 --> 00:03:23,943
todas responsables de asegurar

56
00:03:23,968 --> 00:03:28,467
que el número de conjeturas vistas
en la página no cambie.

57
00:03:29,400 --> 00:03:31,033
Para que pasen,

58
00:03:31,058 --> 00:03:36,867
He optado por crear
un grupo adicional de elementos de la lista.

59
00:03:37,066 --> 00:03:38,363
Y puedes ver aquí

60
00:03:38,400 --> 00:03:41,567
que sólo estoy haciendo
una serie de conjeturas vacías

61
00:03:41,600 --> 00:03:44,827
bajo la vista de la conjetura de entrada.

62
00:03:45,186 --> 00:03:48,086
Y para calcular el número
de conjeturas vacías,

63
00:03:48,111 --> 00:03:50,400
Utilizo esta propiedad calculada aquí

64
00:03:50,433 --> 00:03:53,700
que se basa
en lo que es la MAX_GUESSES_COUNT

65
00:03:53,725 --> 00:03:55,330
a la que tiene derecho el jugador,

66
00:03:55,333 --> 00:03:58,367
y cuántos aciertos
han presentado hasta ahora.

67
00:03:58,767 --> 00:04:00,900
Por supuesto que una vez terminado el juego

68
00:04:00,925 --> 00:04:03,567
la conjetura de entrada
ya no será accesible,

69
00:04:03,600 --> 00:04:06,433
así que también necesito
tenerlo en cuenta aquí.

70
00:04:08,810 --> 00:04:13,000
Un inconveniente de la forma
Escribí estas pruebas aquí

71
00:04:13,267 --> 00:04:19,933
es que estoy haciendo cumplir una determinada cantidad
de componentes guess-view en concreto.

72
00:04:20,595 --> 00:04:22,242
Por lo tanto, en cierto modo,

73
00:04:22,267 --> 00:04:27,700
las pruebas que escribí aquí
están probando parte de la implementación.

74
00:04:28,393 --> 00:04:31,466
Escribir tests no es una ciencia exacta,

75
00:04:31,587 --> 00:04:36,800
y sigue siendo algo que tú y yo
deberíamos esforzarnos por mejorar cada día.

76
00:04:37,272 --> 00:04:38,667
Si tienes una sugerencia mejor

77
00:04:38,667 --> 00:04:41,117
sobre cómo deberíamos haber escrito
esta prueba de aquí,

78
00:04:41,142 --> 00:04:42,943
por favor, no dudes en contactar con nosotros.

79
00:04:42,968 --> 00:04:45,067
Me encantaría escuchar tus ideas.

80
00:04:46,033 --> 00:04:49,400
¡Impresionante! Con esto, nos hemos asegurado

81
00:04:49,433 --> 00:04:53,000
nuestros jugadores podrán ver
todas las adivinanzas que han hecho,

82
00:04:53,180 --> 00:04:56,233
y cuántas suposiciones
pueden realizar en el futuro.

83
00:04:56,534 --> 00:04:57,742
Y no sólo eso,

84
00:04:57,767 --> 00:05:02,100
sino que también hemos evitado con éxito
que nuestros jugadores adivinaran

85
00:05:02,125 --> 00:05:03,700
una vez que el juego ha terminado,

86
00:05:03,833 --> 00:05:08,900
que era una gran manera de explorar
cómo desactivar entradas con vue

87
00:05:08,925 --> 00:05:14,600
y cómo probar ese comportamiento
a través de vitest con vue test utils.


