SOS-RS / backend

Auxílio RS: Projetos de Resposta a Emergências por Chuvas e Alagamentos
https://sos-rs.com
MIT License
706 stars 306 forks source link

feat: item_update_logs implementation #161

Closed risaddex closed 1 month ago

risaddex commented 2 months ago

Histórico de Modificações dos Itens do Abrigo

146

Implementação inicial que fecha a #146

Além disso também deixei esquematizado um audit genérico caso achem válido. Caso contrário removo do PR dps de fechar o draft

rhuam commented 2 months ago

@risaddex pode só alterar o nome da tabela para supplies_history, por gentileza. Foi uma sugestão pertinente do @giggio que ajuda a entender o que essa tabela armazena de fato.

risaddex commented 1 month ago

Estou com erro ao rodar os testes:

> dotenv -e .env.test -- jest --config ./test/jest.e2e.config.ts

 FAIL  test/app.e2e-spec.ts
  ● Test suite failed to run

    test/app.e2e-spec.ts:80:30 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    80     const log = await prisma.suppliesHistory.findFirst({
                                    ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:108:33 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    108     const before = await prisma.suppliesHistory.count();
                                        ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:119:32 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    119     const after = await prisma.suppliesHistory.count();
                                       ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:120:42 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    120     const suppliesHistory = await prisma.suppliesHistory.findMany({
                                                 ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:211:12 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    211     prisma.suppliesHistory.deleteMany(),
                   ~~~~~~~~~~~~~~~

Test Suites: 1 failed, 1 total

Boa. Creio que faltou colocar o "prisma migrade deploy" antes de executar o teste. (achava que rodava antes na pipeline, por isso não mencionei)

risaddex commented 1 month ago

Estou com erro ao rodar os testes:

> dotenv -e .env.test -- jest --config ./test/jest.e2e.config.ts

 FAIL  test/app.e2e-spec.ts
  ● Test suite failed to run

    test/app.e2e-spec.ts:80:30 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    80     const log = await prisma.suppliesHistory.findFirst({
                                    ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:108:33 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    108     const before = await prisma.suppliesHistory.count();
                                        ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:119:32 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    119     const after = await prisma.suppliesHistory.count();
                                       ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:120:42 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    120     const suppliesHistory = await prisma.suppliesHistory.findMany({
                                                 ~~~~~~~~~~~~~~~
    test/app.e2e-spec.ts:211:12 - error TS2339: Property 'suppliesHistory' does not exist on type 'PrismaService'.

    211     prisma.suppliesHistory.deleteMany(),
                   ~~~~~~~~~~~~~~~

Test Suites: 1 failed, 1 total

Boa. Creio que faltou colocar o "prisma migrade deploy" antes de executar o teste. (achava que rodava antes na pipeline, por isso não mencionei)

Na verdade meu eu do passado tinha me ajudado, colocando o "pre" hook do npm. Ocorre mesmo usando o "npm run test:e2e" ?

fagundesjg commented 1 month ago

Para formalizar o fechamento do PR, vou colar aqui a resposta oficial do @rhuam que foi dada ao author no grupo do discord:

"optamos por uma solução com menos complexidade de código, onde a regra de negócio ficasse no banco de dados de forma nativa, sem usar JSON para armazenar dados. Sua solução estava ótima, mas acreditamos que a #162 performa melhor e é mais fácil para dar manutenção."