Skip to content

Commit c7285e4

Browse files
committed
load subsites for repository reading room controllers (DLC-1157)
1 parent 296924e commit c7285e4

File tree

6 files changed

+99
-7
lines changed

6 files changed

+99
-7
lines changed

app/controllers/concerns/dcv/sites/reading_rooms.rb

+14
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,18 @@ def repository_ids_for_client(remote_ip = request.remote_ip)
1818
end
1919
end.compact
2020
end
21+
22+
def subsite_key
23+
return unless params[:repository_id]
24+
key = params[:repository_id].dup
25+
key.downcase!
26+
key.gsub!('-','')
27+
key
28+
end
29+
30+
def load_subsite
31+
@subsite ||= Site.find_by(slug: subsite_key) if params[:repository_id]
32+
super
33+
@subsite
34+
end
2135
end

app/controllers/repositories/catalog_controller.rb

-7
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,6 @@ def default_search_mode_cookie
5353
end
5454
end
5555

56-
def subsite_key
57-
key = params[:repository_id].dup
58-
key.downcase!
59-
key.gsub!('-','')
60-
key
61-
end
62-
6356
def subsite_layout
6457
'gallery'
6558
end

app/controllers/repositories_controller.rb

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class RepositoriesController < ApplicationController
3131
end
3232

3333
before_action :set_repository_id, only:[:show]
34+
before_action :load_subsite, only:[:show, :about, :reading_room]
3435

3536
prepend_view_path('app/views/repositories')
3637

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
require 'rails_helper'
2+
3+
describe Repositories::CatalogController, type: :controller do
4+
let(:default_catalog_styles) { ["gallery-#{Dcv::Sites::Constants.default_palette}", "catalog"] }
5+
let(:view_context) { controller.view_context }
6+
let(:site_attr) { { slug: 'nncrb', layout: 'default', palette: 'monochrome' } }
7+
let(:search_service) { instance_double(Blacklight::SearchService) }
8+
let(:subsite) { FactoryBot.create(:site, **site_attr) }
9+
10+
before do
11+
expect(subsite).not_to be_nil
12+
expect(controller).not_to be_nil
13+
expect(controller.controller_name).not_to be_nil
14+
controller.set_view_path
15+
allow(controller).to receive(:search_service).and_return(search_service)
16+
allow(search_service).to receive(:search_results)
17+
allow(controller).to receive(:view_context).and_return(view_context)
18+
allow(view_context).to receive(:current_user).and_return(nil)
19+
end
20+
21+
after do
22+
subsite.destroy
23+
end
24+
25+
describe '#index' do
26+
it "responds" do
27+
get :index, params: { repository_id: 'NNC-RB' }
28+
expect(response.status).to eq(200)
29+
expect(controller.load_subsite.palette).to eql 'monochrome'
30+
end
31+
end
32+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
require 'rails_helper'
2+
3+
describe RepositoriesController, type: :controller do
4+
let(:default_catalog_styles) { ["gallery-#{Dcv::Sites::Constants.default_palette}", "catalog"] }
5+
let(:view_context) { controller.view_context }
6+
let(:site_attr) { { slug: 'nncrb', layout: 'default', palette: 'monochrome' } }
7+
let(:subsite) { FactoryBot.create(:site, **site_attr) }
8+
9+
before do
10+
expect(subsite).not_to be_nil
11+
expect(controller).not_to be_nil
12+
expect(controller.controller_name).not_to be_nil
13+
controller.set_view_path
14+
15+
allow(controller).to receive(:view_context).and_return(view_context)
16+
allow(view_context).to receive(:current_user).and_return(nil)
17+
end
18+
19+
after do
20+
subsite.destroy
21+
end
22+
23+
describe '#reading_room' do
24+
it "responds with 200" do
25+
get :reading_room, params: { repository_id: 'NNC-RB' }
26+
expect(response.status).to eq(200)
27+
expect(controller.load_subsite.palette).to eql 'monochrome'
28+
end
29+
end
30+
describe '#about' do
31+
it "responds with 200" do
32+
get :about, params: { repository_id: 'NNC-RB' }
33+
expect(response.status).to eq(200)
34+
expect(controller.load_subsite.palette).to eql 'monochrome'
35+
end
36+
end
37+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
require 'rails_helper'
2+
3+
describe RepositoriesController, :type => :routing do
4+
describe "routing" do
5+
it "routes to #show" do
6+
expect(:get => "/NNC-RB").to route_to(controller: "repositories", action:"show", id: "NNC-RB")
7+
end
8+
it "routes to #about" do
9+
expect(:get => "/NNC-RB/about").to route_to(controller: "repositories", action:"about", repository_id: "NNC-RB", slug: "about")
10+
end
11+
it "routes to #reading-room" do
12+
expect(:get => "/NNC-RB/reading-room").to route_to(controller: "repositories", action:"reading_room", repository_id: "NNC-RB")
13+
end
14+
end
15+
end

0 commit comments

Comments
 (0)