PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jaki byłby właściwy sposób testowania metod tworzenia łańcuchów QueryBuilder TypeORM?

możesz użyć jest.spyOn dla QueryBuilder prototypjak ten:

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

wykorzystanie funkcji


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. Zwiększenie rozmiaru bazy danych PostgreSQL

  2. Projektowanie bazy danych z okresowymi danymi z czujników

  3. Odpowiedź Json na konwersję daty i godziny postgresql Java postgresql

  4. PostgreSQL, trygramy i podobieństwa

  5. Jak działa Tand() w PostgreSQL