fix chain_test

pull/2825/head
Ayrat Badykov 5 years ago
parent 85fd91faac
commit 2b8d490190
No known key found for this signature in database
GPG Key ID: B44668E265E9396F
  1. 189
      apps/explorer/test/explorer/chain_test.exs

@ -316,7 +316,6 @@ defmodule Explorer.ChainTest do
:transaction
|> insert(from_address: address)
|> with_block()
|> Repo.preload(:token_transfers)
assert [transaction] ==
Chain.address_to_transactions_with_rewards(address_hash, direction: :from)
@ -330,7 +329,6 @@ defmodule Explorer.ChainTest do
:transaction
|> insert(to_address: address)
|> with_block()
|> Repo.preload(:token_transfers)
assert [transaction] ==
Chain.address_to_transactions_with_rewards(address_hash, direction: :to)
@ -344,7 +342,6 @@ defmodule Explorer.ChainTest do
:transaction
|> insert(from_address: address)
|> with_block()
|> Repo.preload(:token_transfers)
# only contains "from" transaction
assert [transaction] ==
@ -359,7 +356,6 @@ defmodule Explorer.ChainTest do
:transaction
|> insert(to_address: address)
|> with_block()
|> Repo.preload(:token_transfers)
assert [transaction] ==
Chain.address_to_transactions_with_rewards(address_hash, direction: :to)
@ -374,13 +370,11 @@ defmodule Explorer.ChainTest do
:transaction
|> insert(to_address: address)
|> with_block(block)
|> Repo.preload(:token_transfers)
transaction2 =
:transaction
|> insert(from_address: address)
|> with_block(block)
|> Repo.preload(:token_transfers)
assert [transaction2, transaction1] ==
Chain.address_to_transactions_with_rewards(address_hash)
@ -424,111 +418,6 @@ defmodule Explorer.ChainTest do
|> Enum.map(& &1.hash)
end
test "returns just the token transfers related to the given address" do
%Address{hash: address_hash} = address = insert(:address)
transaction =
:transaction
|> insert(to_address: address)
|> with_block()
token_transfer =
insert(
:token_transfer,
to_address: address,
transaction: transaction
)
insert(
:token_transfer,
to_address: build(:address),
transaction: transaction
)
transaction =
address_hash
|> Chain.address_to_transactions_with_rewards()
|> List.first()
token_transfers_related =
Enum.map(
transaction.token_transfers,
&{&1.transaction_hash, &1.log_index}
)
assert token_transfers_related == [
{token_transfer.transaction_hash, token_transfer.log_index}
]
end
test "returns just the token transfers related to the given contract address" do
contract_address =
insert(
:address,
contract_code: Factory.data("contract_code")
)
transaction =
:transaction
|> insert(to_address: contract_address)
|> with_block()
token_transfer =
insert(
:token_transfer,
to_address: contract_address,
transaction: transaction
)
insert(
:token_transfer,
to_address: build(:address),
transaction: transaction
)
transaction =
contract_address.hash
|> Chain.address_to_transactions_with_rewards()
|> List.first()
token_transfers_contract_address =
Enum.map(
transaction.token_transfers,
&{&1.transaction_hash, &1.log_index}
)
assert token_transfers_contract_address == [
{token_transfer.transaction_hash, token_transfer.log_index}
]
end
test "returns all token transfers when the given address is the token contract address" do
%Address{hash: contract_address_hash} =
contract_address = insert(:address, contract_code: Factory.data("contract_code"))
transaction =
:transaction
|> insert(to_address: contract_address)
|> with_block()
insert(
:token_transfer,
to_address: build(:address),
token_contract_address: contract_address,
transaction: transaction
)
insert(
:token_transfer,
to_address: build(:address),
token_contract_address: contract_address,
transaction: transaction
)
transaction = Chain.address_to_transactions_with_rewards(contract_address_hash) |> List.first()
assert Enum.count(transaction.token_transfers) == 2
end
test "with transactions can be paginated" do
%Address{hash: address_hash} = address = insert(:address)
@ -1233,6 +1122,84 @@ defmodule Explorer.ChainTest do
end
describe "address_hash_to_token_transfers/2" do
test "returns just the token transfers related to the given contract address" do
contract_address =
insert(
:address,
contract_code: Factory.data("contract_code")
)
transaction =
:transaction
|> insert(to_address: contract_address)
|> with_block()
token_transfer =
insert(
:token_transfer,
to_address: contract_address,
transaction: transaction
)
insert(
:token_transfer,
to_address: build(:address),
transaction: transaction
)
transaction =
contract_address.hash
|> Chain.address_hash_to_token_transfers()
|> List.first()
token_transfers_contract_address =
Enum.map(
transaction.token_transfers,
&{&1.transaction_hash, &1.log_index}
)
assert token_transfers_contract_address == [
{token_transfer.transaction_hash, token_transfer.log_index}
]
end
test "returns just the token transfers related to the given address" do
%Address{hash: address_hash} = address = insert(:address)
transaction =
:transaction
|> insert(to_address: address)
|> with_block()
token_transfer =
insert(
:token_transfer,
to_address: address,
transaction: transaction
)
insert(
:token_transfer,
to_address: build(:address),
transaction: transaction
)
transaction =
address_hash
|> Chain.address_hash_to_token_transfers()
|> List.first()
token_transfers_related =
Enum.map(
transaction.token_transfers,
&{&1.transaction_hash, &1.log_index}
)
assert token_transfers_related == [
{token_transfer.transaction_hash, token_transfer.log_index}
]
end
test "fetches token transfers by address hash" do
address = insert(:address)

Loading…
Cancel
Save