parent
57fab18a39
commit
dfc600b1c9
@ -0,0 +1,57 @@ |
|||||||
|
defmodule BlockScoutWeb.RewardChannelTest do |
||||||
|
use BlockScoutWeb.ChannelCase, async: false |
||||||
|
|
||||||
|
alias BlockScoutWeb.Notifier |
||||||
|
|
||||||
|
describe "user subscribed to rewards" do |
||||||
|
test "does nothing if the configuration is turned off" do |
||||||
|
Application.put_env(:block_scout_web, BlockScoutWeb.Chain, has_emission_funds: false) |
||||||
|
|
||||||
|
address = insert(:address) |
||||||
|
block = insert(:block) |
||||||
|
reward = insert(:reward, address_hash: address.hash, block_hash: block.hash) |
||||||
|
|
||||||
|
topic = "rewards:#{address.hash}" |
||||||
|
@endpoint.subscribe(topic) |
||||||
|
|
||||||
|
Notifier.handle_event({:chain_event, :block_rewards, :realtime, [reward]}) |
||||||
|
|
||||||
|
refute_receive _, :timer.seconds(2) |
||||||
|
|
||||||
|
Application.put_env(:block_scout_web, BlockScoutWeb.Chain, has_emission_funds: false) |
||||||
|
end |
||||||
|
|
||||||
|
test "notified of new reward for matching address" do |
||||||
|
Application.put_env(:block_scout_web, BlockScoutWeb.Chain, has_emission_funds: true) |
||||||
|
address = insert(:address) |
||||||
|
block = insert(:block) |
||||||
|
reward = insert(:reward, address_hash: address.hash, block_hash: block.hash) |
||||||
|
|
||||||
|
topic = "rewards:#{address.hash}" |
||||||
|
@endpoint.subscribe(topic) |
||||||
|
|
||||||
|
Notifier.handle_event({:chain_event, :block_rewards, :realtime, [reward]}) |
||||||
|
|
||||||
|
assert_receive %Phoenix.Socket.Broadcast{topic: ^topic, event: "new_reward", payload: _}, :timer.seconds(5) |
||||||
|
|
||||||
|
Application.put_env(:block_scout_web, BlockScoutWeb.Chain, has_emission_funds: false) |
||||||
|
end |
||||||
|
|
||||||
|
test "not notified of new reward for other address" do |
||||||
|
Application.put_env(:block_scout_web, BlockScoutWeb.Chain, has_emission_funds: true) |
||||||
|
|
||||||
|
address = insert(:address) |
||||||
|
block = insert(:block) |
||||||
|
reward = insert(:reward, address_hash: address.hash, block_hash: block.hash) |
||||||
|
|
||||||
|
topic = "rewards:0x0" |
||||||
|
@endpoint.subscribe(topic) |
||||||
|
|
||||||
|
Notifier.handle_event({:chain_event, :block_rewards, :realtime, [reward]}) |
||||||
|
|
||||||
|
refute_receive _, :timer.seconds(2) |
||||||
|
|
||||||
|
Application.put_env(:block_scout_web, BlockScoutWeb.Chain, has_emission_funds: false) |
||||||
|
end |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue