Add TransactionExecution log tests

This commit is contained in:
Amir Bandeali
2019-05-23 19:13:38 -05:00
parent c96a81e319
commit 4f818d55fa

View File

@@ -37,6 +37,7 @@ import {
ExchangeFillEventArgs,
ExchangeFunctionName,
ExchangeSignatureValidatorApprovalEventArgs,
ExchangeTransactionExecutionEventArgs,
ExchangeWrapper,
ExchangeWrapperContract,
WhitelistContract,
@@ -46,7 +47,7 @@ chaiSetup.configure();
const expect = chai.expect;
const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper);
// tslint:disable:no-unnecessary-type-assertion
describe('Exchange transactions', () => {
describe.only('Exchange transactions', () => {
let chainId: number;
let senderAddress: string;
let owner: string;
@@ -157,6 +158,27 @@ describe('Exchange transactions', () => {
taker2TransactionFactory = new TransactionFactory(taker2PrivateKey, exchangeInstance.address, chainId);
});
describe('executeTransaction', () => {
describe('general functionality', () => {
it('should log the correct transactionHash if successfully executed', async () => {
const order = await orderFactory.newSignedOrderAsync();
const orders = [order];
const data = exchangeDataEncoder.encodeOrdersToExchangeData(ExchangeFunctionName.FillOrder, orders);
const transaction = await takerTransactionFactory.newSignedTransactionAsync(data);
const transactionReceipt = await exchangeWrapper.executeTransactionAsync(transaction, takerAddress);
const transactionExecutionLogs = transactionReceipt.logs.filter(
log =>
(log as LogWithDecodedArgs<ExchangeTransactionExecutionEventArgs>).event ===
'TransactionExecution',
);
expect(transactionExecutionLogs.length).to.eq(1);
const executionLogArgs = (transactionExecutionLogs[0] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction)).to.equal(
executionLogArgs.transactionHash,
);
});
});
describe('fill methods', () => {
for (const fnName of [
...exchangeConstants.SINGLE_FILL_FN_NAMES,
@@ -631,6 +653,28 @@ describe('Exchange transactions', () => {
[transaction1, transaction2],
senderAddress,
);
const transactionExecutionLogs = transactionReceipt.logs.filter(
log =>
(log as LogWithDecodedArgs<ExchangeTransactionExecutionEventArgs>).event ===
'TransactionExecution',
);
expect(transactionExecutionLogs.length).to.eq(2);
const execution1LogArgs = (transactionExecutionLogs[0] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction1)).to.equal(
execution1LogArgs.transactionHash,
);
const execution2LogArgs = (transactionExecutionLogs[1] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction2)).to.equal(
execution2LogArgs.transactionHash,
);
const fillLogs = transactionReceipt.logs.filter(
log => (log as LogWithDecodedArgs<ExchangeFillEventArgs>).event === 'Fill',
);
@@ -675,6 +719,28 @@ describe('Exchange transactions', () => {
[transaction1, transaction2],
takerAddress,
);
const transactionExecutionLogs = transactionReceipt.logs.filter(
log =>
(log as LogWithDecodedArgs<ExchangeTransactionExecutionEventArgs>).event ===
'TransactionExecution',
);
expect(transactionExecutionLogs.length).to.eq(2);
const execution1LogArgs = (transactionExecutionLogs[0] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction1)).to.equal(
execution1LogArgs.transactionHash,
);
const execution2LogArgs = (transactionExecutionLogs[1] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction2)).to.equal(
execution2LogArgs.transactionHash,
);
const fillLogs = transactionReceipt.logs.filter(
log => (log as LogWithDecodedArgs<ExchangeFillEventArgs>).event === 'Fill',
);
@@ -718,6 +784,28 @@ describe('Exchange transactions', () => {
[transaction1, transaction2],
taker2Address,
);
const transactionExecutionLogs = transactionReceipt.logs.filter(
log =>
(log as LogWithDecodedArgs<ExchangeTransactionExecutionEventArgs>).event ===
'TransactionExecution',
);
expect(transactionExecutionLogs.length).to.eq(2);
const execution1LogArgs = (transactionExecutionLogs[0] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction1)).to.equal(
execution1LogArgs.transactionHash,
);
const execution2LogArgs = (transactionExecutionLogs[1] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction2)).to.equal(
execution2LogArgs.transactionHash,
);
const fillLogs = transactionReceipt.logs.filter(
log => (log as LogWithDecodedArgs<ExchangeFillEventArgs>).event === 'Fill',
);
@@ -791,6 +879,27 @@ describe('Exchange transactions', () => {
senderAddress,
);
const transactionExecutionLogs = transactionReceipt.logs.filter(
log =>
(log as LogWithDecodedArgs<ExchangeTransactionExecutionEventArgs>).event ===
'TransactionExecution',
);
expect(transactionExecutionLogs.length).to.eq(2);
const execution1LogArgs = (transactionExecutionLogs[0] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction1)).to.equal(
execution1LogArgs.transactionHash,
);
const execution2LogArgs = (transactionExecutionLogs[1] as LogWithDecodedArgs<
ExchangeTransactionExecutionEventArgs
>).args;
expect(transactionHashUtils.getTransactionHashHex(transaction2)).to.equal(
execution2LogArgs.transactionHash,
);
let fillLogIndex: number = 0;
let cancelLogIndex: number = 0;
const fillLogs = transactionReceipt.logs.filter((log, index) => {