52 lines
1.1 KiB
Ruby
52 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'minitest/autorun'
|
|
require 'capybara/minitest'
|
|
|
|
require_relative 'app'
|
|
|
|
# make test report prettier
|
|
require 'minitest/reporters'
|
|
Minitest::Reporters.use!
|
|
|
|
Capybara.app = App
|
|
|
|
# Run tests for my simple Roda app.
|
|
class AppTest < Minitest::Test
|
|
include Capybara::DSL
|
|
include Capybara::Minitest::Assertions
|
|
|
|
def teardown
|
|
Capybara.reset_sessions!
|
|
Capybara.use_default_driver
|
|
end
|
|
|
|
# always passes, just to make sure tests are running
|
|
def test_the_truth
|
|
assert true
|
|
end
|
|
|
|
# Make sure not just responding to every path
|
|
def test_random_page_does_not__exist
|
|
visit '/skdjflksjdflkzxbjslkdjqweooiumnbvjslkdjflk'
|
|
refute_equal 200, page.status_code
|
|
end
|
|
|
|
def test_home_page_exists
|
|
visit '/'
|
|
assert_equal 200, page.status_code
|
|
end
|
|
|
|
# Can change the checked content as your site evolves:
|
|
def test_home_page_has_content
|
|
visit '/'
|
|
assert_content 'My Homepage'
|
|
end
|
|
|
|
def test_about_page_exists_and_has_content
|
|
visit '/about'
|
|
assert_equal 200, page.status_code
|
|
assert_content 'About This Site'
|
|
end
|
|
end
|