Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
dbwinger committed Jul 1, 2024
1 parent 5df0ed8 commit 3617cf4
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 2 deletions.
4 changes: 2 additions & 2 deletions app/controllers/concerns/alchemy/admin/current_language.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ module CurrentLanguage

def load_current_language
@current_language = if session[:alchemy_language_id].present?
if current_alchemy_site.languages.where(id: session[:alchemy_language_id]).exists?
if Current.site.languages.where(id: session[:alchemy_language_id]).exists?
set_alchemy_language(session[:alchemy_language_id])
else
current_alchemy_site.default_language
Current.site.default_language
end
else
Current.language
Expand Down
48 changes: 48 additions & 0 deletions lib/alchemy/test_support/current_language_shared_examples.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# frozen_string_literal: true

RSpec.shared_examples_for "a controller that loads current language" do |args|
context "when session has current language id key" do
let!(:site_1) { create(:alchemy_site) }
let!(:site_1_default_language) { create :alchemy_language, site: site_1, default: true }
let!(:another_site_1_language) { create :alchemy_language, site: site_1, code: :de }
let(:site_2) { create :alchemy_site, host: 'another.host', languages: [build(:alchemy_language, code: :en), build(:alchemy_language, code: :de)] }

before { session[:alchemy_language_id] = another_site_1_language.id }

context "when language ID in session is associated with the current site" do
it "sets @current_language" do
get :index, params: { site_id: site_1.id }
expect(assigns(:current_language)).to eq(another_site_1_language)
end
end

context "when language ID in session is not associated with the current site" do
it "sets @current_language to the current site default language" do
get :index, params: { site_id: site_2.id }
expect(assigns(:current_language)).to eq(site_2.default_language)
end

it "does not change the language ID in session" do
expect { get :index, params: { site_id: site_2.id } }.not_to change { session[:alchemy_language_id] }
end
end

context "when no language ID in session" do
before { session[:alchemy_language_id] = nil }

it "sets @current_language to language language" do
get :index, params: { site_id: site_2.id }
expect(assigns(:current_language)).to eq site_2.default_language
end
end

context "when no language to set" do
it "shows flash warning with redirect" do
Alchemy::Language.destroy_all
get :index, params: { site_id: site_1.id }
expect(flash[:warning]).to eq Alchemy.t("Please create a language first.")
expect(response).to redirect_to admin_languages_path
end
end
end
end
2 changes: 2 additions & 0 deletions spec/controllers/alchemy/admin/layoutpages_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ module Alchemy
authorize_user(:as_admin)
end

it_behaves_like "a controller that loads current language"

describe "#index" do
context "with no language present" do
it "redirects to the languages admin" do
Expand Down
2 changes: 2 additions & 0 deletions spec/controllers/alchemy/admin/nodes_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ module Alchemy
authorize_user(:as_admin)
end

it_behaves_like "a controller that loads current language"

describe "#index" do
context "if no language is present" do
it "redirects to the language admin" do
Expand Down
4 changes: 4 additions & 0 deletions spec/controllers/alchemy/admin/pages_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
authorize_user(:as_admin)
end

it_behaves_like "a controller that loads current language"

describe "#index" do
let!(:page) { create(:alchemy_page) }

Expand Down Expand Up @@ -45,6 +47,8 @@
end
end
end


end

describe "#destroy" do
Expand Down
2 changes: 2 additions & 0 deletions spec/controllers/alchemy/admin/pictures_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ module Alchemy
authorize_user(:as_admin)
end

it_behaves_like "a controller that loads current language"

let!(:language) { create(:alchemy_language) }

describe "#index" do
Expand Down
1 change: 1 addition & 0 deletions spec/rails_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
require "alchemy/test_support/shared_contexts"
require "alchemy/test_support/shared_link_tab_examples"
require "alchemy/test_support/shared_uploader_examples"
require "alchemy/test_support/current_language_shared_examples"

require_relative "support/calculation_examples"
require_relative "support/hint_examples"
Expand Down

0 comments on commit 3617cf4

Please sign in to comment.