From f3a35d4ff0606ea59aecd67c5daa01ccf51b01a8 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Tue, 8 Dec 2015 01:38:50 -0500 Subject: Add test/ from branch 'solution' --- test/integration/auth_test.rb | 43 +++++++++++++++++++++++++++++++++++++++++ test/integration_test_helper.rb | 18 +++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 test/integration/auth_test.rb create mode 100644 test/integration_test_helper.rb (limited to 'test') diff --git a/test/integration/auth_test.rb b/test/integration/auth_test.rb new file mode 100644 index 0000000..7fa2950 --- /dev/null +++ b/test/integration/auth_test.rb @@ -0,0 +1,43 @@ +require 'integration_test_helper' + + +class TestAuth < CapybaraTestCase + def login(username, password) + visit '/' + fill_in 'username', :with => username + fill_in 'password', :with => password + click_button 'Login' + end + + def login_with_correct_credentials + login('hubertfarnsworth', 'secret') + end + + + def test_index_has_login_form + visit '/' + assert_text 'Login' + assert has_selector?('//form') + end + + def test_unrecognised_user_login + login('unregistered', 'password') + + assert_text 'Unrecognized user' + end + + def test_login + login_with_correct_credentials + + assert_equal 200, page.status_code + assert_text "You're logged in!" + end + + def test_logout + login_with_correct_credentials + visit '/logout' + + assert_text 'Login' + assert_equal '/', current_path + end +end diff --git a/test/integration_test_helper.rb b/test/integration_test_helper.rb new file mode 100644 index 0000000..609c08b --- /dev/null +++ b/test/integration_test_helper.rb @@ -0,0 +1,18 @@ +ENV['RACK_ENV'] = 'test' + +require 'minitest/autorun' +require 'capybara' + +require 'app' + + +class CapybaraTestCase < Minitest::Unit::TestCase + include Capybara::DSL + + def teardown + Capybara.reset_sessions! + Capybara.use_default_driver + end +end + +Capybara.app = Sinatra::Application.new -- cgit v1.2.3