diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index 0fb2d97..9911608 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -1,10 +1,10 @@ class RegistrationsController < Devise::RegistrationsController - before_action :one_user_registered?, only: [:new, :create] + before_action :one_user_registered, only: [:new, :create] protected - def one_user_registered? + def one_user_registered if User.count == 1 if user_signed_in? redirect_to root_path diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 3a6ee32..40109fd 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -16,6 +16,7 @@
  • <%= link_to "Edit account", edit_user_registration_path %>
  • <%= button_to "Log out", destroy_user_session_path, method: :delete %>
  • <% end %> +
    diff --git a/test/controllers/virtuals_controller_test.rb b/test/controllers/virtuals_controller_test.rb index 1ec1ecf..f3e9fe9 100644 --- a/test/controllers/virtuals_controller_test.rb +++ b/test/controllers/virtuals_controller_test.rb @@ -1,29 +1,41 @@ require "test_helper" class VirtualsControllerTest < ActionDispatch::IntegrationTest + include Devise::Test::IntegrationHelpers + setup do @virtual = virtuals(:one) - @domain = doamins(:one) + @domain = domains(:one) end - test "should get index" do - get virtuals_url + test "should get not get new because we are not logged in" do + get new_domain_virtual_url(@domain) + assert_redirected_to new_user_session_path + end + + test "should get new because we are logged in" do + sign_in users(:bob) + get new_domain_virtual_url(@domain) assert_response :success end - test "should get new" do - get new_virtual_url - assert_response :success - end - - test "should create virtual" do - assert_difference("Virtual.count") do - post virtuals_url, params: { virtual: { destination: @virtual.destination, email: @virtual.email } } + test "should not create virtual because we are not logged in" do + assert_no_difference("Virtual.count") do + post domain_virtuals_url(@domain), params: { virtual: { destination: @virtual.destination, email: @virtual.email } } end - assert_redirected_to virtual_url(Virtual.last) + assert_redirected_to new_user_session_path end + test "should create virtual because we are logged in" do + sign_in users(:bob) + assert_difference("Virtual.count") do + post domain_virtuals_url(@domain), params: { virtual: { destination: @virtual.destination, email: @virtual.email } } + end + + assert_redirected_to domain_path(@domain.id) + end +=begin test "should show virtual" do get virtual_url(@virtual) assert_response :success @@ -46,4 +58,5 @@ class VirtualsControllerTest < ActionDispatch::IntegrationTest assert_redirected_to virtuals_url end +=end end