49 lines
1.1 KiB
Ruby
49 lines
1.1 KiB
Ruby
require "test_helper"
|
|
|
|
class FirstRunsControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
Book.destroy_all
|
|
User.destroy_all
|
|
end
|
|
|
|
test "new" do
|
|
get first_run_url
|
|
assert_response :success
|
|
end
|
|
|
|
test "new is not permitted when users exist" do
|
|
create_user
|
|
|
|
get first_run_url
|
|
assert_redirected_to root_url
|
|
end
|
|
|
|
test "create" do
|
|
assert_difference -> { User.count }, 1 do
|
|
post first_run_url, params: { user: { name: "New Person", email_address: "new@37signals.com", password: "secret123456" } }
|
|
end
|
|
|
|
assert_redirected_to root_url
|
|
|
|
assert parsed_cookies.signed[:session_token]
|
|
end
|
|
|
|
test "create is not permitted when users exist" do
|
|
create_user
|
|
|
|
assert_no_difference -> { User.count } do
|
|
post first_run_url, params: { user: { name: "New Person", email_address: "new@37signals.com", password: "secret123456" } }
|
|
end
|
|
|
|
assert_redirected_to root_url
|
|
end
|
|
|
|
private
|
|
def create_user
|
|
User.create! \
|
|
name: "Existing Person",
|
|
email_address: "user@example.com",
|
|
password: "secret123456"
|
|
end
|
|
end
|