Separate big feature test into smaller more focused tests

Co-authored-by: tmecklem <timothy@mecklem.com>
pull/130/head
jimmay5469 7 years ago committed by Luke Imhoff
parent 973a52a29c
commit 362920288b
  1. 246
      apps/explorer_web/test/explorer_web/features/contributor_browsing_test.exs

@ -105,104 +105,156 @@ defmodule ExplorerWeb.UserListTest do
|> assert_has(css(".transactions__link--long-hash", text: "0xfaschtnacht")) |> assert_has(css(".transactions__link--long-hash", text: "0xfaschtnacht"))
end end
test "views transactions", %{session: session} do describe "transactions and address pages" do
block = setup do
insert(:block, %{ block =
number: 555, insert(:block, %{
timestamp: Timex.now() |> Timex.shift(hours: -2), number: 555,
gas_used: 123_987 timestamp: Timex.now() |> Timex.shift(hours: -2),
}) gas_used: 123_987
})
for _ <- 0..3, do: insert(:transaction) |> with_block(block)
insert(:transaction, hash: "0xC001", gas: 5891) |> with_block for _ <- 0..3, do: insert(:transaction) |> with_block(block)
insert(:transaction, hash: "0xC001", gas: 5891) |> with_block
lincoln = insert(:address, hash: "0xlincoln")
taft = insert(:address, hash: "0xhowardtaft") lincoln = insert(:address, hash: "0xlincoln")
taft = insert(:address, hash: "0xhowardtaft")
transaction =
insert( transaction =
:transaction, insert(
hash: "0xSk8", :transaction,
value: Explorer.Chain.Wei.from(Decimal.new(5656), :ether), hash: "0xSk8",
gas: Decimal.new(1_230_000_000_000_123_123), value: Explorer.Chain.Wei.from(Decimal.new(5656), :ether),
gas_price: Decimal.new(7_890_000_000_898_912_300_045), gas: Decimal.new(1_230_000_000_000_123_123),
input: "0x00012", gas_price: Decimal.new(7_890_000_000_898_912_300_045),
nonce: 99045, input: "0x00012",
inserted_at: Timex.parse!("1970-01-01T00:00:18-00:00", "{ISO:Extended}"), nonce: 99045,
updated_at: Timex.parse!("1980-01-01T00:00:18-00:00", "{ISO:Extended}"), inserted_at: Timex.parse!("1970-01-01T00:00:18-00:00", "{ISO:Extended}"),
from_address_id: taft.id, updated_at: Timex.parse!("1980-01-01T00:00:18-00:00", "{ISO:Extended}"),
to_address_id: lincoln.id from_address_id: taft.id,
) to_address_id: lincoln.id
)
insert(:block_transaction, block: block, transaction: transaction)
insert(:block_transaction, block: block, transaction: transaction)
receipt = insert(:receipt, transaction: transaction, status: 1)
insert(:log, address_id: lincoln.id, receipt: receipt) receipt = insert(:receipt, transaction: transaction, status: 1)
insert(:log, address_id: lincoln.id, receipt: receipt)
# From Lincoln to Taft.
txn_from_lincoln = # From Lincoln to Taft.
insert( txn_from_lincoln =
:transaction, insert(
hash: "0xrazerscooter", :transaction,
from_address_id: lincoln.id, hash: "0xrazerscooter",
to_address_id: taft.id from_address_id: lincoln.id,
) to_address_id: taft.id
)
insert(:block_transaction, block: block, transaction: txn_from_lincoln)
insert(:block_transaction, block: block, transaction: txn_from_lincoln)
insert(:receipt, transaction: txn_from_lincoln)
insert(:receipt, transaction: txn_from_lincoln)
internal = insert(:internal_transaction, transaction_id: transaction.id)
internal = insert(:internal_transaction, transaction_id: transaction.id)
Credit.refresh()
Debit.refresh() Credit.refresh()
Debit.refresh()
session
|> visit("/en") {:ok, %{internal: internal}}
|> assert_has(css(".transactions__title", text: "Transactions")) end
|> assert_has(css(".transactions__column--hash", count: 5))
|> assert_has(css(".transactions__column--value", count: 5)) test "views transactions", %{session: session} do
|> assert_has(css(".transactions__column--age", count: 5, visible: false)) session
|> visit("/transactions") |> visit("/en")
|> click(css(".transactions__tab-link", text: "Pending")) |> assert_has(css(".transactions__title", text: "Transactions"))
|> click(css(".transactions__link", text: "0xC001")) |> assert_has(css(".transactions__column--hash", count: 5))
|> assert_has(css(".transaction__item-value--status", text: "Pending")) |> assert_has(css(".transactions__column--value", count: 5))
|> visit("/transactions") |> assert_has(css(".transactions__column--age", count: 5, visible: false))
|> refute_has(css(".transactions__column--block", text: "Pending")) end
|> click(link("0xSk8"))
|> assert_has(css(".transaction__subheading", text: "0xSk8")) test "can see pending transactions", %{session: session} do
|> assert_has(css(".transaction__item", text: "123,987")) session
|> assert_has(css(".transaction__item", text: "5,656 POA")) |> visit("/transactions")
|> assert_has(css(".transaction__item", text: "Success")) |> click(css(".transactions__tab-link", text: "Pending"))
|> assert_has( |> click(css(".transactions__link", text: "0xC001"))
css( |> assert_has(css(".transaction__item-value--status", text: "Pending"))
".transaction__item", end
text: "7,890,000,000,898,912,300,045 Wei (7,890,000,000,898.912 Gwei)"
test "don't see pending transactions by default", %{session: session} do
session
|> visit("/transactions")
|> refute_has(css(".transactions__column--block", text: "Pending"))
end
test "can see a transaction's details", %{session: session} do
session
|> visit("/transactions")
|> click(link("0xSk8"))
|> assert_has(css(".transaction__subheading", text: "0xSk8"))
|> assert_has(css(".transaction__item", text: "123,987"))
|> assert_has(css(".transaction__item", text: "5,656 POA"))
|> assert_has(css(".transaction__item", text: "Success"))
|> assert_has(
css(
".transaction__item",
text: "7,890,000,000,898,912,300,045 Wei (7,890,000,000,898.912 Gwei)"
)
) )
) |> assert_has(css(".transaction__item", text: "1,230,000,000,000,123,123 Gas"))
|> assert_has(css(".transaction__item", text: "1,230,000,000,000,123,123 Gas")) |> assert_has(css(".transaction__item", text: "0x00012"))
|> assert_has(css(".transaction__item", text: "0x00012")) |> assert_has(css(".transaction__item", text: "99045"))
|> assert_has(css(".transaction__item", text: "99045")) |> assert_has(css(".transaction__item", text: "123,987"))
|> assert_has(css(".transaction__item", text: "123,987")) |> assert_has(css(".transaction__item", text: "0xlincoln"))
|> assert_has(css(".transaction__item", text: "0xlincoln")) |> assert_has(css(".transaction__item", text: "0xhowardtaft"))
|> assert_has(css(".transaction__item", text: "0xhowardtaft")) |> assert_has(css(".transaction__item", text: "block confirmations"))
|> assert_has(css(".transaction__item", text: "block confirmations")) |> assert_has(css(".transaction__item", text: "49 years ago"))
|> assert_has(css(".transaction__item", text: "49 years ago")) |> assert_has(css(".transaction__item", text: "38 years ago"))
|> assert_has(css(".transaction__item", text: "38 years ago")) end
|> click(link("Internal Transactions"))
|> assert_has(css(".internal-transaction__table", text: internal.call_type)) test "can see internal transactions for a transaction", %{
|> visit("/en/transactions/0xSk8") session: session,
|> click(link("Logs")) internal: internal
|> assert_has(css(".transaction-log__link", text: "0xlincoln")) } do
|> click(css(".transaction-log__link", text: "0xlincoln")) session
|> assert_has(css(".address__subheading", text: "0xlincoln")) |> visit("/en/transactions/0xSk8")
|> click(css(".address__link", text: "Transactions")) |> click(link("Internal Transactions"))
|> assert_has(css(".transactions__link--long-hash", text: "0xSk8")) |> assert_has(css(".internal-transaction__table", text: internal.call_type))
|> click(css(".address__link", text: "To")) end
|> assert_has(css(".transactions__link--long-hash", text: "0xSk8"))
|> refute_has(css(".transactions__link--long-hash", text: "0xrazerscooter")) test "can view a transaction's logs", %{session: session} do
|> click(css(".address__link", text: "From")) session
|> assert_has(css(".transactions__link--long-hash", text: "0xSk8")) |> visit("/en/transactions/0xSk8")
|> click(link("Logs"))
|> assert_has(css(".transaction-log__link", text: "0xlincoln"))
end
test "can visit an address from the transaction logs page", %{session: session} do
session
|> visit("/en/transactions/0xSk8/logs")
|> click(css(".transaction-log__link", text: "0xlincoln"))
|> assert_has(css(".address__subheading", text: "0xlincoln"))
end
test "see's all addresses transactions by default", %{session: session} do
session
|> visit("/en/addresses/0xlincoln")
|> assert_has(css(".transactions__link--long-hash", text: "0xSk8"))
|> assert_has(css(".transactions__link--long-hash", text: "0xrazerscooter"))
end
test "can filter to only see transactions to an address", %{session: session} do
session
|> visit("/en/addresses/0xlincoln")
|> click(css(".address__link", text: "To"))
|> assert_has(css(".transactions__link--long-hash", text: "0xSk8"))
|> refute_has(css(".transactions__link--long-hash", text: "0xrazerscooter"))
end
test "can filter to only see transactions from an address", %{session: session} do
session
|> visit("/en/addresses/0xlincoln")
|> click(css(".address__link", text: "From"))
|> assert_has(css(".transactions__link--long-hash", text: "0xrazerscooter"))
|> refute_has(css(".transactions__link--long-hash", text: "0xSk8"))
end
end end
test "views addresses", %{session: session} do test "views addresses", %{session: session} do

Loading…
Cancel
Save