diff options
author | Alex Browne <stephenalexbrowne@gmail.com> | 2018-11-29 05:21:04 +0800 |
---|---|---|
committer | Fred Carlsen <fred@sjelfull.no> | 2018-12-06 19:05:38 +0800 |
commit | d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4 (patch) | |
tree | e6d09ea275ec35f112869ee221d1147718a82ad5 /packages/pipeline/test/entities/util.ts | |
parent | 3ca876c5744d9030f4d954f73038ddb05d014d42 (diff) | |
download | dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.tar dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.tar.gz dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.tar.bz2 dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.tar.lz dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.tar.xz dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.tar.zst dexon-sol-tools-d14d38dabd0d40d85f4844cb9bbdd5916a26a2d4.zip |
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
Diffstat (limited to 'packages/pipeline/test/entities/util.ts')
-rw-r--r-- | packages/pipeline/test/entities/util.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/pipeline/test/entities/util.ts b/packages/pipeline/test/entities/util.ts new file mode 100644 index 000000000..043a3b15d --- /dev/null +++ b/packages/pipeline/test/entities/util.ts @@ -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); +} |