* 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
		
			
				
	
	
		
			26 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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);
 | 
						|
}
 |