test/node/test_front.rb in zold-0.0.8 vs test/node/test_front.rb in zold-0.1
- old
+ new
@@ -1,6 +1,6 @@
-# Copyright (c) 2018 Zerocracy, Inc.
+# Copyright (c) 2018 Yegor Bugayenko
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the 'Software'), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
@@ -17,70 +17,39 @@
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
require 'minitest/autorun'
-require 'rack/test'
+require 'tmpdir'
require_relative '../../lib/zold/key.rb'
require_relative '../../lib/zold/id.rb'
require_relative '../../lib/zold/amount.rb'
require_relative '../../lib/zold/wallet.rb'
-require_relative '../../lib/zold/node/front.rb'
+require_relative '../../lib/zold/http.rb'
+require_relative 'fake_node.rb'
class FrontTest < Minitest::Test
- include Rack::Test::Methods
-
- def app
- Zold::Front.new
- end
-
- def test_renders_version
- get('/version')
- assert(last_response.ok?)
- end
-
- def test_robots_txt
- get('/robots.txt')
- assert(last_response.ok?)
- end
-
- def test_it_renders_home_page
- get('/')
- assert(last_response.ok?)
- assert(last_response.body.include?('zold'))
- end
-
- def test_pushes_a_wallet
- Dir.mktmpdir 'test' do |dir|
- id = Zold::Id::ROOT
- file = File.join(dir, "#{id}.xml")
- wallet = Zold::Wallet.new(file)
- wallet.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
- put("/wallets/#{id}", File.read(file))
- assert(last_response.ok?, last_response.body)
- key = Zold::Key.new(file: 'fixtures/id_rsa')
- wallet.sub(Zold::Amount.new(zld: 39.99), Zold::Id.new, key)
- put("/wallets/#{id}", File.read(file))
- assert(last_response.ok?, last_response.body)
+ def test_renders_public_pages
+ FakeNode.new.run do |port|
+ {
+ '200' => [
+ '/robots.txt',
+ '/',
+ '/remotes'
+ ],
+ '404' => [
+ '/this-is-absent',
+ '/wallet/ffffeeeeddddcccc'
+ ]
+ }.each do |code, paths|
+ paths.each do |p|
+ uri = URI("http://localhost:#{port}#{p}")
+ response = Zold::Http.new(uri).get
+ assert_equal(
+ code, response.code,
+ "Invalid response code for #{uri}: #{response.message}"
+ )
+ end
+ end
end
- end
-
- def test_pulls_a_wallet
- Dir.mktmpdir 'test' do |dir|
- id = Zold::Id.new
- file = File.join(dir, "#{id}.xml")
- wallet = Zold::Wallet.new(file)
- wallet.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
- put("/wallets/#{id}", File.read(file))
- assert(last_response.ok?, last_response.body)
- get("/wallets/#{id}")
- assert(last_response.ok?, last_response.body)
- File.write(file, last_response.body)
- assert wallet.balance.zero?
- end
- end
-
- def test_pulls_an_absent_wallet
- get('/wallets/ffffeeeeddddcccc')
- assert(last_response.status == 404)
end
end