From e0a7d21eb439ad9b9f1e929ff173e1ec4eb04f0f Mon Sep 17 00:00:00 2001 From: NanZhang Date: Thu, 12 Oct 2023 14:17:22 +0800 Subject: [PATCH] fix: blockchain info statistic (#1469) * fix: blockchain info statistic * chore: adjust tests --- app/models/statistic_info.rb | 6 +++--- app/serializers/statistic_serializer.rb | 4 +++- test/controllers/api/v1/statistics_controller_test.rb | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/models/statistic_info.rb b/app/models/statistic_info.rb index 1872ff89c..2b64e14ad 100644 --- a/app/models/statistic_info.rb +++ b/app/models/statistic_info.rb @@ -95,10 +95,10 @@ def self.hash_rate(block_number) end define_logic :blockchain_info do - message_need_to_be_fitlered_out = "CKB v0.105.* have bugs. Please upgrade to the latest version." + message_need_to_be_filtered_out = "CKB v0.105.* have bugs. Please upgrade to the latest version." result = CkbSync::Api.instance.get_blockchain_info - result.alerts.delete_if { |alert| alert.message == message_need_to_be_fitlered_out } - result + result.alerts.delete_if { |alert| alert.message == message_need_to_be_filtered_out } + JSON.generate(result.as_json) end define_logic :transaction_fee_rates do diff --git a/app/serializers/statistic_serializer.rb b/app/serializers/statistic_serializer.rb index bd02b4c27..409723813 100644 --- a/app/serializers/statistic_serializer.rb +++ b/app/serializers/statistic_serializer.rb @@ -23,7 +23,9 @@ class StatisticSerializer attribute :blockchain_info, if: Proc.new { |_record, params| params && params[:info_name] == "blockchain_info" - } + } do |object| + JSON.parse(object.blockchain_info) + end attribute :flush_cache_info, if: Proc.new { |_record, params| params && params[:info_name] == "flush_cache_info" diff --git a/test/controllers/api/v1/statistics_controller_test.rb b/test/controllers/api/v1/statistics_controller_test.rb index 10cc91a0f..d5da73c49 100644 --- a/test/controllers/api/v1/statistics_controller_test.rb +++ b/test/controllers/api/v1/statistics_controller_test.rb @@ -204,13 +204,14 @@ class StatisticsControllerTest < ActionDispatch::IntegrationTest chain: "ckb_testnet", alerts: [] ) - StatisticInfo.any_instance.stubs(:blockchain_info).returns(blockchain_info) + CkbSync::Api.any_instance.stubs(:get_blockchain_info).returns(blockchain_info) statistic_info = StatisticInfo.default statistic_info.reset! :blockchain_info valid_get api_v1_statistic_url("blockchain_info") assert_equal StatisticSerializer.new(statistic_info, { params: { info_name: "blockchain_info" } }).serialized_json, response.body + assert_equal blockchain_info.as_json, json.dig("data", "attributes", "blockchain_info") end test "should return top 50 addresses balance list when param is address balance ranking" do