Skip to content

Commit

Permalink
Merge pull request #6438 from samvera/valk_record_edit_fields
Browse files Browse the repository at this point in the history
Adapt more record view specs for valkyrie
  • Loading branch information
bwatson78 committed Nov 10, 2023
2 parents 74f1e40 + 76aac06 commit b53d402
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 58 deletions.
110 changes: 62 additions & 48 deletions spec/views/records/edit_fields/_description.html.erb_spec.rb
@@ -1,7 +1,59 @@
# frozen_string_literal: true
RSpec.describe 'records/edit_fields/_description.html.erb', type: :view do
let(:work) { GenericWork.new }
let(:form) { Hyrax::GenericWorkForm.new(work, nil, controller) }
RSpec.shared_examples 'description field behaviors' do
context "when single valued" do
before do
expect(form).to receive(:multiple?).and_return(false)
end

context "when not required" do
before do
expect(form).to receive(:required?).and_return(false)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea[class="form-control text optional"]')
end
end

context "when required" do
before do
expect(form).to receive(:required?).and_return(true)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea[class="form-control text required"]')
end
end
end

context "when multi valued" do
before do
expect(form).to receive(:multiple?).and_return(true)
end

context "when not required" do
before do
expect(form).to receive(:required?).and_return(false)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea.string.multi_value.optional.form-control.multi-text-field')
end
end

context "when required" do
before do
expect(form).to receive(:required?).and_return(true)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea.string.multi_value.required.form-control.multi-text-field')
end
end
end
end

let(:form_template) do
%(
<%= simple_form_for [main_app, @form] do |f| %>
Expand All @@ -14,55 +66,17 @@
assign(:form, form)
end

context "when single valued" do
before do
expect(form).to receive(:multiple?).and_return(false)
end
context 'ActiveFedora', :active_fedora do
let(:work) { GenericWork.new }
let(:form) { Hyrax::GenericWorkForm.new(work, nil, controller) }

context "when not required" do
before do
expect(form).to receive(:required?).and_return(false)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea[class="form-control text optional"]')
end
end

context "when required" do
before do
expect(form).to receive(:required?).and_return(true)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea[class="form-control text required"]')
end
end
include_examples 'description field behaviors'
end

context "when multi valued" do
before do
expect(form).to receive(:multiple?).and_return(true)
end

context "when not required" do
before do
expect(form).to receive(:required?).and_return(false)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea[class="string multi_value optional generic_work_description form-control multi-text-field"]')
end
end
context 'Valkyrie' do
let(:work) { Monograph.new }
let(:form) { Hyrax::Forms::ResourceForm.for(work) }

context "when required" do
before do
expect(form).to receive(:required?).and_return(true)
end
it 'has text area' do
render inline: form_template
expect(rendered).to have_selector('textarea[class="string multi_value required generic_work_description form-control multi-text-field"]')
end
end
include_examples 'description field behaviors'
end
end
20 changes: 18 additions & 2 deletions spec/views/records/edit_fields/_language.html.erb_spec.rb
@@ -1,5 +1,11 @@
# frozen_string_literal: true
RSpec.describe 'records/edit_fields/_language.html.erb', type: :view do
RSpec.shared_examples 'check for language autocomplete url' do
it 'has url for autocomplete service' do
expect(rendered).to have_selector('input[data-autocomplete-url="/authorities/search/local/languages"][data-autocomplete="language"]')
end
end

let(:work) { GenericWork.new }
let(:form) { Hyrax::GenericWorkForm.new(work, nil, controller) }
let(:form_template) do
Expand All @@ -15,7 +21,17 @@
render inline: form_template
end

it 'has url for autocomplete service' do
expect(rendered).to have_selector('input[data-autocomplete-url="/authorities/search/local/languages"][data-autocomplete="language"]')
context 'ActiveFedora', :active_fedora do
let(:work) { GenericWork.new }
let(:form) { Hyrax::GenericWorkForm.new(work, nil, controller) }

include_examples 'check for language autocomplete url'
end

context 'Valkyrie' do
let(:work) { Monograph.new }
let(:form) { Hyrax::Forms::ResourceForm.for(work) }

include_examples 'check for language autocomplete url'
end
end
15 changes: 7 additions & 8 deletions spec/views/records/edit_fields/_subject.html.erb_spec.rb
@@ -1,12 +1,11 @@
# frozen_string_literal: true

RSpec.shared_examples 'check for autocomplete url' do
it 'has url for autocomplete service' do
expect(rendered).to have_selector('input[data-autocomplete-url="/authorities/search/local/subjects"][data-autocomplete="subject"]')
RSpec.describe 'records/edit_fields/_subject.html.erb', type: :view do
RSpec.shared_examples 'check for subject autocomplete url' do
it 'has url for autocomplete service' do
expect(rendered).to have_selector('input[data-autocomplete-url="/authorities/search/local/subjects"][data-autocomplete="subject"]')
end
end
end

RSpec.describe 'records/edit_fields/_subject.html.erb', type: :view do
let(:form_template) do
%(
<%= simple_form_for [main_app, @form] do |f| %>
Expand All @@ -24,13 +23,13 @@
let(:work) { GenericWork.new }
let(:form) { Hyrax::GenericWorkForm.new(work, nil, controller) }

include_examples 'check for autocomplete url'
include_examples 'check for subject autocomplete url'
end

context 'Valkyrie' do
let(:work) { Monograph.new }
let(:form) { Hyrax::Forms::ResourceForm.for(work) }

include_examples 'check for autocomplete url'
include_examples 'check for subject autocomplete url'
end
end

0 comments on commit b53d402

Please sign in to comment.