Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

70 añadir unit tests detailviewmodel #99

Merged
merged 18 commits into from
Mar 12, 2024

Conversation

Mj-br
Copy link
Collaborator

@Mj-br Mj-br commented Mar 4, 2024

🎩 How was this resolved?

Cambios Realizados:

-Se soluciona el playCry (Me di cuenta con los test que se estaba llamando ANTES de crear la pantalla, por lo tanto al no ser success daba una excepción).

  • Se cambia el nombre de la variable _pokemonDetailInfo a _uiState que contienen los estados de la ui para mayor legibilidad.
  • He añadido la anotación annotation class PokemonId y la he inyectado para reemplazar el saveStateHandle simulando lo que hace Antonio al testear su DetailViewModel y poder simplificar los test.
  • He creado el UseCase de PlayCry y su test.
  • Se cambia el tipo de la variable uiState a StateFlow (antes estaba a MutableStateFlow) para que no sea mutable y solo pueda cambiarse dentro del viewModel.
  • Se elimina la variable once ya que, ahora, no es necesaria, al hacer test y hacer varias pruebas me he dado cuenta de ello.
  • A la función getPokemonDetails se le agregan las lambdas .onStart (para ejecutar el Loading inicial) y el .onEach para cambiar el estado según el resultado.
  • He estado resolviendo algunas cosas de Detekt aprovechando que yo estaba testeando la feature de Detail.
  • He puesto los parámetros a 12 en Detekt (constructorThreshold) para las funciones de composables que tienen muchos pero quizá se pueda hacer de otra manera.

Detalles Adicionales:

  • He puesto la llamada del getPokemonDetails al crearse la pantalla y no el viewmodel. Lo hice al darme cuenta que el loading no se estaba llamando nunca al hacer los test (aunque luego al agregar el onStart y hacer pruebas si que se muestra el loading en el init pero no logre que se viera en el test).
  • Tengo algunas dudas con los test, luego si tal lo vemos en una reunión y os enseño, creo que está bien así pero quería intentar hacer algunas cosas más pero no me salían bien, entonces lo vemos cuando se pueda.

Instrucciones para Revisión:

  • Darle un vistazo a los test y a la app ya que he solucionado el tema del playCry que no estaba funcionando antes.

@Mj-br Mj-br added the enhancement New feature or request label Mar 4, 2024
@Mj-br Mj-br self-assigned this Mar 4, 2024
@Mj-br Mj-br requested review from JuJoDevs and timacosta as code owners March 4, 2024 18:04
@Mj-br Mj-br linked an issue Mar 4, 2024 that may be closed by this pull request
@Mj-br Mj-br requested review from timacosta and JuJoDevs and removed request for JuJoDevs and timacosta March 4, 2024 18:04
@JuJoDevs JuJoDevs merged commit 8dc919a into develop Mar 12, 2024
1 check passed
@JuJoDevs JuJoDevs deleted the 70-añadir-unit-tests-detailviewmodel branch March 12, 2024 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Añadir unit tests - DetailViewModel
3 participants