sql >> Databáze >  >> RDS >> PostgreSQL

Jaký by byl správný způsob, jak otestovat metody řetězení TypeORM QueryBuilder?

můžete použít jest.spyOn pro QueryBuilder prototyp jako tento:

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);
    });
});

využití funkce


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. Jak funguje SQLite Min()

  2. Najděte duplikáty ve stejné tabulce v MySQL

  3. System.ArgumentException:Parametr typu tabulky musí mít platný název typu

  4. Zabránit souběžnosti v Nodejs