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