PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какъв би бил правилният начин за тестване на методите за верижно свързване на QueryBuilder на TypeORM?

можете да използвате jest.spyOn за QueryBuilder прототип като този:

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

използване на функция


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
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо моята заявка, включваща деление и БРОЙ, винаги води до 1?

  2. Rails + Postgres:Не връща информация за часовата зона в колона от обединена таблица

  3. Как да създадете база данни с flyway?

  4. непълна информация от заявка за pg_views

  5. Как да създадете PostgreSQL база данни