Introduce framework for running basic tests for entities (#1344)
* Introduce framework for running basic tests for entities * Add pipeline tests to CircleCI config * Make pipeline tests more configurable and fix CircleCI config * Add coverage dir to pipeline package * Add basic tests for all exchange event entities * Add tests for remaining entities * Create separate test scripts in package.json and add new info to README * Update db_setup.ts to revert migrations even if you are using docker * Automatically pull the postgres image if needed * Add comment about why NumberToBigIntTransformer is needed
This commit is contained in:
25
packages/pipeline/test/entities/util.ts
Normal file
25
packages/pipeline/test/entities/util.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import * as chai from 'chai';
|
||||
import 'mocha';
|
||||
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
const expect = chai.expect;
|
||||
|
||||
/**
|
||||
* First saves the given entity to the database, then finds it and makes sure
|
||||
* that the found entity is exactly equal to the original one. This is a bare
|
||||
* minimum basic test to make sure that the entity type definition and our
|
||||
* database schema are aligned and that it is possible to save and find the
|
||||
* entity.
|
||||
* @param repository A TypeORM repository corresponding with the type of the entity.
|
||||
* @param entity An instance of a TypeORM entity which will be saved/retrieved from the database.
|
||||
*/
|
||||
export async function testSaveAndFindEntityAsync<T>(repository: Repository<T>, entity: T): Promise<void> {
|
||||
// Note(albrow): We are forced to use an 'as any' hack here because
|
||||
// TypeScript complains about stack depth when checking the types.
|
||||
await repository.save(entity as any);
|
||||
const gotEntity = await repository.findOneOrFail({
|
||||
where: entity,
|
||||
});
|
||||
expect(gotEntity).deep.equal(entity);
|
||||
}
|
Reference in New Issue
Block a user