sql >> Database >  >> RDS >> PostgreSQL

Wat zou een goede manier zijn om de QueryBuilder-ketenmethoden van TypeORM te testen?

je kunt jest.spyOn gebruiken voor de QueryBuilder prototype zoals dit:

import { QueryBuilder } from 'typeorm';

describe('Name of the group', () => {
    it('should do something', () => {
      const queryBuilder: any = {
        into: jest.fn().mockReturnThis(),
        values: jest.fn().mockReturnThis(),
        onConflict: jest.fn().mockReturnThis(),
        setParameter: jest.fn().mockReturnThis(),
        execute: jest.fn().mockRejectedValueOnce(new Error('db Error')),
        // execute: jest.fn().mockResolvedValueOnce({ res: 'mockRes' }),
      };
      jest
        .spyOn(QueryBuilder.prototype, 'insert')
        .mockReturnValueOnce(queryBuilder);
    });
});

functiegebruik


export async function doQuery(input: any){
  const queryRunner = await Entity.createQueryRunner();
  await queryRunner.manager
  .createQueryBuilder()
  .insert()
  .into(Entity)
  .values(input)
  .onConflict(
    `("id") DO UPDATE SET "date" = :date`
  )
  .setParameter('date', date)
  .execute();
}




  1. Database kopiëren/dupliceren zonder mysqldump

  2. Hoe relationele tabellen te bouwen in een tweezijdige marktplaats?

  3. Genereer een reeks datums - gebruik het datumtype als invoer

  4. beste manier om twee databaseservers aan te roepen