diff --git a/app/controllers/software_records_controller.rb b/app/controllers/software_records_controller.rb index 3c8710c..1fda486 100644 --- a/app/controllers/software_records_controller.rb +++ b/app/controllers/software_records_controller.rb @@ -170,20 +170,20 @@ def list_upgrades @software_types = SoftwareType.all @softwarerecords_count = SoftwareRecord.count end - + def list_road_map $page_title = 'Road Map | UCL Application Portfolio' @params = request.query_parameters - + @software_records = if @params['filter_by'].to_s == 'software_types' && !@params['software_type_filter'].nil? && !@params['software_type_filter'].empty? SoftwareRecord.where(software_type_id: @params['software_type_filter']).order("#{sort_priority} #{sort_direction_priority}") - elsif @params['filter_by'].to_s == 'vendor_records' && !@params['vendor_record_filter'].nil? && -!@params['vendor_record_filter'].empty? + elsif @params['filter_by'].to_s == 'vendor_records' && !@params['vendor_record_filter'].nil? && + !@params['vendor_record_filter'].empty? SoftwareRecord.where(vendor_record_id: @params['vendor_record_filter']).order("#{sort_priority} #{sort_direction_priority}") else SoftwareRecord.order("#{sort_priority} #{sort_direction_priority}") end - @vendor_records = VendorRecord.all + @vendor_records = VendorRecord.all @software_types = SoftwareType.all @softwarerecords_count = SoftwareRecord.count end diff --git a/db/migrate/20240521135737_add_roadmap_reference_to_software_records.rb b/db/migrate/20240521135737_add_roadmap_reference_to_software_records.rb index 982c0ea..dd89651 100644 --- a/db/migrate/20240521135737_add_roadmap_reference_to_software_records.rb +++ b/db/migrate/20240521135737_add_roadmap_reference_to_software_records.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class AddRoadmapReferenceToSoftwareRecords < ActiveRecord::Migration[6.1] def change add_column :software_records, :road_map, :text diff --git a/spec/controllers/software_records_controller_spec.rb b/spec/controllers/software_records_controller_spec.rb index 29771ee..6272a02 100644 --- a/spec/controllers/software_records_controller_spec.rb +++ b/spec/controllers/software_records_controller_spec.rb @@ -84,6 +84,7 @@ who: 'Test Admin', semester: 'Fall Quarter 2023', upgrade_docs: 'www.example.com', + road_map: 'Road Map', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', date_cert_expires: '2020-01-01', @@ -112,6 +113,39 @@ def sign_in_user(admin) sign_in admin end + describe 'GET #list_road_map' do + it 'assigns the requested software records to @software_records' do + get :list_road_map + expect(response).to be_successful + end + + it 'renders the list_road_map template' do + get :list_road_map + expect(response).to render_template(:list_road_map) + 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) + end + end + + describe 'PATCH/PUT #update_road_map' do + context 'with valid attributes' do + it 'updates the software record' do + software_record = SoftwareRecord.create! valid_attributes + patch :update_road_map, params: { id: software_record.id, software_record: { road_map: 'New Road Map' } } + software_record.reload + expect(software_record.road_map).to eq('New Road Map') + expect(response).to redirect_to(list_road_map_path) + end + end + end + describe 'GET #index' do it 'returns a success response' do SoftwareRecord.create! valid_attributes @@ -151,6 +185,7 @@ def sign_in_user(admin) expect(response.body).to have_content('true') expect(response.body).to have_content('10') expect(response.body).to have_content('Review') + expect(response.body).to have_content('Road Map') expect(response.body).to have_content('Fall Quarter 2023') expect(response.body).to have_content('server.example.com') expect(response.body).to have_content('dev.example.com') @@ -230,6 +265,7 @@ def sign_in_user(admin) upgrade_status: 'Review', who: 'Test Admin', semester: 'Fall Quarter 2023', + road_map: 'Road Map', upgrade_docs: 'www.example.com', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', @@ -262,6 +298,7 @@ def sign_in_user(admin) expect(software_record.priority).to have_content('10') expect(software_record.upgrade_status).to have_content('Review') expect(software_record.semester).to have_content('Fall Quarter 2023') + expect(software_record.road_map).to have_content('Road Map') expect(software_record.upgrade_docs).to have_content('www.example.com') expect(software_record.qa_support_servers).to have_content('server.example.com') expect(software_record.dev_support_servers).to have_content('dev.example.com') @@ -365,6 +402,7 @@ def sign_in_user(admin) upgrade_status: 'Review', who: 'Test Admin', semester: 'Fall Quarter 2023', + road_map: 'Road Map', upgrade_docs: 'www.example.com', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', @@ -432,6 +470,7 @@ def sign_in_user(viewer) expect(response.body).to have_content('10') expect(response.body).to have_content('Review') expect(response.body).to have_content('Fall Quarter 2023') + expect(software_record.road_map).to have_content('Road Map') expect(response.body).to have_content('server.example.com') expect(response.body).to have_content('dev.example.com') expect(response.body).to have_content('2020-01-01') @@ -510,6 +549,7 @@ def sign_in_user(viewer) upgrade_status: 'Review', who: 'Test Admin', semester: 'Fall Quarter 2023', + road_map: 'Road Map', upgrade_docs: 'www.example.com', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', @@ -542,6 +582,7 @@ def sign_in_user(viewer) expect(software_record.priority).to have_content('10') expect(software_record.upgrade_status).to have_content('Review') expect(software_record.semester).to have_content('Fall Quarter 2023') + expect(software_record.road_map).to have_content('Road Map') expect(software_record.upgrade_docs).to have_content('www.example.com') expect(software_record.qa_support_servers).to have_content('server.example.com') expect(software_record.dev_support_servers).to have_content('dev.example.com') @@ -644,6 +685,7 @@ def sign_in_user(viewer) upgrade_status: 'Review', who: 'Test Admin', semester: 'Fall Quarter 2023', + road_map: 'Road Map', upgrade_docs: 'www.example.com', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', @@ -673,6 +715,35 @@ def sign_in_user(manager) sign_in manager end + describe 'GET #list_road_map' do + it 'assigns the requested software records to @software_records' do + get :list_road_map + expect(response).to be_successful + expect(response).to render_template(:list_road_map) + 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) + end + end + + describe 'PATCH/PUT #update_road_map' do + context 'with valid attributes' do + it 'updates the software record' do + software_record = SoftwareRecord.create! valid_attributes + patch :update_road_map, params: { id: software_record.to_param, software_record: { road_map: 'New Road Map' } } + software_record.reload + expect(software_record.road_map).to eq('New Road Map') + expect(response).to redirect_to(list_road_map_path) + end + end + end + describe 'GET #index' do it 'returns a success response' do SoftwareRecord.create! valid_attributes @@ -711,6 +782,7 @@ def sign_in_user(manager) expect(response.body).to have_content('10') expect(response.body).to have_content('Review') expect(response.body).to have_content('Fall Quarter 2023') + expect(response.body).to have_content('Road Map') expect(response.body).to have_content('server.example.com') expect(response.body).to have_content('dev.example.com') expect(response.body).to have_content('2020-01-01') @@ -789,6 +861,7 @@ def sign_in_user(manager) upgrade_status: 'Review', who: 'Test Admin', semester: 'Fall Quarter 2023', + road_map: 'Road Map', upgrade_docs: 'www.example.com', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', @@ -823,6 +896,7 @@ def sign_in_user(manager) expect(software_record.priority).to have_content('10') expect(software_record.upgrade_status).to have_content('Review') expect(software_record.semester).to have_content('Fall Quarter 2023') + expect(software_record.road_map).to have_content('Road Map') expect(software_record.upgrade_docs).to have_content('www.example.com') expect(software_record.qa_support_servers).to have_content('server.example.com') expect(software_record.dev_support_servers).to have_content('dev.example.com') @@ -924,6 +998,7 @@ def sign_in_user(manager) end_of_life: true, priority: '10', upgrade_status: 'Review', + road_map: 'Road Map', who: 'Test Admin', semester: 'Fall Quarter 2023', upgrade_docs: 'www.example.com', @@ -955,6 +1030,34 @@ def sign_in_user(owner) sign_in owner end + describe 'GET #list_road_map' do + it 'assigns the requested software records to @software_records' do + get :list_road_map + expect(response).to be_successful + expect(response).to render_template(:list_road_map) + 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) + end + end + + # describe "PATCH/PUT #update_road_map" do + # context "with valid attributes" do + # it "updates the software record" do + # software_record = SoftwareRecord.create! valid_attributes + # patch :update_road_map, params: { id: software_record.to_param, software_record: { road_map: "New Road Map" } } + # software_record.reload + # expect(software_record.road_map).to eq("New Road Map") + # expect(response).to redirect_to(list_road_map_path) + # end + # end + describe 'GET #index' do it 'returns a success response' do SoftwareRecord.create! valid_attributes @@ -993,6 +1096,7 @@ def sign_in_user(owner) expect(response.body).to have_content('10') expect(response.body).to have_content('Review') expect(response.body).to have_content('Fall Quarter 2023') + expect(response.body).to have_content('Fall Quarter 2023') expect(response.body).to have_content('server.example.com') expect(response.body).to have_content('dev.example.com') expect(response.body).to have_content('2020-01-01') @@ -1071,6 +1175,7 @@ def sign_in_user(owner) upgrade_status: 'Review', who: 'Test Admin', semester: 'Fall Quarter 2023', + road_map: 'Road Map', upgrade_docs: 'www.example.com', qa_support_servers: 'server.example.com', dev_support_servers: 'dev.example.com', @@ -1105,6 +1210,7 @@ def sign_in_user(owner) expect(software_record.priority).to have_content('10') expect(software_record.upgrade_status).to have_content('Review') expect(software_record.semester).to have_content('Fall Quarter 2023') + expect(software_record.road_map).to have_content('Road Map') expect(software_record.upgrade_docs).to have_content('www.example.com') expect(software_record.qa_support_servers).to have_content('server.example.com') expect(software_record.dev_support_servers).to have_content('dev.example.com') diff --git a/spec/views/software_records/show.html.erb_spec.rb b/spec/views/software_records/show.html.erb_spec.rb index 2b22b76..8e2954e 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 Map', notes: "Line one\nLine two", themes: true, modules: true