Skip to content

Commit 965acbb

Browse files
committed
increasing presenter unit test coverage
1 parent 34328a6 commit 965acbb

23 files changed

+725
-11
lines changed

app/presenters/hyrax/embargo_presenter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def initialize(solr_document)
2020
@solr_document = solr_document
2121
end
2222

23-
def embargo_depostor
23+
def embargo_depositor
2424
solr_document.fetch('depositor_ssim', []).first
2525
end
2626

app/views/hyrax/embargoes/_list_active_embargoes.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<tr>
1515
<td class="human-readable-type"><%= hrt %></td>
1616
<% if current_ability.admin? %>
17-
<td class="depositor"><%= curation_concern.embargo_depostor %></td>
17+
<td class="depositor"><%= curation_concern.embargo_depositor %></td>
1818
<% end %>
1919
<td class="title"><%= link_to curation_concern, edit_embargo_path(curation_concern) %></td>
2020
<td class="current-visibility"><%= visibility_badge(curation_concern.visibility) %></td>

app/views/hyrax/embargoes/_list_expired_active_embargoes.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<td><%= render 'hyrax/batch_select/add_button', document: curation_concern %></td>
3636
<td class="human-readable-type"><%= hrt %></td>
3737
<% if current_ability.admin? %>
38-
<td class="depositor"><%= curation_concern.embargo_depostor %></td>
38+
<td class="depositor"><%= curation_concern.embargo_depositor %></td>
3939
<% end %>
4040
<td class="title"><%= link_to curation_concern, edit_embargo_path(curation_concern) %></td>
4141
<td class="current-visibility"><%= visibility_badge(curation_concern.visibility) %></td>

spec/models/concerns/hyrax/file_set/querying_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
require 'rails_helper'
22

3-
class CurationConcernMock
3+
class QueryingFileSet
44
include ::Hyrax::FileSet::Querying::ClassMethods
55
end
66

77

88
RSpec.describe Hyrax::FileSet::Querying::ClassMethods do
9-
subject { CurationConcernMock.new }
9+
subject { QueryingFileSet.new }
1010

1111
describe '#urnify' do
1212
it "returns urnification of string" do
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require 'rails_helper'
2+
3+
class EventfulMock
4+
include ::Hyrax::WithEvents
5+
6+
end
7+
8+
9+
RSpec.describe Hyrax::WithEvents do
10+
subject { EventfulMock.new }
11+
12+
describe '#event_class' do
13+
it "returns class name" do
14+
expect(subject.event_class).to eq("EventfulMock")
15+
end
16+
17+
end
18+
19+
end
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
require 'rails_helper'
2+
3+
RSpec.describe Hyrax::CollectionTypeParticipant do
4+
5+
describe 'constants' do
6+
it do
7+
expect( ::Hyrax::CollectionTypeParticipant::MANAGE_ACCESS).to eq 'manage'
8+
expect( ::Hyrax::CollectionTypeParticipant::CREATE_ACCESS).to eq 'create'
9+
expect( ::Hyrax::CollectionTypeParticipant::GROUP_TYPE).to eq 'group'
10+
expect( ::Hyrax::CollectionTypeParticipant::USER_TYPE).to eq 'user'
11+
end
12+
end
13+
14+
before do
15+
subject.agent_id = "Agent ID"
16+
end
17+
18+
describe '#manager?' do
19+
20+
it "returns true when access is MANAGE_ACCESS" do
21+
22+
subject.access = Hyrax::CollectionTypeParticipant::MANAGE_ACCESS
23+
expect(subject.manager?).to eq true
24+
end
25+
26+
it "returns false when access is not MANAGE_ACCESS" do
27+
28+
subject.access = Hyrax::CollectionTypeParticipant::CREATE_ACCESS
29+
expect(subject.manager?).to eq false
30+
end
31+
end
32+
33+
describe '#creator?' do
34+
35+
it "returns true when access is CREATE_ACCESS" do
36+
37+
subject.access = Hyrax::CollectionTypeParticipant::CREATE_ACCESS
38+
expect(subject.creator?).to eq true
39+
end
40+
41+
it "returns false when access is not CREATE_ACCESS" do
42+
43+
subject.access = Hyrax::CollectionTypeParticipant::MANAGE_ACCESS
44+
expect(subject.creator?).to eq false
45+
end
46+
end
47+
48+
describe '#label' do
49+
50+
it "returns agent_id when agent_type is not GROUP_TYPE" do
51+
52+
subject.agent_type = Hyrax::CollectionTypeParticipant::USER_TYPE
53+
expect(subject.label).to eq "Agent ID"
54+
end
55+
56+
it "returns agent_id when agent_type is GROUP_TYPE and agent_id not group name" do
57+
58+
subject.agent_type = Hyrax::CollectionTypeParticipant::GROUP_TYPE
59+
expect(subject.label).to eq "Agent ID"
60+
end
61+
62+
# TODO: test other cases for agent_id
63+
end
64+
65+
end
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
require 'rails_helper'
2+
3+
RSpec.describe Hyrax::CollectionType do
4+
5+
describe 'constants' do
6+
it do
7+
expect( ::Hyrax::CollectionType::USER_COLLECTION_MACHINE_ID ).to eq 'user_collection'
8+
expect( ::Hyrax::CollectionType::ADMIN_SET_MACHINE_ID ).to eq 'admin_set'
9+
end
10+
end
11+
12+
describe "#collections" do
13+
14+
# TODO: test positive case
15+
it "returns empty array when gid has no value" do
16+
17+
allow(subject).to receive(:gid).and_return( nil )
18+
expect(subject.collections).to eq []
19+
end
20+
end
21+
22+
describe "#collections?" do
23+
24+
it "returns true when collections has at least one item" do
25+
26+
allow(subject).to receive(:collections).and_return( %w[this that] )
27+
expect(subject.collections?).to eq true
28+
end
29+
30+
it "returns false when collections is empty" do
31+
32+
allow(subject).to receive(:collections).and_return( [] )
33+
expect(subject.collections?).to eq false
34+
end
35+
end
36+
37+
describe '#admin_set?' do
38+
39+
it 'returns true when machine_id is ADMIN_SET_MACHINE_ID' do
40+
subject.machine_id = Hyrax::CollectionType::ADMIN_SET_MACHINE_ID
41+
42+
expect( subject.admin_set? ).to eq true
43+
end
44+
45+
it 'returns false when machine_id is USER_COLLECTION_MACHINE_ID' do
46+
subject.machine_id = Hyrax::CollectionType::USER_COLLECTION_MACHINE_ID
47+
48+
expect( subject.admin_set? ).to eq false
49+
end
50+
end
51+
52+
describe '#user_collection?'
53+
54+
it 'returns false when machine_id is ADMIN_SET_MACHINE_ID' do
55+
subject.machine_id = Hyrax::CollectionType::ADMIN_SET_MACHINE_ID
56+
57+
expect( subject.user_collection? ).to eq false
58+
end
59+
60+
it 'returns true when machine_id is USER_COLLECTION_MACHINE_ID' do
61+
subject.machine_id = Hyrax::CollectionType::USER_COLLECTION_MACHINE_ID
62+
63+
expect( subject.user_collection? ).to eq true
64+
end
65+
end
66+
67+

spec/presenters/hyrax/collection_presenter_spec.rb

Lines changed: 92 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
RSpec.describe Hyrax::CollectionPresenter do
44
let(:user) { FactoryBot.create :user }
55

6-
let(:user_key) { 'a_user_key' }
7-
let(:attributes) do {} end
8-
6+
let(:attributes) do
7+
{ "bytes_lts" => '123' }
8+
end
99
let(:solr_document) { SolrDocument.new(attributes) }
1010
let(:current_ability) { instance_double(Ability, current_user: user ) }
1111
let(:request) { double(host: 'example.org', base_url: 'http://example.org') }
@@ -17,4 +17,93 @@
1717
it { is_expected.to delegate_method(:collection?).to(:solr_document) }
1818
it { is_expected.to delegate_method(:representative_id).to(:solr_document) }
1919
it { is_expected.to delegate_method(:to_s).to(:solr_document) }
20+
21+
it { is_expected.to delegate_method(:title).to(:solr_document) }
22+
it { is_expected.to delegate_method(:description).to(:solr_document) }
23+
it { is_expected.to delegate_method(:creator).to(:solr_document) }
24+
it { is_expected.to delegate_method(:contributor).to(:solr_document) }
25+
it { is_expected.to delegate_method(:subject).to(:solr_document) }
26+
it { is_expected.to delegate_method(:publisher).to(:solr_document) }
27+
it { is_expected.to delegate_method(:keyword).to(:solr_document) }
28+
it { is_expected.to delegate_method(:contributor).to(:solr_document) }
29+
it { is_expected.to delegate_method(:language).to(:solr_document) }
30+
it { is_expected.to delegate_method(:embargo_release_date).to(:solr_document) }
31+
it { is_expected.to delegate_method(:lease_expiration_date).to(:solr_document) }
32+
it { is_expected.to delegate_method(:license).to(:solr_document) }
33+
it { is_expected.to delegate_method(:date_created).to(:solr_document) }
34+
it { is_expected.to delegate_method(:resource_type).to(:solr_document) }
35+
it { is_expected.to delegate_method(:based_near).to(:solr_document) }
36+
it { is_expected.to delegate_method(:related_url).to(:solr_document) }
37+
it { is_expected.to delegate_method(:identifier).to(:solr_document) }
38+
it { is_expected.to delegate_method(:thumbnail_path).to(:solr_document) }
39+
it { is_expected.to delegate_method(:title_or_label).to(:solr_document) }
40+
it { is_expected.to delegate_method(:collection_type_gid).to(:solr_document) }
41+
it { is_expected.to delegate_method(:create_date).to(:solr_document) }
42+
it { is_expected.to delegate_method(:modified_date).to(:solr_document) }
43+
it { is_expected.to delegate_method(:visibility).to(:solr_document) }
44+
it { is_expected.to delegate_method(:edit_groups).to(:solr_document) }
45+
it { is_expected.to delegate_method(:edit_people).to(:solr_document) }
46+
47+
describe "#size" do
48+
it "returns bytes as descriptive string" do
49+
expect(subject.size).to eq "123 Bytes"
50+
end
51+
end
52+
53+
describe "#collection_type_badge" do
54+
it "returns collection_type.title" do
55+
56+
allow(subject).to receive(:collection_type).and_return( double(title: 'Example of Grandiosity') )
57+
expect(subject.collection_type_badge).to eq 'Example of Grandiosity'
58+
end
59+
end
60+
61+
describe "#total_parent_collections" do
62+
it "returns parent_collections response numFound" do
63+
64+
allow(subject).to receive(:parent_collections).and_return( double( response: {"numFound" => 7} ) )
65+
expect(subject.total_parent_collections).to eq 7
66+
end
67+
end
68+
69+
describe "#parent_collection_count" do
70+
it "returns parent_collections documents size" do
71+
72+
allow(subject).to receive(:parent_collections).and_return( double(documents: ['1', '2', '3', '4', '5']) )
73+
expect(subject.parent_collection_count).to eq 5
74+
end
75+
end
76+
77+
78+
79+
describe "#create_work_presenter" do
80+
it "returns SelectTypeListPresenter" do
81+
expect(subject.create_work_presenter).to be_kind_of Hyrax::SelectTypeListPresenter
82+
end
83+
end
84+
85+
describe "#draw_select_work_modal?" do
86+
87+
it "returns true" do
88+
allow(subject).to receive(:create_many_work_types?).and_return(true)
89+
expect(subject.draw_select_work_modal?).to eq true
90+
end
91+
92+
it "returns false" do
93+
allow(subject).to receive(:create_many_work_types?).and_return(false)
94+
expect(subject.draw_select_work_modal?).to eq false
95+
end
96+
end
97+
98+
describe "#first_work_type" do
99+
it "returns first string in list" do
100+
101+
allow(subject.create_work_presenter).to receive(:authorized_models).and_return(["Alpha", "Beta"])
102+
expect(subject.first_work_type).to eq "Alpha"
103+
end
104+
end
105+
106+
107+
108+
20109
end
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
require 'rails_helper'
2+
3+
RSpec.describe Hyrax::DeepbluePresenter do
4+
let(:user) { FactoryBot.create :user }
5+
let(:attributes) do {} end
6+
let(:solr_document) { SolrDocument.new(attributes) }
7+
let(:current_ability) { instance_double(Ability, current_user: user ) }
8+
9+
subject { described_class.new(solr_document, current_ability) }
10+
11+
describe '#box_enabled?' do
12+
it 'returns false' do
13+
expect(subject.box_enabled?).to eq false
14+
end
15+
end
16+
17+
describe '#display_provenance_log_enabled?' do
18+
it 'returns false' do
19+
expect(subject.display_provenance_log_enabled?).to eq false
20+
end
21+
end
22+
23+
describe '#globus_download_enabled?' do
24+
it 'returns false' do
25+
expect(subject.globus_download_enabled?).to eq false
26+
end
27+
end
28+
29+
describe '#human_readable_type' do
30+
it 'returns Work text' do
31+
expect(subject.human_readable_type).to eq 'Work'
32+
end
33+
end
34+
35+
describe '#zip_download_enabled?' do
36+
it 'returns false' do
37+
expect(subject.zip_download_enabled?).to eq false
38+
end
39+
end
40+
end

0 commit comments

Comments
 (0)