sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad ville være en korrekt måde at teste TypeORM's QueryBuilder-kædemetoder på?

du kan bruge jest.spyOn til QueryBuilder prototype som denne:

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

funktionsbrug


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. Oprettelse af en kml-fil fra en mysql-database med php

  2. Java-hent ResultSet fra SQL Array mislykkes

  3. InMemory DUPLIKAT Forvirring i Oracle RAC

  4. SQL-database for relaterede familiemedlemmer