From ac8d57131db50586301729eb5e7fba3616b4cac8 Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 09:46:45 +1100 Subject: [PATCH 1/9] updated WORD template with details for non-transitioned cases --- .../report_template_non_transition.docx | Bin 1842000 -> 1845278 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/documents/templates/report_template_non_transition.docx b/app/documents/templates/report_template_non_transition.docx index bcca6fe813930f57b0be3aef5d1422c1336e1b5e..d8f4cf14efaecd08fa878ad804c82398bd249a3c 100644 GIT binary patch delta 26105 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 JDj<~je*hDF3f=$! delta 22778 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 Wz<<5gZ;2Xw$OYWSlORF>ocKR* Date: Tue, 15 Dec 2020 09:47:39 +1100 Subject: [PATCH 2/9] removed small text under dropdown list, enabled selection of non-transition case --- app/views/case_court_reports/index.html.erb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/views/case_court_reports/index.html.erb b/app/views/case_court_reports/index.html.erb index 513cd82ac0..f889f66b11 100644 --- a/app/views/case_court_reports/index.html.erb +++ b/app/views/case_court_reports/index.html.erb @@ -15,18 +15,12 @@ <%= label_tag :case_number, "Case Number:" %> <% select_options = @assigned_cases.map { |casa_case| casa_case.decorate.court_report_select_option } %> <%= select_tag :case_number, - options_for_select( - select_options, - {disabled: @non_transition_aged_youth_cases} - ), + options_for_select(select_options), prompt: "Select a case to generate report", include_blank: false, id: "case-selection", class: "custom-select" %> -

- * Reporting for non transition aged youth cases is coming soon! -

<%= button_tag "Generate Report", type: :submit, From 3f4f7eb305f4a12494aca6732660fdcf930ad620 Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 09:48:58 +1100 Subject: [PATCH 3/9] removed the unused variable @non-transition-cases #index action as the feature is now implemented --- app/controllers/case_court_reports_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/case_court_reports_controller.rb b/app/controllers/case_court_reports_controller.rb index 89fb6f8c2c..0d05e8ff73 100644 --- a/app/controllers/case_court_reports_controller.rb +++ b/app/controllers/case_court_reports_controller.rb @@ -8,7 +8,6 @@ class CaseCourtReportsController < ApplicationController def index @assigned_cases = CasaCase.actively_assigned_to(current_user) .select(:id, :case_number, :transition_aged_youth) - @non_transition_aged_youth_cases = @assigned_cases&.reject(&:transition_aged_youth)&.map(&:case_number) end # GET /case_court_reports/:id @@ -75,12 +74,15 @@ def path_to_template(type) "app/documents/templates/report_template_#{type}.docx" end + # Use Tempfile Utility Class to generate a temporary file from the Word template into memory def send_report(data) Tempfile.create do |t| t.binmode t.write(data) t.rewind t.close + + # `rb` = read-binary mode send_data File.open(t.path, "rb").read, type: :docx, disposition: "attachment", status: :ok end end From 474536b1941b79bc85b59920e2c3f1be9fc4ba8a Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 09:49:48 +1100 Subject: [PATCH 4/9] added clean up persistent test_report.docx file generated during testing --- spec/models/case_court_report_spec.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/models/case_court_report_spec.rb b/spec/models/case_court_report_spec.rb index 169321cbb1..0c05253836 100644 --- a/spec/models/case_court_report_spec.rb +++ b/spec/models/case_court_report_spec.rb @@ -55,6 +55,9 @@ report.generate! expect(File.exist?(path_to_report)).to eq true + + # clean up after testing + File.delete(path_to_report) if File.exist?(path_to_report) end end end From eb2e3a832632217c38fbd1cb27e1fa26005c30fd Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 09:51:13 +1100 Subject: [PATCH 5/9] renamed some context headings to make sense of tests, consolidated tests for option labels within case number drowndown list --- spec/system/case_court_reports/index_spec.rb | 55 +++++++++++++------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/spec/system/case_court_reports/index_spec.rb b/spec/system/case_court_reports/index_spec.rb index 751b1c5be1..4337bfc6d2 100644 --- a/spec/system/case_court_reports/index_spec.rb +++ b/spec/system/case_court_reports/index_spec.rb @@ -16,20 +16,20 @@ expect(page).to have_selector "#btnGenerateReport", **options end - it "does not see 'Download Court Report' button, which is hidden", js: true do + it "does not see 'Download Court Report' button, which is hidden" do options = {text: "Download Court Report", visible: :hidden} expect(page).to have_selector "#btnDownloadReport", **options end - it "shows a select element with default selection 'Select a case to generate report'", js: true do + it "shows a select element with default selection 'Select a case to generate report'" do expected_text = "Select a case to generate report" expect(page).to have_selector "#case-selection option[value]", text: expected_text expect(page).to have_select "case-selection", selected: expected_text end - it "shows 3 options: 2 assigned case + 1 prompt text" do + it "shows n+1 options in total, e.g 3 options <- 2 assigned cases + 1 prompt text" do expected_number_of_options = casa_cases.size + 1 expect(page).to have_selector "#case-selection option", count: expected_number_of_options @@ -61,11 +61,11 @@ end context "'Generate Report' button" do - it "does not become disabled", js: true do + it "does not become disabled" do expect(page).not_to have_selector "#btnGenerateReport[disabled]" end - it "does not have label changed to 'Court report generating. Do not refresh or leave this page'", js: true do + it "does not have label changed to 'Court report generating. Do not refresh or leave this page'" do options = {text: "Court report generating. Do not refresh or leave this page"} expect(page).not_to have_selector "#btnGenerateReport[disabled]", **options @@ -73,13 +73,13 @@ end context "'Download Court Report' button" do - it "does not become visible", js: true do + it "does not become visible" do options = {text: "Download Court Report", visible: :hidden} expect(page).to have_selector "#btnDownloadReport", **options end - it "does not change href value from '#'", js: true do + it "does not change href value from '#'" do options = {id: "btnDownloadReport", visible: :hidden, href: "#"} expect(page).to have_link "Download Court Report", **options @@ -87,27 +87,46 @@ end end - context "when selecting transition case, volunteer can generate and download a report" do + context "'Case Number' dropdown list" do + let(:transitioned_case_number) { casa_cases.find(&:has_transitioned?).case_number.to_s } + let(:transitioned_option_text) { "#{transitioned_case_number} - transition" } + let(:non_transitioned_case_number) { casa_cases.reject(&:has_transitioned?).first.case_number.to_s } + let(:non_transitioned_option_text) { "#{non_transitioned_case_number} - non-transition" } + + it "has transition case option selected" do + page.select transitioned_option_text, from: "case-selection" + + click_button "Generate Report" + + expect(page).to have_select "case-selection", selected: transitioned_option_text + end + + it "has non-transitioned case option selected" do + page.select non_transitioned_option_text, from: "case-selection" + + click_button "Generate Report" + + expect(page).to have_select "case-selection", selected: non_transitioned_option_text + end + end + + context "when selecting a case, volunteer can generate and download a report" do let(:case_number) { casa_cases.find(&:has_transitioned?).case_number.to_s } - let(:transition_option_text) { "#{case_number} - transition" } + let(:option_text) { "#{case_number} - transition" } before do # to find the select element, use either 'name' or 'id' attribute # in this case, id = "case-selection", name = "case_number" - page.select transition_option_text, from: "case-selection" + page.select option_text, from: "case-selection" click_button "Generate Report" end - it "has transition case option selected", js: true do - expect(page).to have_select "case-selection", selected: transition_option_text - end - context "'Generate Report' button" do - it "becomes disabled", js: true do + it "becomes disabled" do expect(page).to have_selector "#btnGenerateReport[disabled]" end - it "has label changed to 'Court report generating. Do not refresh or leave this page'", js: true do + it "has label changed to 'Court report generating. Do not refresh or leave this page'" do options = {text: "Court report generating. Do not refresh or leave this page"} expect(page).to have_selector "#btnGenerateReport[disabled]", **options @@ -115,13 +134,13 @@ end context "'Download Court Report' button" do - it "becomes visible", js: true do + it "becomes visible" do options = {text: "Download Court Report", visible: :visible} expect(page).to have_selector "#btnDownloadReport", **options end - it "changes href value from '#' to a link with .docx format", js: true do + it "changes href value from '#' to a link with .docx format" do download_link = "/case_court_reports/#{case_number}.docx" options = {id: "btnDownloadReport", visible: :visible, href: download_link} From 98402fa34c4e5913e64d84a2e81996d1e0942c45 Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 12:14:08 +1100 Subject: [PATCH 6/9] fixed tests on 'Download Court Report' button, the driver now perceives the btn as visible and carrying '.d-none' --- spec/system/case_court_reports/index_spec.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spec/system/case_court_reports/index_spec.rb b/spec/system/case_court_reports/index_spec.rb index 4337bfc6d2..67f01d6fec 100644 --- a/spec/system/case_court_reports/index_spec.rb +++ b/spec/system/case_court_reports/index_spec.rb @@ -11,21 +11,22 @@ context "when first arriving to 'Generate Court Report' page, by default" do it "sees 'Generate Report' button" do - options = {text: "Generate Report"} + options = {text: "Generate Report", visible: true} expect(page).to have_selector "#btnGenerateReport", **options end - it "does not see 'Download Court Report' button, which is hidden" do - options = {text: "Download Court Report", visible: :hidden} + it "has 'Download Court Report' button with Bootstrap class '.d-none'" do + options = {text: "Download Court Report", class: ['d-none']} expect(page).to have_selector "#btnDownloadReport", **options end it "shows a select element with default selection 'Select a case to generate report'" do expected_text = "Select a case to generate report" + find("#case-selection").click.first('option', text: expected_text).select_option - expect(page).to have_selector "#case-selection option[value]", text: expected_text + expect(page).to have_selector "#case-selection option:first-of-type", text: expected_text expect(page).to have_select "case-selection", selected: expected_text end From 0a7a39cd089d2af3c6a67cb3c074e911587b59b6 Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 13:45:23 +1100 Subject: [PATCH 7/9] added options to form_with so that it explicitly generates with no default action and handle ajax call --- app/views/case_court_reports/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/case_court_reports/index.html.erb b/app/views/case_court_reports/index.html.erb index f889f66b11..32f855b9d2 100644 --- a/app/views/case_court_reports/index.html.erb +++ b/app/views/case_court_reports/index.html.erb @@ -10,7 +10,7 @@
- <%= form_with do |form| %> + <%= form_with url: "#", local: false do |form| %>
<%= label_tag :case_number, "Case Number:" %> <% select_options = @assigned_cases.map { |casa_case| casa_case.decorate.court_report_select_option } %> From 1ed3cb11384ae5598fb951658523b732cb8a2f20 Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 13:46:52 +1100 Subject: [PATCH 8/9] added 'js: true' to tests so that the custom JavaScript will be triggered, instead of default form behavior --- spec/system/case_court_reports/index_spec.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spec/system/case_court_reports/index_spec.rb b/spec/system/case_court_reports/index_spec.rb index 67f01d6fec..1f0caf40c8 100644 --- a/spec/system/case_court_reports/index_spec.rb +++ b/spec/system/case_court_reports/index_spec.rb @@ -49,7 +49,7 @@ end end - context "when choosing the prompt option (value is empty) and click on 'Generate Report' button, nothing should happen" do + context "when choosing the prompt option (value is empty) and click on 'Generate Report' button, nothing should happen", js: true do let(:option_text) { "Select a case to generate report" } before do @@ -61,7 +61,7 @@ click_button "Generate Report" end - context "'Generate Report' button" do + describe "'Generate Report' button" do it "does not become disabled" do expect(page).not_to have_selector "#btnGenerateReport[disabled]" end @@ -73,7 +73,7 @@ end end - context "'Download Court Report' button" do + describe "'Download Court Report' button" do it "does not become visible" do options = {text: "Download Court Report", visible: :hidden} @@ -88,7 +88,7 @@ end end - context "'Case Number' dropdown list" do + describe "'Case Number' dropdown list", js: true do let(:transitioned_case_number) { casa_cases.find(&:has_transitioned?).case_number.to_s } let(:transitioned_option_text) { "#{transitioned_case_number} - transition" } let(:non_transitioned_case_number) { casa_cases.reject(&:has_transitioned?).first.case_number.to_s } @@ -111,7 +111,7 @@ end end - context "when selecting a case, volunteer can generate and download a report" do + context "when selecting a case, volunteer can generate and download a report", js: true do let(:case_number) { casa_cases.find(&:has_transitioned?).case_number.to_s } let(:option_text) { "#{case_number} - transition" } @@ -122,7 +122,7 @@ click_button "Generate Report" end - context "'Generate Report' button" do + describe "'Generate Report' button" do it "becomes disabled" do expect(page).to have_selector "#btnGenerateReport[disabled]" end @@ -134,7 +134,7 @@ end end - context "'Download Court Report' button" do + describe "'Download Court Report' button" do it "becomes visible" do options = {text: "Download Court Report", visible: :visible} From 5b4110522921b23a11dc5a6973ea58d554fa74ab Mon Sep 17 00:00:00 2001 From: Erik Tran Date: Tue, 15 Dec 2020 14:49:47 +1100 Subject: [PATCH 9/9] using double-quoted instead of single-quoted strings, according to standardrb --- spec/system/case_court_reports/index_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/system/case_court_reports/index_spec.rb b/spec/system/case_court_reports/index_spec.rb index 1f0caf40c8..b5ba44f6af 100644 --- a/spec/system/case_court_reports/index_spec.rb +++ b/spec/system/case_court_reports/index_spec.rb @@ -17,14 +17,14 @@ end it "has 'Download Court Report' button with Bootstrap class '.d-none'" do - options = {text: "Download Court Report", class: ['d-none']} + options = {text: "Download Court Report", class: ["d-none"]} expect(page).to have_selector "#btnDownloadReport", **options end it "shows a select element with default selection 'Select a case to generate report'" do expected_text = "Select a case to generate report" - find("#case-selection").click.first('option', text: expected_text).select_option + find("#case-selection").click.first("option", text: expected_text).select_option expect(page).to have_selector "#case-selection option:first-of-type", text: expected_text expect(page).to have_select "case-selection", selected: expected_text