Hoje codei mais coisas que eu conseguia fazer rápido e tentei muito fazer lançar um postgres antes dos testes mas não deu certo ainda 😕.
Eu to somente fazendo testes de integração no projeto, pois a lógica toda do negócio tá na modelagem dos dados e não nas funções do backend (pelo menos até então).
Eu tenho testes unitários no front porque lá tem lógica pequena pra cada componente.
Uma coisa que eu sempre utilizei em testes foi a lógica “setup/teardown”, onde eu criava uma função para subir as dependências externas daquela test suite e outra função (teardown) pra destruir o ambiente após os testes. Infelizmente Rust não consegue fazer isso sem uma lib :V.
Acabei encontrando este post no Medium https://medium.com/@ericdreichert/test-setup-and-teardown-in-rust-without-a-framework-ba32d97aa5ab que fez sentido, mas eu não tentei implementar nos meus tests, deu preguiça kkk.
Eu li o artigo https://medium.com/geekculture/backend-design-actix-web-project-hierarchy-7fc229bd830c e tentei fazer um pouco de “house keeping” pra deixar o projeto organizado.
Eu modifiquei um pouco os modelos, tinha esquecido de adicionar uma “UNIQUE” constraint em alguns campos de tabelas importantes: por exemplo, o nome de um lugar não pode ser o mesmo nome de outro no banco (Imagino que haja mas no momento , eu vou manter pra facilitar minha vida). O único problema disso é a penalidade de aumentar o tempo de INSERT porque a UNIQUE constraint vai criar um index na coluna (docs: https://www.postgresql.org/docs/current/ddl-constraints.html#DDL-CONSTRAINTS-UNIQUE-CONSTRAINTS ) (outra fonte legal é o livro PostgreSQL internals: https://edu.postgrespro.com/postgresql_internals-14_en.pdf) .
Finalmente, implementei a interface do repositório de PlaceSuggestion, como já fiz para o model Caldinho, já ficou bem mais fácil agora. Mas só terminei a rota de pegar um PlaceSuggestion em um id. (As outras eu defini a API, mas não implementei), esta parte é massa de Rust, eu consigo colocar um código bem bonitinho PORQUE EU SEI O TIPO QUE VEM!.
Foi pouca coisa mas consegui arrumar pequenas coisas neste domingo (e ler bastante kkk).