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:
committed by
Fred Carlsen
parent
1878a0c4b0
commit
5d0f82c3c6
@@ -1,10 +1,13 @@
|
||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||
|
||||
import { numberToBigIntTransformer } from '../utils';
|
||||
|
||||
@Entity({ name: 'blocks', schema: 'raw' })
|
||||
export class Block {
|
||||
@PrimaryColumn() public hash!: string;
|
||||
@PrimaryColumn() public number!: number;
|
||||
@PrimaryColumn({ transformer: numberToBigIntTransformer })
|
||||
public number!: number;
|
||||
|
||||
@Column({ name: 'timestamp' })
|
||||
@Column({ name: 'timestamp', transformer: numberToBigIntTransformer })
|
||||
public timestamp!: number;
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||
|
||||
import { AssetType } from '../types';
|
||||
import { numberToBigIntTransformer } from '../utils';
|
||||
|
||||
@Entity({ name: 'exchange_cancel_events', schema: 'raw' })
|
||||
export class ExchangeCancelEvent {
|
||||
@@ -8,7 +9,7 @@ export class ExchangeCancelEvent {
|
||||
public contractAddress!: string;
|
||||
@PrimaryColumn({ name: 'log_index' })
|
||||
public logIndex!: number;
|
||||
@PrimaryColumn({ name: 'block_number' })
|
||||
@PrimaryColumn({ name: 'block_number', transformer: numberToBigIntTransformer })
|
||||
public blockNumber!: number;
|
||||
|
||||
@Column({ name: 'raw_data' })
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import { BigNumber } from '@0x/utils';
|
||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||
|
||||
import { bigNumberTransformer } from '../utils';
|
||||
import { bigNumberTransformer, numberToBigIntTransformer } from '../utils';
|
||||
|
||||
@Entity({ name: 'exchange_cancel_up_to_events', schema: 'raw' })
|
||||
export class ExchangeCancelUpToEvent {
|
||||
@@ -9,7 +9,7 @@ export class ExchangeCancelUpToEvent {
|
||||
public contractAddress!: string;
|
||||
@PrimaryColumn({ name: 'log_index' })
|
||||
public logIndex!: number;
|
||||
@PrimaryColumn({ name: 'block_number' })
|
||||
@PrimaryColumn({ name: 'block_number', transformer: numberToBigIntTransformer })
|
||||
public blockNumber!: number;
|
||||
|
||||
// TODO(albrow): Include transaction hash
|
||||
|
@@ -2,7 +2,7 @@ import { BigNumber } from '@0x/utils';
|
||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||
|
||||
import { AssetType } from '../types';
|
||||
import { bigNumberTransformer } from '../utils';
|
||||
import { bigNumberTransformer, numberToBigIntTransformer } from '../utils';
|
||||
|
||||
@Entity({ name: 'exchange_fill_events', schema: 'raw' })
|
||||
export class ExchangeFillEvent {
|
||||
@@ -10,7 +10,7 @@ export class ExchangeFillEvent {
|
||||
public contractAddress!: string;
|
||||
@PrimaryColumn({ name: 'log_index' })
|
||||
public logIndex!: number;
|
||||
@PrimaryColumn({ name: 'block_number' })
|
||||
@PrimaryColumn({ name: 'block_number', transformer: numberToBigIntTransformer })
|
||||
public blockNumber!: number;
|
||||
|
||||
@Column({ name: 'raw_data' })
|
||||
|
@@ -1,16 +1,18 @@
|
||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||
|
||||
import { numberToBigIntTransformer } from '../utils';
|
||||
|
||||
@Entity({ name: 'transactions', schema: 'raw' })
|
||||
export class Transaction {
|
||||
@PrimaryColumn({ name: 'transaction_hash' })
|
||||
public transactionHash!: string;
|
||||
@PrimaryColumn({ name: 'block_hash' })
|
||||
public blockHash!: string;
|
||||
@PrimaryColumn({ name: 'block_number' })
|
||||
@PrimaryColumn({ name: 'block_number', transformer: numberToBigIntTransformer })
|
||||
public blockNumber!: number;
|
||||
|
||||
@Column({ type: 'bigint', name: 'gas_used' })
|
||||
@Column({ type: 'bigint', name: 'gas_used', transformer: numberToBigIntTransformer })
|
||||
public gasUsed!: number;
|
||||
@Column({ type: 'bigint', name: 'gas_price' })
|
||||
@Column({ type: 'bigint', name: 'gas_price', transformer: numberToBigIntTransformer })
|
||||
public gasPrice!: number;
|
||||
}
|
||||
|
Reference in New Issue
Block a user