1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2025-12-10 08:46:41 +01:00

Add redirects, update test types

This commit is contained in:
Philipp Fischbeck 2017-11-26 14:32:18 +01:00
parent c69eb788ef
commit b5697eff56
7 changed files with 39 additions and 27 deletions

View File

@ -7,7 +7,7 @@
<%= link_to t('application.info'), about_info_path %> <%= link_to t('application.info'), about_info_path %>
<%= link_to Problem.model_name.human(count: 2), problems_path %> <%= link_to Problem.model_name.human(count: 2), problems_path %>
<% if admin_signed_in? %> <% if admin_signed_in? %>
<%= link_to t('admin.dashboard.index.administration'), :admin %> <%= link_to t('admin.dashboard.index.administration'), admin_dashboard_index_path %>
<% end %> <% end %>
<% end %> <% end %>
<%= nav class: 'navbar-right' do %> <%= nav class: 'navbar-right' do %>

View File

@ -3,16 +3,21 @@ Rails.application.routes.draw do
get 'about/info' get 'about/info'
get 'about/copyright' get 'about/copyright'
get 'about/legal' get 'about/legal'
get 'about/roman_numerals' get 'about/roman_numerals'
devise_for :admins, skip: :registrations get 'about=:page', to: redirect('/about/%{page}')
get 'problem=:id', to: redirect('/problems/%{id}')
resources :problems, only: [:index, :show] do resources :problems, only: [:index, :show] do
resources :translations, only: [:new, :create] resources :translations, only: [:new, :create]
end end
devise_for :admins, skip: :registrations
namespace :admin do namespace :admin do
get '', to: 'dashboard#index', as: '/' get '', to: 'dashboard#index', as: 'dashboard_index'
post '/update_problem_count', to: 'dashboard#update_problem_count' post '/update_problem_count', to: 'dashboard#update_problem_count', as: 'dashboard_update_problem_count'
resources :translations, only: [:index, :show] resources :translations, only: [:index, :show]
end end

View File

@ -26,4 +26,9 @@ class AboutControllerTest < ActionDispatch::IntegrationTest
assert_response :success assert_response :success
end end
test "should redirect about pages" do
get '/about=roman_numerals'
assert_redirected_to about_roman_numerals_url
end
end end

View File

@ -1,26 +1,26 @@
require 'test_helper' require 'test_helper'
class Admin::DashboardControllerTest < ActionController::TestCase class Admin::DashboardControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::ControllerHelpers include Devise::Test::IntegrationHelpers
setup do setup do
login login
end end
test "should get index" do test "should get index" do
get :index get admin_dashboard_index_url
assert_response :success assert_response :success
end end
test "should post new problem count" do test "should post new problem count" do
post :update_problem_count, params: { problem_count: 15 } post admin_dashboard_update_problem_count_url(problem_count: 15)
assert_redirected_to controller: 'admin/dashboard', action: 'index' assert_redirected_to admin_dashboard_index_url
assert_equal 15, Problem.count assert_equal 15, Problem.count
end end
test "should fail incorrect problem count" do test "should fail incorrect problem count" do
post :update_problem_count, params: { problem_count: 2 } post admin_dashboard_update_problem_count_url(problem_count: 2)
assert_redirected_to controller: 'admin/dashboard', action: 'index' assert_redirected_to admin_dashboard_index_url
assert_equal 3, Problem.count assert_equal 3, Problem.count
end end

View File

@ -1,20 +1,20 @@
require 'test_helper' require 'test_helper'
class Admin::TranslationsControllerTest < ActionController::TestCase class Admin::TranslationsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::ControllerHelpers include Devise::Test::IntegrationHelpers
setup do setup do
login login
@translation = translations(:translation_one) @translation = translations(:translation_one)
end end
test "should get index" do test "should get index" do
get :index get admin_translations_url
assert_response :success assert_response :success
assert_not_nil assigns(:translations) assert_not_nil assigns(:translations)
end end
test "should show translation" do test "should show translation" do
get :show, params: { id: @translation } get admin_translation_url(id: @translation)
assert_response :success assert_response :success
end end

View File

@ -1,21 +1,25 @@
require 'test_helper' require 'test_helper'
class ProblemsControllerTest < ActionController::TestCase class ProblemsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::ControllerHelpers
test "should get index" do test "should get index" do
get :index get problems_url
assert_response :success assert_response :success
end end
test "should get show" do test "should get show" do
get :show, params: { id: 1 } get problem_url(id: 1)
assert_response :success assert_response :success
end end
test "should get untranslated problem" do test "should get untranslated problem" do
get :show, params: { id: 3 } get problem_url(id: 3)
assert_response :success assert_response :success
end end
test "should redirect to correct problem" do
get '/problem=2'
assert_redirected_to problem_path(id: 2)
end
end end

View File

@ -1,8 +1,6 @@
require 'test_helper' require 'test_helper'
class TranslationsControllerTest < ActionController::TestCase class TranslationsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::ControllerHelpers
setup do setup do
@update = { @update = {
title: 'New title', title: 'New title',
@ -15,18 +13,18 @@ class TranslationsControllerTest < ActionController::TestCase
end end
test "should get new for translated problem" do test "should get new for translated problem" do
get :new, params: { problem_id: 1 } get new_problem_translation_url(problem_id: 1)
assert_response :success assert_response :success
end end
test "should get new for untranslated problem" do test "should get new for untranslated problem" do
get :new, params: { problem_id: 3 } get new_problem_translation_url(problem_id: 3)
assert_response :success assert_response :success
end end
test "should create translation" do test "should create translation" do
assert_difference('Translation.count') do assert_difference('Translation.count') do
post :create, params: { problem_id: 1, translation: @update } post problem_translations_url(problem_id: 1, translation: @update)
end end
assert_redirected_to problem_path(id: 1) assert_redirected_to problem_path(id: 1)
@ -34,7 +32,7 @@ class TranslationsControllerTest < ActionController::TestCase
test "should not create incorrect translation" do test "should not create incorrect translation" do
assert_no_difference('Translation.count') do assert_no_difference('Translation.count') do
post :create, params: { problem_id: 1, translation: @incorrect } post problem_translations_url(problem_id: 1, translation: @incorrect)
end end
end end
end end