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 Customer::REDIS.expect(
10 :smembers,
11 EMPromise.resolve([]),
12 ["jmp_customer_btc_addresses-test"]
13 )
14 assert_kind_of(
15 AltTopUpForm,
16 AltTopUpForm.for(Customer.new("test")).sync
17 )
18 end
19 em :test_for
20
21 def test_for_addresses
22 Customer::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.new("test")).sync
30 )
31 end
32 em :test_for_addresses
33
34 def test_for_cad
35 Customer::REDIS.expect(
36 :smembers,
37 EMPromise.resolve([]),
38 ["jmp_customer_btc_addresses-test"]
39 )
40 assert_kind_of(
41 AltTopUpForm,
42 AltTopUpForm.for(Customer.new("test", 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(AltTopUpForm::AddBtcAddressField.new).form
51 )
52 end
53
54 def test_form_new_addrs
55 assert_kind_of(
56 Blather::Stanza::X,
57 AltTopUpForm.new(
58 AltTopUpForm::AddBtcAddressField::AddNewBtcAddressField.new
59 ).form
60 )
61 end
62
63 def test_parse_true
64 iq_form = Blather::Stanza::X.new
65 iq_form.fields = [
66 { var: "add_btc_address", value: "true" }
67 ]
68 assert AltTopUpForm.new.parse(iq_form)[:add_btc_address]
69 end
70
71 def test_parse_1
72 iq_form = Blather::Stanza::X.new
73 iq_form.fields = [
74 { var: "add_btc_address", value: "1" }
75 ]
76 assert AltTopUpForm.new.parse(iq_form)[:add_btc_address]
77 end
78
79 def test_parse_false
80 iq_form = Blather::Stanza::X.new
81 iq_form.fields = [
82 { var: "add_btc_address", value: "false" }
83 ]
84 refute AltTopUpForm.new.parse(iq_form)[:add_btc_address]
85 end
86
87 def test_parse_not_presend
88 iq_form = Blather::Stanza::X.new
89 refute AltTopUpForm.new.parse(iq_form)[:add_btc_address]
90 end
91end