1# frozen_string_literal: true
2
3require "test_helper"
4require "alt_top_up_form"
5require "customer"
6
7class AltTopUpFormTest < Minitest::Test
8 def test_for
9 CustomerFinancials::REDIS.expect(
10 :smembers,
11 EMPromise.resolve([]),
12 ["jmp_customer_btc_addresses-test"]
13 )
14 assert_kind_of(
15 AltTopUpForm,
16 AltTopUpForm.for(customer).sync
17 )
18 end
19 em :test_for
20
21 def test_for_addresses
22 CustomerFinancials::REDIS.expect(
23 :smembers,
24 EMPromise.resolve(["testaddr"]),
25 ["jmp_customer_btc_addresses-test"]
26 )
27 assert_kind_of(
28 AltTopUpForm,
29 AltTopUpForm.for(customer).sync
30 )
31 end
32 em :test_for_addresses
33
34 def test_for_cad
35 CustomerFinancials::REDIS.expect(
36 :smembers,
37 EMPromise.resolve([]),
38 ["jmp_customer_btc_addresses-test"]
39 )
40 assert_kind_of(
41 AltTopUpForm,
42 AltTopUpForm.for(customer(plan_name: "test_cad")).sync
43 )
44 end
45 em :test_for_cad
46
47 def test_form_addrs
48 assert_kind_of(
49 Blather::Stanza::X,
50 AltTopUpForm.new(
51 customer, ["some_addr"]
52 ).form
53 )
54 end
55
56 def test_form_new_addrs
57 assert_kind_of(
58 Blather::Stanza::X,
59 AltTopUpForm.new(
60 customer, []
61 ).form
62 )
63 end
64
65 def test_parse_complete
66 iq_form = Blather::Stanza::X.new
67 iq_form.fields = [
68 { var: "http://jabber.org/protocol/commands#actions", value: "complete" }
69 ]
70 assert_kind_of(
71 AltTopUpForm::NoOp,
72 AltTopUpForm.new(customer, []).parse(iq_form)
73 )
74 end
75
76 def test_parse_btc
77 iq_form = Blather::Stanza::X.new
78 iq_form.fields = [
79 { var: "http://jabber.org/protocol/commands#actions", value: "BTC" }
80 ]
81 assert_kind_of(
82 AltTopUpForm::BitcoinAddress,
83 AltTopUpForm.new(customer, []).parse(iq_form)
84 )
85 end
86
87 def test_parse_xmr
88 iq_form = Blather::Stanza::X.new
89 iq_form.fields = [
90 { var: "http://jabber.org/protocol/commands#actions", value: "XMR" }
91 ]
92 assert_kind_of(
93 AltTopUpForm::SimpleSwapAddress,
94 AltTopUpForm.new(customer, []).parse(iq_form)
95 )
96 end
97end