diff --git a/app/views/software_records/edit_road_map.html.erb b/app/views/software_records/edit_road_map.html.erb
index d71de49..28374d3 100644
--- a/app/views/software_records/edit_road_map.html.erb
+++ b/app/views/software_records/edit_road_map.html.erb
@@ -25,7 +25,7 @@
<%= form.label :road_map, class: 'form-label' %>
- <%= form.text_area :road_map, class: 'form-control' %>
+ <%= form.text_area :road_map, class: 'form-control', rows: 10 %>
diff --git a/app/views/software_records/list_road_map.html.erb b/app/views/software_records/list_road_map.html.erb
index 60f1510..3ab3f77 100644
--- a/app/views/software_records/list_road_map.html.erb
+++ b/app/views/software_records/list_road_map.html.erb
@@ -42,7 +42,7 @@
<% @software_records.each do |software_record| %>
- <%= software_record.title %> |
+ <%= software_record.title %> |
<%= simple_format(software_record.road_map) %> |
<% if current_user.role.to_s == "viewer" %>
<%= link_to 'View', software_record , { :class => "btn btn-success action-btn" }%> |
diff --git a/spec/controllers/software_records_controller_spec.rb b/spec/controllers/software_records_controller_spec.rb
index 6272a02..10adcc3 100644
--- a/spec/controllers/software_records_controller_spec.rb
+++ b/spec/controllers/software_records_controller_spec.rb
@@ -125,12 +125,63 @@ def sign_in_user(admin)
end
end
+ context 'when filter_by is software_types and software_type_filter is provided' do
+ it 'assigns filtered software records to @software_records' do
+ software_record = SoftwareRecord.create! valid_attributes
+ get :list_road_map, params: { filter_by: 'software_types', software_type_filter: SoftwareType.first.id }
+ expect(assigns(:software_records)).to include(software_record)
+ end
+ end
+
+ context 'when filter_by is not software_types' do
+ it 'assigns all software records to @software_records' do
+ software_record = SoftwareRecord.create! valid_attributes
+ get :list_road_map, params: { filter_by: 'other_filter' }
+ expect(assigns(:software_records)).to include(software_record)
+ end
+ end
+
+ context 'when software_type_filter is nil or empty' do
+ it 'assigns all software records to @software_records if filter_by is software_types' do
+ software_record = SoftwareRecord.create! valid_attributes
+ get :list_road_map, params: { filter_by: 'software_types', software_type_filter: nil }
+ expect(assigns(:software_records)).to include(software_record)
+
+ get :list_road_map, params: { filter_by: 'software_types', software_type_filter: '' }
+ expect(assigns(:software_records)).to include(software_record)
+ end
+ end
+
+ context 'when filtering by vendor_records' do
+ it 'assigns the filtered software records to @software_records' do
+ software_record = SoftwareRecord.create! valid_attributes
+ get :list_road_map, params: { filter_by: 'vendor_records', vendor_record_filter: VendorRecord.first.id }
+ expect(assigns(:software_records)).to match_array([software_record])
+ end
+ end
+
+ context 'when no filters are applied' do
+ it 'assigns all software records to @software_records' do
+ software_record1 = SoftwareRecord.create! valid_attributes
+ software_record2 = SoftwareRecord.create! valid_attributes
+ get :list_road_map
+ expect(assigns(:software_records)).to match_array([software_record1, software_record2])
+ end
+ end
+
describe 'GET #edit_road_map' do
it 'assigns the requested software record to @software_record' do
software_record = SoftwareRecord.create! valid_attributes
get :edit_road_map, params: { id: software_record.to_param }
expect(response).to be_successful
expect(response).to render_template(:edit_road_map)
+ expect(assigns(:software_record)).to eq(software_record)
+ end
+
+ it 'renders the edit_road_map template' do
+ software_record = SoftwareRecord.create! valid_attributes
+ get :edit_road_map, params: { id: software_record.to_param }
+ expect(response).to render_template(:edit_road_map)
end
end
@@ -143,6 +194,22 @@ def sign_in_user(admin)
expect(software_record.road_map).to eq('New Road Map')
expect(response).to redirect_to(list_road_map_path)
end
+
+ it 'redirects to the list_road_map path with a notice' do
+ software_record = SoftwareRecord.create! valid_attributes
+ patch :update_road_map, params: { id: software_record.id, software_record: { road_map: 'New Road Map' } }
+ expect(response).to redirect_to(list_road_map_path)
+ expect(flash[:notice]).to eq('Road map was successfully updated.')
+ end
+ end
+
+ context 'with invalid attributes' do
+ it 'does not update the software record' do
+ software_record = SoftwareRecord.create! valid_attributes
+ patch :update_road_map, params: { id: software_record.id, software_record: invalid_attributes }
+ software_record.reload
+ expect(software_record.title).not_to eq('')
+ end
end
end
diff --git a/spec/views/software_records/show.html.erb_spec.rb b/spec/views/software_records/show.html.erb_spec.rb
index 8e2954e..9747b93 100644
--- a/spec/views/software_records/show.html.erb_spec.rb
+++ b/spec/views/software_records/show.html.erb_spec.rb
@@ -66,7 +66,7 @@
dev_support_servers: 'dev.example.com',
date_cert_expires: '2020-01-01',
monitor_certificates: 'Yes',
- road_map: 'Road Map',
+ road_map: "Road one\nRoad two",
notes: "Line one\nLine two",
themes: true,
modules: true
@@ -82,7 +82,7 @@
expect(rendered).to match(/1/)
expect(rendered).to match(/DUO/)
expect(rendered).to match(%r{Line one\n
Line two})
- expect(rendered).to match(/Road Map/)
+ expect(rendered).to match(%r{Road one\n
Road two})
end
it 'renders change management attributes in ' do