From 473d43333fdd6f7f645c0f035bdb0d6fd49443a7 Mon Sep 17 00:00:00 2001 From: nikitosing <32202610+nikitosing@users.noreply.github.com> Date: Wed, 13 Nov 2024 17:32:19 +0300 Subject: [PATCH] fix: Fix failed filecoin tests (#11187) --- .../api/v2/smart_contract_controller_test.exs | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs index 5d4c0222de..c7a25a5d2d 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/api/v2/smart_contract_controller_test.exs @@ -179,7 +179,7 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do result_props = correct_response |> Map.keys() for prop <- result_props do - assert correct_response[prop] == response[prop] + assert prepare_implementation(correct_response[prop]) == response[prop] end end @@ -495,7 +495,7 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do result_props = correct_response |> Map.keys() for prop <- result_props do - assert correct_response[prop] == response[prop] + assert prepare_implementation(correct_response[prop]) == response[prop] end end @@ -657,7 +657,7 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do result_props = correct_response |> Map.keys() for prop <- result_props do - assert correct_response[prop] == response[prop] + assert prepare_implementation(correct_response[prop]) == response[prop] end end @@ -1160,7 +1160,9 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do assert response == %{ "proxy_type" => "eip1967", - "implementations" => [%{"address" => formatted_implementation_address_hash_string, "name" => nil}], + "implementations" => [ + prepare_implementation(%{"address" => formatted_implementation_address_hash_string, "name" => nil}) + ], "has_custom_methods_read" => false, "has_custom_methods_write" => false, "is_self_destructed" => false, @@ -1285,7 +1287,9 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do assert response == %{ "proxy_type" => "eip1967", - "implementations" => [%{"address" => formatted_implementation_address_hash_string, "name" => nil}], + "implementations" => [ + prepare_implementation(%{"address" => formatted_implementation_address_hash_string, "name" => nil}) + ], "has_custom_methods_read" => false, "has_custom_methods_write" => false, "is_self_destructed" => false, @@ -1410,7 +1414,9 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do assert response == %{ "proxy_type" => "eip1967", - "implementations" => [%{"address" => formatted_implementation_address_hash_string, "name" => nil}], + "implementations" => [ + prepare_implementation(%{"address" => formatted_implementation_address_hash_string, "name" => nil}) + ], "has_custom_methods_read" => false, "has_custom_methods_write" => false, "is_self_destructed" => false, @@ -3685,4 +3691,20 @@ defmodule BlockScoutWeb.API.V2.SmartContractControllerTest do EthereumJSONRPC.Mox |> TestHelper.mock_logic_storage_pointer_request(error?, response) end + + defp prepare_implementation(items) when is_list(items) do + Enum.map(items, &prepare_implementation/1) + end + + defp prepare_implementation(%{"address" => _, "name" => _} = implementation) do + case Application.get_env(:explorer, :chain_type) do + :filecoin -> + Map.put(implementation, "filecoin_robust_address", nil) + + _ -> + implementation + end + end + + defp prepare_implementation(other), do: other end