zold 0.31.7 → 0.31.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.0pdd.yml +20 -0
- data/.github/workflows/actionlint.yml +41 -0
- data/.github/workflows/codecov.yml +23 -4
- data/.github/workflows/copyrights.yml +30 -0
- data/.github/workflows/pdd.yml +26 -3
- data/.github/workflows/rake.yml +24 -2
- data/.github/workflows/xcop.yml +21 -2
- data/.github/workflows/yamllint.yml +34 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +22 -1
- data/.ruby-version +1 -1
- data/.rultor.yml +35 -5
- data/.simplecov +1 -1
- data/Dockerfile +29 -3
- data/Gemfile +10 -10
- data/Gemfile.lock +340 -0
- data/LICENSE.txt +1 -1
- data/Rakefile +9 -12
- data/bin/zold +1 -1
- data/cucumber.yml +20 -0
- data/deploy.sh +20 -0
- data/features/step_definitions/steps.rb +1 -1
- data/features/support/env.rb +1 -1
- data/fixtures/merge/asserts.rb +1 -1
- data/fixtures/merge/into_no_wallet/assert.rb +1 -1
- data/fixtures/merge/legacy_negatives_stay/assert.rb +1 -1
- data/fixtures/merge/missed_wallets/assert.rb +1 -1
- data/fixtures/merge/negative_overwriting/assert.rb +1 -1
- data/fixtures/merge/negatives_in_between/assert.rb +1 -1
- data/fixtures/merge/random_expenses/assert.rb +1 -1
- data/fixtures/merge/simple_case/assert.rb +1 -1
- data/fixtures/merge/unconfirmed_income/assert.rb +1 -1
- data/fixtures/scripts/_head.sh +21 -1
- data/fixtures/scripts/calculate-scores.sh +19 -0
- data/fixtures/scripts/distribute-wallet.sh +19 -0
- data/fixtures/scripts/print-helps.sh +19 -0
- data/fixtures/scripts/pull-on-start.sh +19 -0
- data/fixtures/scripts/push-and-pull.sh +19 -0
- data/fixtures/scripts/redeploy-on-upgrade.sh +19 -0
- data/fixtures/scripts/spread-wallets.sh +19 -0
- data/lib/zold/age.rb +2 -2
- data/lib/zold/amount.rb +2 -2
- data/lib/zold/cached_wallets.rb +3 -3
- data/lib/zold/commands/alias.rb +20 -0
- data/lib/zold/commands/args.rb +2 -2
- data/lib/zold/commands/calculate.rb +2 -2
- data/lib/zold/commands/clean.rb +2 -2
- data/lib/zold/commands/create.rb +3 -2
- data/lib/zold/commands/diff.rb +2 -2
- data/lib/zold/commands/fetch.rb +2 -2
- data/lib/zold/commands/invoice.rb +2 -2
- data/lib/zold/commands/list.rb +2 -2
- data/lib/zold/commands/merge.rb +2 -2
- data/lib/zold/commands/next.rb +2 -2
- data/lib/zold/commands/node.rb +2 -2
- data/lib/zold/commands/pay.rb +2 -2
- data/lib/zold/commands/propagate.rb +2 -2
- data/lib/zold/commands/pull.rb +2 -2
- data/lib/zold/commands/push.rb +2 -2
- data/lib/zold/commands/remote.rb +2 -2
- data/lib/zold/commands/remove.rb +2 -2
- data/lib/zold/commands/routines/audit.rb +2 -2
- data/lib/zold/commands/routines/gc.rb +2 -2
- data/lib/zold/commands/routines/reconcile.rb +2 -2
- data/lib/zold/commands/routines/reconnect.rb +2 -2
- data/lib/zold/commands/routines/retire.rb +2 -2
- data/lib/zold/commands/routines/spread.rb +2 -2
- data/lib/zold/commands/routines.rb +2 -2
- data/lib/zold/commands/show.rb +2 -2
- data/lib/zold/commands/taxes.rb +2 -2
- data/lib/zold/commands/thread_badge.rb +3 -3
- data/lib/zold/copies.rb +2 -2
- data/lib/zold/dir_items.rb +2 -2
- data/lib/zold/endless.rb +2 -2
- data/lib/zold/gem.rb +2 -2
- data/lib/zold/hands.rb +2 -2
- data/lib/zold/head.rb +3 -3
- data/lib/zold/hexnum.rb +2 -2
- data/lib/zold/http.rb +3 -3
- data/lib/zold/hungry_wallets.rb +2 -2
- data/lib/zold/id.rb +4 -3
- data/lib/zold/json_page.rb +2 -2
- data/lib/zold/key.rb +2 -2
- data/lib/zold/log.rb +2 -2
- data/lib/zold/metronome.rb +2 -2
- data/lib/zold/node/async_entrance.rb +2 -2
- data/lib/zold/node/entrance.rb +2 -2
- data/lib/zold/node/farm.rb +2 -2
- data/lib/zold/node/farmers.rb +2 -2
- data/lib/zold/node/front.rb +3 -3
- data/lib/zold/node/journaled_pipeline.rb +2 -2
- data/lib/zold/node/nodup_entrance.rb +2 -2
- data/lib/zold/node/nospam_entrance.rb +2 -2
- data/lib/zold/node/pipeline.rb +2 -2
- data/lib/zold/node/safe_entrance.rb +2 -2
- data/lib/zold/node/soft_error.rb +2 -2
- data/lib/zold/node/spread_entrance.rb +2 -2
- data/lib/zold/node/sync_entrance.rb +2 -2
- data/lib/zold/node/trace.rb +2 -2
- data/lib/zold/patch.rb +2 -2
- data/lib/zold/prefixes.rb +2 -2
- data/lib/zold/remotes.rb +2 -2
- data/lib/zold/signature.rb +2 -2
- data/lib/zold/size.rb +2 -2
- data/lib/zold/sync_wallets.rb +2 -2
- data/lib/zold/tax.rb +2 -2
- data/lib/zold/thread_pool.rb +2 -2
- data/lib/zold/tree_wallets.rb +2 -2
- data/lib/zold/txn.rb +2 -2
- data/lib/zold/txns.rb +3 -3
- data/lib/zold/upgrades.rb +1 -1
- data/lib/zold/verbose_thread.rb +2 -2
- data/lib/zold/version.rb +3 -3
- data/lib/zold/version_file.rb +1 -1
- data/lib/zold/wallet.rb +2 -2
- data/lib/zold/wallets.rb +2 -2
- data/lib/zold.rb +2 -2
- data/test/commands/routines/test_audit.rb +4 -4
- data/test/commands/routines/test_gc.rb +8 -8
- data/test/commands/routines/test_reconcile.rb +4 -4
- data/test/commands/routines/test_reconnect.rb +3 -3
- data/test/commands/routines/test_retire.rb +3 -3
- data/test/commands/test_alias.rb +26 -6
- data/test/commands/test_calculate.rb +3 -3
- data/test/commands/test_clean.rb +10 -10
- data/test/commands/test_create.rb +3 -3
- data/test/commands/test_diff.rb +5 -5
- data/test/commands/test_fetch.rb +9 -9
- data/test/commands/test_invoice.rb +3 -3
- data/test/commands/test_list.rb +3 -3
- data/test/commands/test_merge.rb +12 -12
- data/test/commands/test_node.rb +6 -6
- data/test/commands/test_pay.rb +19 -19
- data/test/commands/test_propagate.rb +5 -5
- data/test/commands/test_pull.rb +6 -6
- data/test/commands/test_push.rb +9 -9
- data/test/commands/test_remote.rb +11 -11
- data/test/commands/test_remove.rb +10 -10
- data/test/commands/test_show.rb +3 -3
- data/test/commands/test_taxes.rb +4 -4
- data/test/fake_home.rb +2 -2
- data/test/node/fake_entrance.rb +2 -2
- data/test/node/fake_node.rb +57 -40
- data/test/node/test_async_entrance.rb +10 -10
- data/test/node/test_entrance.rb +8 -8
- data/test/node/test_farm.rb +11 -11
- data/test/node/test_farmers.rb +5 -5
- data/test/node/test_front.rb +29 -28
- data/test/node/test_nodup_entrance.rb +4 -4
- data/test/node/test_nospam_entrance.rb +3 -3
- data/test/node/test_safe_entrance.rb +4 -4
- data/test/node/test_spread_entrance.rb +8 -8
- data/test/node/test_sync_entrance.rb +4 -4
- data/test/node/test_trace.rb +2 -2
- data/test/test__helper.rb +4 -4
- data/test/test_age.rb +2 -2
- data/test/test_amount.rb +2 -2
- data/test/test_cached_wallets.rb +2 -2
- data/test/test_copies.rb +12 -12
- data/test/test_dir_items.rb +4 -4
- data/test/test_gem.rb +20 -0
- data/test/test_hands.rb +2 -2
- data/test/test_hexnum.rb +2 -2
- data/test/test_http.rb +8 -8
- data/test/test_hungry_wallets.rb +11 -11
- data/test/test_id.rb +11 -2
- data/test/test_json_page.rb +2 -2
- data/test/test_key.rb +2 -2
- data/test/test_log.rb +5 -5
- data/test/test_metronome.rb +6 -6
- data/test/test_patch.rb +14 -14
- data/test/test_prefixes.rb +3 -3
- data/test/test_remotes.rb +9 -9
- data/test/test_signature.rb +2 -2
- data/test/test_size.rb +2 -2
- data/test/test_sync_wallets.rb +3 -3
- data/test/test_tax.rb +9 -9
- data/test/test_thread_pool.rb +8 -8
- data/test/test_tree_wallets.rb +2 -2
- data/test/test_txn.rb +2 -2
- data/test/test_upgrades.rb +2 -2
- data/test/test_verbose_thread.rb +2 -2
- data/test/test_version.rb +20 -0
- data/test/test_wallet.rb +22 -22
- data/test/test_wallets.rb +5 -5
- data/test/test_zold.rb +5 -5
- data/test/upgrades/test_delete_banned_wallets.rb +4 -4
- data/test/upgrades/test_protocol_up.rb +4 -4
- data/upgrades/2.rb +1 -1
- data/upgrades/delete_banned_wallets.rb +1 -1
- data/upgrades/move_wallets_into_tree.rb +1 -1
- data/upgrades/protocol_up.rb +1 -1
- data/upgrades/rename_foreign_wallets.rb +1 -1
- data/zold.gemspec +23 -23
- metadata +7 -3
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -31,7 +31,7 @@ require_relative '../../lib/zold/commands/invoice'
|
|
31
31
|
|
32
32
|
# INVOICE test.
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
|
-
# Copyright:: Copyright (c) 2018
|
34
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
35
35
|
# License:: MIT
|
36
36
|
class TestInvoice < Zold::Test
|
37
37
|
def test_generates_invoice
|
@@ -40,7 +40,7 @@ class TestInvoice < Zold::Test
|
|
40
40
|
wallets = Zold::Wallets.new(dir)
|
41
41
|
wallets.acq(id) do |source|
|
42
42
|
source.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
|
43
|
-
invoice = Zold::Invoice.new(wallets: wallets, remotes: nil, copies: nil, log:
|
43
|
+
invoice = Zold::Invoice.new(wallets: wallets, remotes: nil, copies: nil, log: fake_log).run(
|
44
44
|
['invoice', id.to_s, '--length=16']
|
45
45
|
)
|
46
46
|
assert_equal(33, invoice.length)
|
data/test/commands/test_list.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -31,7 +31,7 @@ require_relative '../../lib/zold/commands/list'
|
|
31
31
|
|
32
32
|
# LIST test.
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
|
-
# Copyright:: Copyright (c) 2018
|
34
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
35
35
|
# License:: MIT
|
36
36
|
class TestList < Zold::Test
|
37
37
|
def test_lists_wallets_with_balances
|
@@ -40,7 +40,7 @@ class TestList < Zold::Test
|
|
40
40
|
wallets = Zold::Wallets.new(dir)
|
41
41
|
wallets.acq(id) do |wallet|
|
42
42
|
wallet.init(Zold::Id.new, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
|
43
|
-
Zold::List.new(wallets: wallets, copies: File.join(dir, 'copies'), log:
|
43
|
+
Zold::List.new(wallets: wallets, copies: File.join(dir, 'copies'), log: fake_log).run
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/test/commands/test_merge.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -39,23 +39,23 @@ require_relative '../../lib/zold/commands/pay'
|
|
39
39
|
|
40
40
|
# MERGE test.
|
41
41
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
42
|
-
# Copyright:: Copyright (c) 2018
|
42
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
43
43
|
# License:: MIT
|
44
44
|
class TestMerge < Zold::Test
|
45
45
|
def test_merges_wallet
|
46
|
-
FakeHome.new(log:
|
46
|
+
FakeHome.new(log: fake_log).run do |home|
|
47
47
|
wallet = home.create_wallet
|
48
48
|
first = home.create_wallet
|
49
49
|
File.write(first.path, File.read(wallet.path))
|
50
50
|
second = home.create_wallet
|
51
51
|
File.write(second.path, File.read(wallet.path))
|
52
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
52
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
53
53
|
['pay', wallet.id.to_s, "NOPREFIX@#{Zold::Id.new}", '14.95', '--force', '--private-key=fixtures/id_rsa']
|
54
54
|
)
|
55
55
|
copies = home.copies(wallet)
|
56
56
|
copies.add(File.read(first.path), 'host-1', 80, 5)
|
57
57
|
copies.add(File.read(second.path), 'host-2', 80, 5)
|
58
|
-
modified = Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log:
|
58
|
+
modified = Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log: fake_log).run(
|
59
59
|
['merge', wallet.id.to_s]
|
60
60
|
)
|
61
61
|
assert(1, modified.count)
|
@@ -64,12 +64,12 @@ class TestMerge < Zold::Test
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_merges_with_a_broken_copy
|
67
|
-
FakeHome.new(log:
|
67
|
+
FakeHome.new(log: fake_log).run do |home|
|
68
68
|
wallet = home.create_wallet
|
69
69
|
copies = home.copies(wallet)
|
70
70
|
copies.add(File.read(wallet.path), 'good-host', 80, 5)
|
71
71
|
copies.add('some garbage', 'bad-host', 80, 5)
|
72
|
-
modified = Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log:
|
72
|
+
modified = Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log: fake_log).run(
|
73
73
|
['merge', wallet.id.to_s]
|
74
74
|
)
|
75
75
|
assert(modified.empty?)
|
@@ -77,13 +77,13 @@ class TestMerge < Zold::Test
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def test_merges_a_copy_on_top
|
80
|
-
FakeHome.new(log:
|
80
|
+
FakeHome.new(log: fake_log).run do |home|
|
81
81
|
wallet = home.create_wallet(Zold::Id::ROOT)
|
82
82
|
copies = home.copies(wallet)
|
83
83
|
copies.add(File.read(wallet.path), 'good-host', 80, 5)
|
84
84
|
key = Zold::Key.new(file: 'fixtures/id_rsa')
|
85
85
|
wallet.sub(Zold::Amount.new(zld: 9.99), "NOPREFIX@#{Zold::Id.new}", key)
|
86
|
-
Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log:
|
86
|
+
Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log: fake_log).run(
|
87
87
|
['merge', wallet.id.to_s]
|
88
88
|
)
|
89
89
|
assert(!wallet.balance.zero?)
|
@@ -91,14 +91,14 @@ class TestMerge < Zold::Test
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_rejects_fake_positives_in_new_wallet
|
94
|
-
FakeHome.new(log:
|
94
|
+
FakeHome.new(log: fake_log).run do |home|
|
95
95
|
main = home.create_wallet
|
96
96
|
remote = home.create_wallet
|
97
97
|
File.write(remote.path, File.read(main.path))
|
98
98
|
remote.add(Zold::Txn.new(1, Time.now, Zold::Amount.new(zld: 11.0), 'NOPREFIX', Zold::Id.new, 'fake'))
|
99
99
|
copies = home.copies(main)
|
100
100
|
copies.add(File.read(remote.path), 'fake-host', 80, 0)
|
101
|
-
Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log:
|
101
|
+
Zold::Merge.new(wallets: home.wallets, remotes: home.remotes, copies: copies.root, log: fake_log).run(
|
102
102
|
['merge', main.id.to_s, '--no-baseline']
|
103
103
|
)
|
104
104
|
assert_equal(Zold::Amount::ZERO, main.balance)
|
@@ -117,7 +117,7 @@ class TestMerge < Zold::Test
|
|
117
117
|
wallets = Zold::Wallets.new(dir)
|
118
118
|
copies = File.join(dir, 'copies')
|
119
119
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes'))
|
120
|
-
Zold::Merge.new(wallets: wallets, remotes: remotes, copies: copies, log:
|
120
|
+
Zold::Merge.new(wallets: wallets, remotes: remotes, copies: copies, log: fake_log).run(
|
121
121
|
%w[merge 0123456789abcdef] + File.read(File.join(dir, 'opts')).split("\n")
|
122
122
|
)
|
123
123
|
Dir.chdir(dir) do
|
data/test/commands/test_node.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -36,17 +36,17 @@ require_relative '../node/fake_node'
|
|
36
36
|
|
37
37
|
# NODE test.
|
38
38
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
39
|
-
# Copyright:: Copyright (c) 2018
|
39
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
40
40
|
# License:: MIT
|
41
41
|
class TestNode < Zold::Test
|
42
42
|
def test_push_and_fetch
|
43
|
-
FakeHome.new(log:
|
44
|
-
FakeNode.new(log:
|
43
|
+
FakeHome.new(log: fake_log).run do |home|
|
44
|
+
FakeNode.new(log: fake_log).run do |port|
|
45
45
|
wallets = home.wallets
|
46
46
|
wallet = home.create_wallet
|
47
47
|
remotes = home.remotes
|
48
48
|
remotes.add('localhost', port)
|
49
|
-
Zold::Push.new(wallets: wallets, remotes: remotes, log:
|
49
|
+
Zold::Push.new(wallets: wallets, remotes: remotes, log: fake_log).run(
|
50
50
|
['push', '--ignore-score-weakness', '--tolerate-edges', '--tolerate-quorum=1']
|
51
51
|
)
|
52
52
|
copies = home.copies(wallet)
|
@@ -54,7 +54,7 @@ class TestNode < Zold::Test
|
|
54
54
|
retries ||= 0
|
55
55
|
Zold::Fetch.new(
|
56
56
|
wallets: wallets, copies: copies.root,
|
57
|
-
remotes: remotes, log:
|
57
|
+
remotes: remotes, log: fake_log
|
58
58
|
).run(['fetch', '--ignore-score-weakness', '--tolerate-edges', '--tolerate-quorum=1'])
|
59
59
|
rescue StandardError => _e
|
60
60
|
sleep 1
|
data/test/commands/test_pay.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -35,22 +35,22 @@ require_relative '../../lib/zold/commands/pay'
|
|
35
35
|
|
36
36
|
# PAY test.
|
37
37
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
38
|
-
# Copyright:: Copyright (c) 2018
|
38
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
39
39
|
# License:: MIT
|
40
40
|
class TestPay < Zold::Test
|
41
41
|
def test_sends_from_wallet_to_wallet
|
42
|
-
FakeHome.new(log:
|
42
|
+
FakeHome.new(log: fake_log).run do |home|
|
43
43
|
source = home.create_wallet
|
44
44
|
target = home.create_wallet
|
45
45
|
amount = Zold::Amount.new(zld: 14.95)
|
46
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
46
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
47
47
|
[
|
48
48
|
'pay', '--force', '--private-key=fixtures/id_rsa',
|
49
49
|
source.id.to_s, target.id.to_s, amount.to_zld, 'For the car'
|
50
50
|
]
|
51
51
|
)
|
52
52
|
assert_equal(amount * -1, source.balance)
|
53
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
53
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
54
54
|
[
|
55
55
|
'pay', '--private-key=fixtures/id_rsa',
|
56
56
|
target.id.to_s, source.id.to_s, amount.to_zld, 'Refund'
|
@@ -62,7 +62,7 @@ class TestPay < Zold::Test
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def test_pay_without_invoice
|
65
|
-
FakeHome.new(log:
|
65
|
+
FakeHome.new(log: fake_log).run do |home|
|
66
66
|
remotes = home.remotes
|
67
67
|
remotes.add('localhost', 4096)
|
68
68
|
json = home.create_wallet_json
|
@@ -73,7 +73,7 @@ class TestPay < Zold::Test
|
|
73
73
|
home.wallets.acq(Zold::Id.new(id)) { |w| File.delete(w.path) }
|
74
74
|
source = home.create_wallet
|
75
75
|
amount = Zold::Amount.new(zld: 14.95)
|
76
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: remotes, log:
|
76
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: remotes, log: fake_log).run(
|
77
77
|
[
|
78
78
|
'pay', '--force', '--private-key=fixtures/id_rsa', '--tolerate-edges', '--tolerate-quorum=1',
|
79
79
|
source.id.to_s, id, amount.to_zld, 'For the car'
|
@@ -84,14 +84,14 @@ class TestPay < Zold::Test
|
|
84
84
|
end
|
85
85
|
|
86
86
|
def test_pay_with_keygap
|
87
|
-
FakeHome.new(log:
|
87
|
+
FakeHome.new(log: fake_log).run do |home|
|
88
88
|
wallet = home.create_wallet
|
89
89
|
amount = Zold::Amount.new(zld: 2.0)
|
90
90
|
Tempfile.open do |f|
|
91
91
|
pem = File.read('fixtures/id_rsa')
|
92
92
|
keygap = pem[100..120]
|
93
93
|
File.write(f, pem.gsub(keygap, '*' * keygap.length))
|
94
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
94
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
95
95
|
[
|
96
96
|
'pay', '--force', "--private-key=#{Shellwords.escape(f.path)}",
|
97
97
|
"--keygap=#{Shellwords.escape(keygap)}",
|
@@ -104,12 +104,12 @@ class TestPay < Zold::Test
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def test_pay_in_many_threads
|
107
|
-
FakeHome.new(log:
|
107
|
+
FakeHome.new(log: fake_log).run do |home|
|
108
108
|
wallet = home.create_wallet
|
109
109
|
amount = Zold::Amount.new(zld: 2.0)
|
110
110
|
wallets = home.wallets
|
111
111
|
Threads.new(10).assert do
|
112
|
-
Zold::Pay.new(wallets: wallets, copies: home.dir, remotes: home.remotes, log:
|
112
|
+
Zold::Pay.new(wallets: wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
113
113
|
[
|
114
114
|
'pay', '--force', '--private-key=fixtures/id_rsa',
|
115
115
|
wallet.id.to_s, 'NOPREFIX@dddd0000dddd0000', amount.to_zld, '-'
|
@@ -121,11 +121,11 @@ class TestPay < Zold::Test
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def test_sends_from_root_wallet
|
124
|
-
FakeHome.new(log:
|
124
|
+
FakeHome.new(log: fake_log).run do |home|
|
125
125
|
source = home.create_wallet(Zold::Id::ROOT)
|
126
126
|
target = home.create_wallet
|
127
127
|
amount = Zold::Amount.new(zld: 14.95)
|
128
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
128
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
129
129
|
[
|
130
130
|
'pay', '--private-key=fixtures/id_rsa',
|
131
131
|
source.id.to_s, target.id.to_s, amount.to_zld, 'For the car'
|
@@ -136,7 +136,7 @@ class TestPay < Zold::Test
|
|
136
136
|
end
|
137
137
|
|
138
138
|
def test_sends_from_normal_wallet
|
139
|
-
FakeHome.new(log:
|
139
|
+
FakeHome.new(log: fake_log).run do |home|
|
140
140
|
source = home.create_wallet
|
141
141
|
target = home.create_wallet
|
142
142
|
amount = Zold::Amount.new(zld: 14.95)
|
@@ -146,7 +146,7 @@ class TestPay < Zold::Test
|
|
146
146
|
'NOPREFIX', Zold::Id.new, '-'
|
147
147
|
)
|
148
148
|
)
|
149
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
149
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
150
150
|
[
|
151
151
|
'pay', '--private-key=fixtures/id_rsa',
|
152
152
|
source.id.to_s, target.id.to_s, amount.to_zld, 'here is the refund'
|
@@ -157,11 +157,11 @@ class TestPay < Zold::Test
|
|
157
157
|
end
|
158
158
|
|
159
159
|
def test_notifies_about_tax_status
|
160
|
-
FakeHome.new(log:
|
160
|
+
FakeHome.new(log: fake_log).run do |home|
|
161
161
|
source = home.create_wallet
|
162
162
|
target = home.create_wallet
|
163
163
|
amount = Zold::Amount.new(zld: 14.95)
|
164
|
-
accumulating_log =
|
164
|
+
accumulating_log = fake_log.dup
|
165
165
|
class << accumulating_log
|
166
166
|
attr_accessor :info_messages
|
167
167
|
|
@@ -182,7 +182,7 @@ class TestPay < Zold::Test
|
|
182
182
|
end
|
183
183
|
|
184
184
|
def test_pays_and_taxes
|
185
|
-
FakeHome.new(log:
|
185
|
+
FakeHome.new(log: fake_log).run do |home|
|
186
186
|
wallet = home.create_wallet
|
187
187
|
fund = Zold::Amount.new(zld: 19.99)
|
188
188
|
10.times do |i|
|
@@ -207,7 +207,7 @@ class TestPay < Zold::Test
|
|
207
207
|
)
|
208
208
|
before = wallet.balance
|
209
209
|
target = home.create_wallet
|
210
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: remotes, log:
|
210
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: remotes, log: fake_log).run(
|
211
211
|
[
|
212
212
|
'pay', '--force', '--private-key=fixtures/id_rsa',
|
213
213
|
'--ignore-score-weakness',
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -29,18 +29,18 @@ require_relative '../../lib/zold/commands/pay'
|
|
29
29
|
|
30
30
|
# PROPAGATE test.
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
class TestPropagate < Zold::Test
|
35
35
|
def test_propagates_wallet
|
36
|
-
FakeHome.new(log:
|
36
|
+
FakeHome.new(log: fake_log).run do |home|
|
37
37
|
wallet = home.create_wallet
|
38
38
|
friend = home.create_wallet
|
39
39
|
amount = Zold::Amount.new(zld: 14.95)
|
40
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
40
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
41
41
|
['pay', wallet.id.to_s, friend.id.to_s, amount.to_zld, '--force', '--private-key=fixtures/id_rsa']
|
42
42
|
)
|
43
|
-
Zold::Propagate.new(wallets: home.wallets, log:
|
43
|
+
Zold::Propagate.new(wallets: home.wallets, log: fake_log).run(
|
44
44
|
['merge', wallet.id.to_s]
|
45
45
|
)
|
46
46
|
assert(amount, friend.balance)
|
data/test/commands/test_pull.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -30,11 +30,11 @@ require_relative '../../lib/zold/commands/pull'
|
|
30
30
|
|
31
31
|
# PUSH test.
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
|
-
# Copyright:: Copyright (c) 2018
|
33
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
34
34
|
# License:: MIT
|
35
35
|
class TestPull < Zold::Test
|
36
36
|
def test_pull_wallet
|
37
|
-
FakeHome.new(log:
|
37
|
+
FakeHome.new(log: fake_log).run do |home|
|
38
38
|
remotes = home.remotes
|
39
39
|
remotes.add('localhost', 4096)
|
40
40
|
json = home.create_wallet_json
|
@@ -42,7 +42,7 @@ class TestPull < Zold::Test
|
|
42
42
|
id = hash['id']
|
43
43
|
stub_request(:get, "http://localhost:4096/wallet/#{id}").to_return(status: 200, body: json)
|
44
44
|
stub_request(:get, "http://localhost:4096/wallet/#{id}.bin").to_return(status: 200, body: hash['body'])
|
45
|
-
Zold::Pull.new(wallets: home.wallets, remotes: remotes, copies: home.copies.root.to_s, log:
|
45
|
+
Zold::Pull.new(wallets: home.wallets, remotes: remotes, copies: home.copies.root.to_s, log: fake_log).run(
|
46
46
|
['--ignore-this-stupid-option', 'pull', id.to_s, '--tolerate-edges', '--tolerate-quorum=1']
|
47
47
|
)
|
48
48
|
home.wallets.acq(Zold::Id.new(id)) do |wallet|
|
@@ -52,7 +52,7 @@ class TestPull < Zold::Test
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def test_fails_when_only_edge_nodes
|
55
|
-
FakeHome.new(log:
|
55
|
+
FakeHome.new(log: fake_log).run do |home|
|
56
56
|
remotes = home.remotes
|
57
57
|
remotes.add('localhost', 4096)
|
58
58
|
json = home.create_wallet_json
|
@@ -61,7 +61,7 @@ class TestPull < Zold::Test
|
|
61
61
|
stub_request(:get, "http://localhost:4096/wallet/#{id}").to_return(status: 200, body: json)
|
62
62
|
stub_request(:get, "http://localhost:4096/wallet/#{id}.bin").to_return(status: 200, body: hash['body'])
|
63
63
|
assert_raises Zold::Fetch::EdgesOnly do
|
64
|
-
Zold::Pull.new(wallets: home.wallets, remotes: remotes, copies: home.copies.root.to_s, log:
|
64
|
+
Zold::Pull.new(wallets: home.wallets, remotes: remotes, copies: home.copies.root.to_s, log: fake_log).run(
|
65
65
|
['--ignore-this-stupid-option', 'pull', id.to_s]
|
66
66
|
)
|
67
67
|
end
|
data/test/commands/test_push.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -33,23 +33,23 @@ require_relative '../../lib/zold/commands/push'
|
|
33
33
|
|
34
34
|
# PUSH test.
|
35
35
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
36
|
-
# Copyright:: Copyright (c) 2018
|
36
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
37
37
|
# License:: MIT
|
38
38
|
class TestPush < Zold::Test
|
39
39
|
def test_pushes_wallet
|
40
|
-
FakeHome.new(log:
|
40
|
+
FakeHome.new(log: fake_log).run do |home|
|
41
41
|
wallet = home.create_wallet
|
42
42
|
remotes = home.remotes
|
43
43
|
remotes.add('localhost', 80)
|
44
44
|
stub_request(:put, "http://localhost:80/wallet/#{wallet.id}").to_return(status: 304)
|
45
|
-
Zold::Push.new(wallets: home.wallets, remotes: remotes, log:
|
45
|
+
Zold::Push.new(wallets: home.wallets, remotes: remotes, log: fake_log).run(
|
46
46
|
['--ignore-this-stupid-option', 'push', wallet.id.to_s, '--tolerate-edges', '--tolerate-quorum=1']
|
47
47
|
)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
51
|
def test_pushes_multiple_wallets
|
52
|
-
log = TestLogger.new(
|
52
|
+
log = TestLogger.new(fake_log)
|
53
53
|
FakeHome.new(log: log).run do |home|
|
54
54
|
wallet_a = home.create_wallet
|
55
55
|
wallet_b = home.create_wallet
|
@@ -64,13 +64,13 @@ class TestPush < Zold::Test
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_fails_when_only_edge_nodes
|
67
|
-
FakeHome.new(log:
|
67
|
+
FakeHome.new(log: fake_log).run do |home|
|
68
68
|
wallet = home.create_wallet
|
69
69
|
remotes = home.remotes
|
70
70
|
remotes.add('localhost', 80)
|
71
71
|
stub_request(:put, "http://localhost:80/wallet/#{wallet.id}").to_return(status: 304)
|
72
72
|
assert_raises Zold::Push::EdgesOnly do
|
73
|
-
Zold::Push.new(wallets: home.wallets, remotes: remotes, log:
|
73
|
+
Zold::Push.new(wallets: home.wallets, remotes: remotes, log: fake_log).run(
|
74
74
|
['push', wallet.id.to_s]
|
75
75
|
)
|
76
76
|
end
|
@@ -78,13 +78,13 @@ class TestPush < Zold::Test
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def test_fails_when_only_one_node
|
81
|
-
FakeHome.new(log:
|
81
|
+
FakeHome.new(log: fake_log).run do |home|
|
82
82
|
wallet = home.create_wallet
|
83
83
|
remotes = home.remotes
|
84
84
|
remotes.add('localhost', 80)
|
85
85
|
stub_request(:put, "http://localhost:80/wallet/#{wallet.id}").to_return(status: 304)
|
86
86
|
assert_raises Zold::Push::NoQuorum do
|
87
|
-
Zold::Push.new(wallets: home.wallets, remotes: remotes, log:
|
87
|
+
Zold::Push.new(wallets: home.wallets, remotes: remotes, log: fake_log).run(
|
88
88
|
['push', wallet.id.to_s, '--tolerate-edges']
|
89
89
|
)
|
90
90
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -34,7 +34,7 @@ require_relative '../../lib/zold/commands/remote'
|
|
34
34
|
|
35
35
|
# REMOTE test.
|
36
36
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
37
|
-
# Copyright:: Copyright (c) 2018
|
37
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
38
38
|
# License:: MIT
|
39
39
|
class TestRemote < Zold::Test
|
40
40
|
def test_updates_remote
|
@@ -67,7 +67,7 @@ class TestRemote < Zold::Test
|
|
67
67
|
headers: {},
|
68
68
|
body: '{"version": "0.0.0"}'
|
69
69
|
)
|
70
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
70
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
71
71
|
cmd.run(%w[remote clean])
|
72
72
|
assert(remotes.all.empty?)
|
73
73
|
cmd.run(['remote', 'add', zero.host, zero.port.to_s, '--skip-ping'])
|
@@ -126,7 +126,7 @@ class TestRemote < Zold::Test
|
|
126
126
|
score: zero.to_h
|
127
127
|
}.to_json
|
128
128
|
)
|
129
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
129
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
130
130
|
winners = cmd.run(%w[remote elect --ignore-score-value])
|
131
131
|
assert_equal(1, winners.count)
|
132
132
|
end
|
@@ -135,7 +135,7 @@ class TestRemote < Zold::Test
|
|
135
135
|
def test_resets_remotes
|
136
136
|
Dir.mktmpdir do |dir|
|
137
137
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes.txt'))
|
138
|
-
Zold::Remote.new(remotes: remotes, log:
|
138
|
+
Zold::Remote.new(remotes: remotes, log: fake_log).run(%w[remote reset])
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
@@ -164,7 +164,7 @@ class TestRemote < Zold::Test
|
|
164
164
|
body: '{"version": "0.0.0"}'
|
165
165
|
)
|
166
166
|
stub_request(:get, 'http://localhost:8883/remotes').to_return(status: 404)
|
167
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
167
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
168
168
|
cmd.run(%w[remote clean])
|
169
169
|
assert(remotes.all.empty?)
|
170
170
|
cmd.run(['remote', 'add', score.host, score.port.to_s, '--skip-ping'])
|
@@ -179,7 +179,7 @@ class TestRemote < Zold::Test
|
|
179
179
|
def test_select_selects_the_strongest_nodes
|
180
180
|
Dir.mktmpdir do |dir|
|
181
181
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes.txt'))
|
182
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
182
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
183
183
|
(1..11).each do |i|
|
184
184
|
cmd.run(%W[remote add localhost #{i} --skip-ping])
|
185
185
|
remotes.rescore('localhost', i, i)
|
@@ -197,7 +197,7 @@ class TestRemote < Zold::Test
|
|
197
197
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes.txt'))
|
198
198
|
remotes.masters
|
199
199
|
zero = Zold::Score::ZERO
|
200
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
200
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
201
201
|
(5000..5010).each do |port|
|
202
202
|
stub_request(:get, "http://#{zero.host}:#{zero.port}/remotes").to_return(
|
203
203
|
status: 200,
|
@@ -226,7 +226,7 @@ class TestRemote < Zold::Test
|
|
226
226
|
def test_sets_masters
|
227
227
|
Dir.mktmpdir do |dir|
|
228
228
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes.txt'))
|
229
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
229
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
230
230
|
cmd.run(%w[remote masters])
|
231
231
|
assert(!remotes.all.empty?)
|
232
232
|
end
|
@@ -235,7 +235,7 @@ class TestRemote < Zold::Test
|
|
235
235
|
def test_select_doesnt_touch_masters
|
236
236
|
Dir.mktmpdir do |dir|
|
237
237
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes.txt'))
|
238
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
238
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
239
239
|
cmd.run(%w[remote masters])
|
240
240
|
cmd.run(%w[remote select --max-nodes=0])
|
241
241
|
assert(!remotes.all.empty?)
|
@@ -255,7 +255,7 @@ class TestRemote < Zold::Test
|
|
255
255
|
all: []
|
256
256
|
}.to_json
|
257
257
|
)
|
258
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
258
|
+
cmd = Zold::Remote.new(remotes: remotes, log: fake_log)
|
259
259
|
cmd.run(['remote', 'add', zero.host, zero.port.to_s, '--skip-ping'])
|
260
260
|
cmd.run(['remote', 'update', '--ignore-score-weakness', '--depth=10'])
|
261
261
|
assert_equal(1, remotes.all.count)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -27,37 +27,37 @@ require_relative '../../lib/zold/commands/remove'
|
|
27
27
|
|
28
28
|
# REMOVE test.
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
|
-
# Copyright:: Copyright (c) 2018
|
30
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
31
31
|
# License:: MIT
|
32
32
|
class TestRemove < Zold::Test
|
33
33
|
def test_removes_one_wallet
|
34
|
-
FakeHome.new(log:
|
34
|
+
FakeHome.new(log: fake_log).run do |home|
|
35
35
|
wallet = home.create_wallet
|
36
36
|
assert_equal(1, home.wallets.all.count)
|
37
|
-
Zold::Remove.new(wallets: home.wallets, log:
|
37
|
+
Zold::Remove.new(wallets: home.wallets, log: fake_log).run(['remove', wallet.id.to_s])
|
38
38
|
assert(home.wallets.all.empty?)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
def test_removes_wallets
|
43
|
-
FakeHome.new(log:
|
43
|
+
FakeHome.new(log: fake_log).run do |home|
|
44
44
|
home.create_wallet
|
45
45
|
home.create_wallet
|
46
|
-
Zold::Remove.new(wallets: home.wallets, log:
|
46
|
+
Zold::Remove.new(wallets: home.wallets, log: fake_log).run(['remove'])
|
47
47
|
assert(home.wallets.all.empty?)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
51
|
def test_removes_no_wallets
|
52
|
-
FakeHome.new(log:
|
53
|
-
Zold::Remove.new(wallets: home.wallets, log:
|
52
|
+
FakeHome.new(log: fake_log).run do |home|
|
53
|
+
Zold::Remove.new(wallets: home.wallets, log: fake_log).run(['remove'])
|
54
54
|
assert(home.wallets.all.empty?)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
58
|
def test_removes_absent_wallets
|
59
|
-
FakeHome.new(log:
|
60
|
-
Zold::Remove.new(wallets: home.wallets, log:
|
59
|
+
FakeHome.new(log: fake_log).run do |home|
|
60
|
+
Zold::Remove.new(wallets: home.wallets, log: fake_log).run(
|
61
61
|
['remove', '7654321076543210', '--force']
|
62
62
|
)
|
63
63
|
assert(home.wallets.all.empty?)
|
data/test/commands/test_show.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Copyright (c) 2018-
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
@@ -31,7 +31,7 @@ require_relative '../../lib/zold/commands/show'
|
|
31
31
|
|
32
32
|
# SHOW test.
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
|
-
# Copyright:: Copyright (c) 2018
|
34
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
35
35
|
# License:: MIT
|
36
36
|
class TestShow < Zold::Test
|
37
37
|
def test_checks_wallet_balance
|
@@ -40,7 +40,7 @@ class TestShow < Zold::Test
|
|
40
40
|
wallets = Zold::Wallets.new(dir)
|
41
41
|
wallets.acq(id) do |wallet|
|
42
42
|
wallet.init(Zold::Id.new, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
|
43
|
-
balance = Zold::Show.new(wallets: wallets, copies: File.join(dir, 'c'), log:
|
43
|
+
balance = Zold::Show.new(wallets: wallets, copies: File.join(dir, 'c'), log: fake_log).run(['show', id.to_s])
|
44
44
|
assert_equal(Zold::Amount::ZERO, balance)
|
45
45
|
end
|
46
46
|
end
|