backend icon indicating copy to clipboard operation
backend copied to clipboard

feat: item_update_logs implementation

Open risaddex opened this issue 1 year ago • 1 comments

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

Implementação inicial que fecha a #146

  • [x] método "updateAndAudit" criado
  • [x] método "updateAndAuditMany" criado

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

risaddex avatar May 22 '24 04:05 risaddex

@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.

rhuam avatar May 22 '24 13:05 rhuam

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 avatar May 23 '24 20:05 risaddex

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" ?

risaddex avatar May 23 '24 20:05 risaddex

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."

fagundesjg avatar May 23 '24 22:05 fagundesjg