Add active_language controller and cookie storage
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
FactoryBot.define do
|
||||
factory :language do
|
||||
name { "MyString" }
|
||||
sequence(:name) { |n| "MyString#{n.to_s}" }
|
||||
end
|
||||
|
||||
factory :language_english, class: :language do
|
||||
name { "English" }
|
||||
end
|
||||
end
|
||||
|
31
spec/helpers/active_language_helper_spec.rb
Normal file
31
spec/helpers/active_language_helper_spec.rb
Normal file
@@ -0,0 +1,31 @@
|
||||
require 'rails_helper'
|
||||
|
||||
# Specs in this file have access to a helper object that includes
|
||||
# the ActiveLanguageHelper. For example:
|
||||
#
|
||||
# describe ActiveLanguageHelper do
|
||||
# describe "string concat" do
|
||||
# it "concats two strings with spaces" do
|
||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
RSpec.describe ActiveLanguageHelper, type: :helper do
|
||||
|
||||
describe "active_language_helper_tag" do
|
||||
before :each do
|
||||
english = FactoryBot.create(:language_english)
|
||||
2.times { FactoryBot.create(:language) }
|
||||
@tag = active_language_select_tag
|
||||
end
|
||||
|
||||
it "should return a select tag" do
|
||||
expect(@tag).to have_selector(%(select))
|
||||
end
|
||||
|
||||
it "should not contain an English option" do
|
||||
expect(@tag).to_not include("English")
|
||||
|
||||
end
|
||||
end
|
||||
end
|
20
spec/requests/active_language_spec.rb
Normal file
20
spec/requests/active_language_spec.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe "ActiveLanguages", type: :request do
|
||||
|
||||
describe "POST :set_active_language" do
|
||||
|
||||
it "should set the cookie" do
|
||||
language = FactoryBot.create(:language)
|
||||
post "/set_active_language/", params: { active_language_id: language.id }
|
||||
expect(cookies[:active_language_id]).to_not be_nil
|
||||
end
|
||||
|
||||
it "should not set the cookie if language does not exist" do
|
||||
language = FactoryBot.create(:language)
|
||||
id = language.id + 1
|
||||
post "/set_active_language/", params: { active_language_id: id }
|
||||
expect(response).to have_http_status(:unprocessable_entity)
|
||||
end
|
||||
end
|
||||
end
|
@@ -39,5 +39,12 @@ RSpec.describe "Root path", type: :request do
|
||||
get root_path
|
||||
expect(response.body).to include(user.username)
|
||||
end
|
||||
|
||||
it "should have a language drop-down" do
|
||||
user = FactoryBot.create(:user)
|
||||
sign_in user
|
||||
get root_path
|
||||
expect(response.body).to have_field("active_language_id")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user