mirror of
https://github.com/we-promise/sure.git
synced 2026-04-17 19:14:11 +00:00
* feat: add Binance support (Items, Accounts, Importers, Processor, and Sync) * refactor: deduplicate 'stablecoins' constant and push stale_rate filter to SQL --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
38 lines
1.2 KiB
Ruby
38 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
|
|
class BinanceItem::MarginImporterTest < ActiveSupport::TestCase
|
|
setup do
|
|
@provider = mock
|
|
@family = families(:dylan_family)
|
|
@item = BinanceItem.create!(family: @family, name: "B", api_key: "k", api_secret: "s")
|
|
end
|
|
|
|
test "returns normalized assets from userAssets with source=margin" do
|
|
@provider.stubs(:get_margin_account).returns({
|
|
"userAssets" => [
|
|
{ "asset" => "BTC", "free" => "0.1", "locked" => "0.0", "netAsset" => "0.1" },
|
|
{ "asset" => "ETH", "free" => "0.0", "locked" => "0.0", "netAsset" => "0.0" }
|
|
]
|
|
})
|
|
|
|
result = BinanceItem::MarginImporter.new(@item, provider: @provider).import
|
|
|
|
assert_equal "margin", result[:source]
|
|
assert_equal 1, result[:assets].size
|
|
btc = result[:assets].first
|
|
assert_equal "BTC", btc[:symbol]
|
|
assert_equal "0.1", btc[:total]
|
|
end
|
|
|
|
test "returns empty on API error" do
|
|
@provider.stubs(:get_margin_account).raises(Provider::Binance::ApiError, "WAF")
|
|
|
|
result = BinanceItem::MarginImporter.new(@item, provider: @provider).import
|
|
|
|
assert_equal "margin", result[:source]
|
|
assert_equal [], result[:assets]
|
|
end
|
|
end
|