Leave a rating/review
There is one more thing we need to do before moving on to the next section which is refactoring our DetailViewModel
Take a look at the saveNewItem() method. I think it is doing a lot of work on this part. It is formatting the wishlist for saving when one could argue we need to do that on the repository.
So, we’re gonna have to change 3 files. First, we’re going to change it to instead of passing this as a parameter we’re going to simple pass a wishlist and the new item’s name.
Now open the repository’s interface inside the main package. Here we need to change this method’s signature to also accept a named parameter ot type string. We will need to change the implementation as well, and in here:
wishlistDao.save(wishlist.copy(wishes = wishlist.wishes + name))
in here name of type string.
That’s it. Execute all of your tests to make sure all of your code to make sure everything still works as expected.
This is the beauty of having integration tests and unit tests if you refactor your code you can make sure that everything is still working as you expected if you run your tests and all of them pass. And they all did. Nice!