Flaky tests - rubyforgood/casa GitHub Wiki

Table of Contents generated with DocToc

A few things to note:

If there isn't a linked issue under a flake record, it does not exist and no one is working on it.
We've only started timestamping them after June 27 2023.
[Docker] means it has only been obeserved to fail in a docker environment. [Rspec] means it fails in and outside of docker.
x# at the end of a test title is the number of times it has been seen in github actions. If there is not a number it has only been seen to fail once and may not actually be a flaky test.

[Rspec] Failure Outside of Tests x39

Last Seen: March 12, 2024

/usr/local/bundle/gems/webmock-3.18.1/lib/webmock/http_lib_adapters/net_http.rb:104:in `request': Real HTTP connections are disabled. Unregistered request: DELETE http://selenium_chrome:4444/wd/hub/session/d034d4be8297ff065c9d5d97e786247e with headers {'Accept'=>'application/json', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Content-Type'=>'application/json; charset=UTF-8', 'User-Agent'=>'selenium/4.10.0 (ruby linux)'} (WebMock::NetConnectNotAllowedError)

You can stub this request with the following snippet:

stub_request(:delete, "http://selenium_chrome:4444/wd/hub/session/d034d4be8297ff065c9d5d97e786247e").
  with(
    headers: {
	  'Accept'=>'application/json',
	  'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
	  'Content-Type'=>'application/json; charset=UTF-8',
	  'User-Agent'=>'selenium/4.10.0 (ruby linux)'
    }).
  to_return(status: 200, body: "", headers: {})

============================================================
	from /usr/local/bundle/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/remote/http/default.rb:119:in `response_for'

Rspec user.case_contacts_for does not raise an error x11

Last Seen: November 28, 2023

  1) User#case_contacts_for does not return case_contacts neither unassigned cases or inactive cases
     Failure/Error:
       expect {
         volunteer.case_contacts_for(inactive_case_assignment.casa_case.id)
       }.to raise_error(ActiveRecord::RecordNotFound)

       expected ActiveRecord::RecordNotFound but nothing was raised
     # ./spec/models/user_spec.rb:85:in `block (3 levels) in <top (required)>'

[Rspec] Expected to find text "X" in "Y" x10

Last Seen: December 10, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5125

   1) all_casa_admin/dashboard/show when authenticated user organization table displays the correct number of case contacts
     Failure/Error: expect(org2_row.find("td:nth(4)")).to have_content("6")
       expected to find text "6" in "0"
     # ./spec/system/all_casa_admins/dashboard/show_spec.rb:64:in `block (4 levels) in <top (required)>'


  1) all_casa_admin/dashboard/show when authenticated user organization table displays the correct number of users
     Failure/Error: expect(org2_row.find("td:nth(3)")).to have_content("2")
       expected to find text "2" in "6"
     # ./spec/system/all_casa_admins/dashboard/show_spec.rb:60:in `block (4 levels) in <top (required)>'

[Rspec] Add Language to User Does Not Respect Organization Boundaries x4

Last Seen: September 9, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5133
Possibly Fixed by: https://github.com/rubyforgood/casa/pull/5238

   1) UserPolicy add_language? when user is an admin does not allow an admin to add a language to a volunteer in a different organization
     Failure/Error: is_expected.not_to permit(casa_admin, volunteer_b)
       Expected UserPolicy not to grant add_language? on #<Volunteer:0x00007fb930f511a8> but add_language? was granted
     # ./spec/policies/user_policy_spec.rb:79:in `block (4 levels) in <top (required)>'

[Rspec] Followup Exports Name Order x5

Last Seen: October 26, 2023


  1) FollowupExportCsvService#perform Exports case contact followup data
     Failure/Error: expect(results[1]).to eq %(#{case_contact.casa_case.case_number},Alice and Bob,Craig,"#{followup.note}")

       expected: "CINA-1491,Alice and Bob,Craig,\"hello, this is the thing, \""
            got: "CINA-1491,Bob and Alice,Craig,\"hello, this is the thing, \""

       (compared using ==)
     # ./spec/services/followup_export_csv_service_spec.rb:23:in `block (3 levels) in <top (required)>'

[Rspec] Casa Cases Controller incorrect error status code x3

Last Seen: July 30, 2023

   1) CasaCasesController when logged in as an admin user #deactivate when request formate is json should return 404 error when provided invalid case_id
     Failure/Error: expect(response.status).to eq 404

       expected: 404
            got: 200

       (compared using ==)
     # ./spec/controllers/casa_cases_controller_spec.rb:28:in `block (5 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Rspec] Missing Resolve Reminder Button for Followups x4

Last Seen: September 18, 2023

1) followups/create Creating a followup when confirming the Swal alert creates a followup without a note when the note textarea is empty
     Failure/Error: expect(page).to have_button("Resolve Reminder")
       expected to find button "Resolve Reminder" that is not disabled but there were no matches

     # ./spec/system/case_contacts/followups/create_spec.rb:37:in `block (4 levels) in <top (required)>'

[Docker] update supervisor email too permissive

  1) SupervisorPolicy update_supervisor_email? when user is not an admin or the record does not permit the other supervisor user to update volunteer email
     Failure/Error: is_expected.to_not permit(supervisor, second_supervisor)
       Expected SupervisorPolicy not to grant update_supervisor_email? on #<Supervisor:0x00007f4461f74700> but update_supervisor_email? was granted
     # ./spec/policies/supervisor_policy_spec.rb:28:in `block (4 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Rspec] update supervisor too permissive x3

Last Seen: September 25, 2023

  1) SupervisorPolicy update? does not allow supervisors to update other supervisors
     Failure/Error: is_expected.not_to permit(supervisor, another_supervisor)
       Expected SupervisorPolicy not to grant update? on #<Supervisor:0x00007fd020836470> but update? was granted
     # ./spec/policies/supervisor_policy_spec.rb:58:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Rspec] Extra Old Email in Volunteer Email Export x14

Linked Issue: https://github.com/rubyforgood/casa/issues/4895

  1) VolunteersEmailsExportCsvService#call Exports correct data from volunteers
     Failure/Error: expect(results[1]).to eq("#{active_volunteer.email},No Old Emails,\"#{active_volunteer_cases.keys.join(", ")}\",#{active_volunteer.display_name},\"#{active_volunteer_cases.values.join(", ")}\"")

       expected: "[email protected],No Old Emails,\"CINA-1187, CINA-1188\",User 1480,\"true, true\""
            got: "[email protected],[email protected],\"\",User 1483,\"\""

       (compared using ==)
     # ./spec/services/volunteers_emails_export_csv_service_spec.rb:20:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[RSpec] Case Contact Filter Mismatch x5

Linked Issue: https://github.com/rubyforgood/casa/issues/5424
Last Seen: December 5, 2023


  1) CaseContactReport filter behavior casa case number filter when providing casa case ids returns all case contacts with the casa case ids
     Failure/Error: expect(report.case_contacts).to eq(case_contacts)

       expected: [#<CaseContact id: 234, creator_id: 677, casa_case_id: 265, duration_minutes: 60, occurred_at: "2023-...: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>]
            got: #<ActiveRecord::Relation [#<CaseContact id: 236, creator_id: 679, casa_case_id: 265, duration_minutes... 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>]>

       (compared using ==)

       Diff:
       @@ -1,4 +1,46 @@
       -[#<CaseContact id: 234, creator_id: 677, casa_case_id: 265, duration_minutes: 60, occurred_at: "2023-06-21 20:58:59.822510191 +0000", created_at: "2023-06-21 20:58:59.824615000 +0000", updated_at: "2023-06-21 20:58:59.824615000 +0000", contact_made: false, medium_type: "in-person", miles_driven: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>,
       - #<CaseContact id: 235, creator_id: 678, casa_case_id: 265, duration_minutes: 60, occurred_at: "2023-06-21 20:58:59.839691776 +0000", created_at: "2023-06-21 20:58:59.841769000 +0000", updated_at: "2023-06-21 20:58:59.841769000 +0000", contact_made: false, medium_type: "in-person", miles_driven: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>,
       - #<CaseContact id: 236, creator_id: 679, casa_case_id: 265, duration_minutes: 60, occurred_at: "2023-06-21 20:58:59.857011764 +0000", created_at: "2023-06-21 20:58:59.859142000 +0000", updated_at: "2023-06-21 20:58:59.859142000 +0000", contact_made: false, medium_type: "in-person", miles_driven: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>]
       +[#<CaseContact:0x00007f47cc01e9e0
       +  id: 236,
       +  creator_id: 679,
       +  casa_case_id: 265,
       +  duration_minutes: 60,
       +  occurred_at: Wed, 21 Jun 2023 20:58:59.857011000 UTC +00:00,
       +  created_at: Wed, 21 Jun 2023 20:58:59.859142000 UTC +00:00,
       +  updated_at: Wed, 21 Jun 2023 20:58:59.859142000 UTC +00:00,
       +  contact_made: false,
       +  medium_type: "in-person",
       +  miles_driven: 0,
       +  want_driving_reimbursement: false,
       +  notes: nil,
       +  deleted_at: nil,
       +  reimbursement_complete: false>,
       + #<CaseContact:0x00007f47cc01e8a0
       +  id: 234,
       +  creator_id: 677,
       +  casa_case_id: 265,
       +  duration_minutes: 60,
       +  occurred_at: Wed, 21 Jun 2023 20:58:59.822510000 UTC +00:00,
       +  created_at: Wed, 21 Jun 2023 20:58:59.824615000 UTC +00:00,
       +  updated_at: Wed, 21 Jun 2023 20:58:59.824615000 UTC +00:00,
       +  contact_made: false,
       +  medium_type: "in-person",
       +  miles_driven: 0,
       +  want_driving_reimbursement: false,
       +  notes: nil,
       +  deleted_at: nil,
       +  reimbursement_complete: false>,
       + #<CaseContact:0x00007f47cc01e760
       +  id: 235,
       +  creator_id: 678,
       +  casa_case_id: 265,
       +  duration_minutes: 60,
       +  occurred_at: Wed, 21 Jun 2023 20:58:59.839691000 UTC +00:00,
       +  created_at: Wed, 21 Jun 2023 20:58:59.841769000 UTC +00:00,
       +  updated_at: Wed, 21 Jun 2023 20:58:59.841769000 UTC +00:00,
       +  contact_made: false,
       +  medium_type: "in-person",
       +  miles_driven: 0,
       +  want_driving_reimbursement: false,
       +  notes: nil,
       +  deleted_at: nil,
       +  reimbursement_complete: false>]
     # ./spec/models/case_contact_report_spec.rb:318:in `block (5 levels) in <top (required)>'

[Rspec] Volunteer Mailer Sends Extra Email x2

Last Seen: December 19, 2023

1) Volunteer.email_court_report_reminder sends one mailer
     Failure/Error: VolunteerMailer.court_report_reminder(volunteer, report_due_date)

       (VolunteerMailer (class)).court_report_reminder(#<Volunteer id: 1245, email: "[email protected]", created_at: "2023-10-07 21:42:58.74091[90](https://github.com/rubyforgood/casa/actions/runs/6443613040/job/17495744723#step:7:91)00 +000...ons: true, old_emails: [], receive_reimbursement_email: false, monthly_learning_hours_report: false>, 2023-10-14 00:00:00.000000000 +0000)
           expected: 0 times with arguments: (#<Volunteer id: 1245, email: "[email protected]", created_at: "2023-10-07 21:42:58.714538000 +000...ons: true, old_emails: [], receive_reimbursement_email: false, monthly_learning_hours_report: false>, anything)
           received: 1 time with arguments: (#<Volunteer id: 1245, email: "[email protected]", created_at: "2023-10-07 21:42:58.740[91](https://github.com/rubyforgood/casa/actions/runs/6443613040/job/17495744723#step:7:92)9000 +000...ons: true, old_emails: [], receive_reimbursement_email: false, monthly_learning_hours_report: false>, 2023-10-14 00:00:00.000000000 +0000)
     # ./app/models/volunteer.rb:66:in `block (2 levels) in send_court_report_reminder'
     # ./app/models/volunteer.rb:62:in `block in send_court_report_reminder'
     # ./app/models/volunteer.rb:61:in `send_court_report_reminder'
     # ./spec/models/volunteer_spec.rb:43:in `block (3 levels) in <top (required)>'

[Rspec] Failed to Locate Element on New Case Contact Page x4

Last Seen: August 15, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5128

   1) case_contacts/new when admin with HTML in notes renders HTML correctly on the index page
     Failure/Error: expect(hello_line.first.include?(note_content)).to be true

     NoMethodError:
       undefined method `include?' for nil:NilClass

     # ./spec/system/case_contacts/new_spec.rb:197:in `block (4 levels) in <top (required)>'

[Rspec] Failed to Find Case Number on New Casa Case Page as an Admin x5

Last Seen: July 28, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5045

   1) casa_cases/new when signed in as a Casa Org Admin when all fields are filled is successful
     Failure/Error: expect(page.body).to have_content(case_number)
       expected to find text "12345" in "\n  CASA Volunteer Tracking\n\n  \n  \n\n  \n  \n\n  \n  \n  \n  \n\n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n  \n\n\n  \n  \n  \n\n\n\n"

     # ./spec/system/casa_cases/new_spec.rb:41:in `block (5 levels) in <top (required)>'
     # ./spec/system/casa_cases/new_spec.rb:24:in `block (4 levels) in <top (required)>'

[Rspec] Failed To Find Contact Types on Page x4

Last Seen: August 30, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5176 Possibly fixed by: https://github.com/rubyforgood/casa/pull/5179

  1) /case_contacts GET /new shows all contact types alphabetically
     Failure/Error: expect(page).to match(/#{expected_contact_types.join(".*")}/m)

       expected "<!DOCTYPE html>\n<html>\n<head>\n  <title>CASA Volunteer Tracking</title>\n\n  <meta name=\"descript...block (3 levels) in <top (required)>'\\n\\n\");\n  }\n}\n\n/*]]>*/</script>\n\n\n</body>\n</html>\n" to match /Type 11.*Type 12.*Type 9.*Type 10/m
       Diff:
       @@ -1,571 +1,1141 @@
       -/Type 11.*Type 12.*Type 9.*Type 10/m
       +<!DOCTYPE html>
       +<html>
       +<head>
       +  <title>CASA Volunteer Tracking</title>
       +
       +  <meta name="description" content="Volunteer activity tracking for CASA volunteers, supervisors, and administrators.">
       +  <meta name="viewport" content="width=device-width,initial-scale=1">
       +
       +  
       +  
       +
       +  <meta property="og:title" content="CASA Volunteer Tracking">
       +  <meta property="og:description" content="Volunteer activity tracking for CASA volunteers, supervisors, and administrators.">
       +  <meta property="og:url" content="http://www.example.com/">
       +  <meta property="og:image" content="http://www.example.com/assets/login-fa5a101a63c8827f12a91ebbac10f6577d91b6d3dc84de579acf2eff477bfc7d.jpg">
       +
       +  <link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-57x57-99eab95725d4b5cb923317a8dc1f4e6bdc959cecdf3b5a5d25d2fd5fa7d7e264.png" sizes="57x57" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-60x60-837d7a074aec0c8bf24d67262494e17ea86911cbf1a94628ff42646c9da9d7d6.png" sizes="60x60" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-72x72-fb24a90476081de29a65aee438467b6e4385ec8e51ef1ce0ba053491981324ce.png" sizes="72x72" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-76x76-8cbc7596302ca9152ca84106577522ec114661ae82b88d04e9df534501726746.png" sizes="76x76" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-114x114-09b7deba68c41bfc4c45845da64817bd195f7949e53ee94c4e9c738f6d31a948.png" sizes="114x114" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-120x120-cf7b6593721f679b589e2c371160e56d445b9d52e012fa26fcba0b13611e8447.png" sizes="120x120" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-144x144-ba1cd68311398a1ca9edc47400b9beae97a50d7e3e00c12dc341a70ebfbb6923.png" sizes="144x144" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-152x152-b2cd52aa45ee76e428c87e27b7a1c5f00fcb657988ce2276f7da3c9fce21de87.png" sizes="152x152" />
       +<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-icon-180x180-bd7c7b2b3cb9ee8330436768709c326a95170ef72be30b4b5ec4e025f07087a3.png" sizes="180x180" />
       +<link rel="icon" type="image/png" href="/assets/android-icon-192x192-e9f0a988ce4e63ec0a81034e884e711f8136b9a7d99225913a2f622a57d14bb7.png" sizes="192x192" />
       +<link rel="icon" type="image/png" href="/assets/favicon-32x32-9a91f30ee37faa81c9e092612a0f101dee43c56fe4cd7b3c8195c494ae307210.png" sizes="32x32" />
       +<link rel="icon" type="image/png" href="/assets/favicon-96x96-b34be23cf8ee8417b73f45ff161da2598a2446628fa76805e92937a18b9cd9c1.png" sizes="96x96" />
       +<link rel="icon" type="image/png" href="/assets/favicon-16x16-8520149c92cb0e0b0637e56c359201033e0717d9675c41c3d4c08a86fbcee6b7.png" sizes="16x16" />
       +<meta name="msapplication-TileColor" content="#ffffff">
       +<meta name="msapplication-TileImage" content="/assets/ms-icon-144x144-ba1cd68311398a1ca9edc47400b9beae97a50d7e3e00c12dc341a70ebfbb6923.png">
       +<meta name="theme-color" content="#ffffff">
       +
       +
       +  <script src="/assets/application-69881d214a47df1d10792f1244fbee9c648e04d36d6db7d689c4dc9853ddfbf7.js" data-turbo-track="reload" defer="defer"></script>
       +  <link rel="stylesheet" href="/assets/application-b5403fa90af8faf36315f613e19bb932e1ef142a68680bf04146d4f6d8a0c9db.css" data-turbo-track="reload" />
       +
       +
       +  <link rel="stylesheet" href="/assets/css/lineicons.css">
       +  <link rel="stylesheet" href="/assets/css/materialdesignicons.min.css">
       +  <link rel="stylesheet" href="/assets/css/main.css">
       +
       +</head>
       +<body class="case_contacts case_contacts-new">
       +<noscript>
       +  <div class="noscript alert alert-danger">
       +    <h2 class="alert-heading">
       +      Please enable javascript
       +    </h2>
       +    <p>
       +      This app requires javascript to work
       +    </p>
       +  </div>
       +</noscript>
       +  <aside class="sidebar-nav-wrapper">
       +  <div class="navbar-logo">
       +      <a href="/"><img id="casa-logo" alt="CASA Logo" class="d-inline-block align-text-bottom" src="/assets/default-logo-e2217b688dd5a243fdf339af54a505fa35df7cf476ecebc7573a6d073b60f1ec.png" /></a>
       +  </div>
       +  <nav class="sidebar-nav">
       +    <nav class="sidebar-nav">
       +      <ul>
       +        <li class=" nav-item">
       +          <a href="/notifications">
       +            <i class="lni lni-envelope mr-10"></i>
       +            Inbox
       +</a>        </li>
       +          <li class=" nav-item">
       +            <a href="/supervisors">
       +              <i class="lni lni-network mr-10"></i>
       +              Supervisors
       +</a>          </li>
       +          <li class=" nav-item">
       +            <a href="/volunteers">
       +              <i class="lni lni-heart-filled mr-10"></i>
       +              Volunteers
       +</a>          </li>
       +          <li class=" nav-item">
       +            <a href="/other_duties">
       +              <i class="lni lni-agenda mr-10"></i>
       +              Other Duties
       +</a>          </li>
       +        <li class=" nav-item">
       +          <a href="/casa_cases">
       +            <i class="lni lni-folder mr-10"></i>
       +            Cases
       +</a>        </li>
       +          <li class=" nav-item">
       +            <a href="/casa_admins">
       +              <i class="lni lni-star-filled mr-10"></i>
       +              Admins
       +</a>          </li>
       +        <li class="nav-item nav-item-has-children">
       +          <a
       +            href="#0"
       +            class=""
       +            data-bs-toggle="collapse"
       +            data-bs-target="#ddmenu_55"
       +            aria-controls="ddmenu_55"
       +            aria-expanded="true"
       +            aria-label="Toggle navigation">
       +              <span class="icon">
       +                <i class="lni lni-list mr-10"></i>
       +              </span>
       +            <span class="text">Group Actions</span>
       +          </a>
       +          <ul id="ddmenu_55" class="collapse dropdown-nav">
       +              <li>
       +                <a class="" href="/case_court_reports">
       +                  <i class="lni lni-paperclip mr-10"></i>
       +                  Generate Court Reports
       +</a>              </li>
       +
       +              <li>
       +                <a class="" href="/reimbursements">
       +                  <i class="lni lni-money-location mr-10"></i>
       +                  Reimbursement Queue
       +</a>              </li>
       +
       +              <li>
       +                <a class="" href="/reports">
       +                  <i class="lni lni-folder mr-10"></i>
       +                  Export Data
       +</a>              </li>
       +
       +              <li>
       +                <a class="" href="/imports">
       +                  <i class="lni lni-archive mr-10"></i>
       +                  System Imports
       +</a>              </li>
       +
       +              <li>
       +                <a class="" href="/mileage_rates">
       +                  <i class="lni lni-car mr-10"></i>
       +                  Mileage Rates
       +</a>              </li>
       +
       +              <li>
       +                <a class="" href="/casa_org/10/edit">
       +                  <i class="lni lni-cogs mr-10"></i>
       +                  Edit Organization
       +</a>              </li>
       +          </ul>
       +        </li>
       +        <li>
       +
       +        </li>
       +      </ul>
       +    </nav>
       +  </nav>
       +</aside>
       +<div class="overlay"></div>
       +
       +<main class="main-wrapper">
       +
       +<header class="header">
       +  <div class="container-fluid">
       +    <div class="row">
       +      <div class="col-lg-5 col-md-5 col-6">
       +        <div class="header-left d-flex align-items-center">
       +          <div class="menu-toggle-btn mr-20">
       +            <button
       +              id="menu-toggle"
       +              class="main-btn secondary-btn btn-hover">
       +              <i class="lni lni-chevron-left me-2"></i> Menu
       +            </button>
       +          </div>
       +        </div>
       +      </div>
       +
       +      <div class="col-lg-7 col-md-7 col-6">
       +        <div class="header-right">
       +          <!-- notification start -->
       +          <!-- message start -->
       +
       +          <div class="header-message-box ml-15 d-none d-md-flex">
       +            <a href="/notifications">
       +
       +              <button
       +                class="dropdown-toggle"
       +                type="button"
       +                id="message"
       +                aria-expanded="false">
       +
       +                <i class="lni lni-envelope"></i>
       +              </button>
       +</a>
       +          </div>
       +
       +          <div class="profile-box ml-15">
       +            <button
       +              class="dropdown-toggle bg-transparent border-0"
       +              type="button"
       +              id="profile"
       +              data-bs-toggle="dropdown"
       +              aria-expanded="false">
       +              <div class="profile-info">
       +                <div class="info">
       +                  <h6>User 5
       +                  </h6>
       +                  <div class="image">
       +                    <img
       +                      src="/assets/images/profile/profile-image-2.png">
       +                  </div>
       +                </div>
       +              </div>
       +              <i class="lni lni-chevron-down"></i>
       +            </button>
       +            <ul
       +              class="dropdown-menu dropdown-menu-end"
       +              aria-labelledby="profile">
       +              <li>
       +                <a href="#0">
       +                  <strong>Role: Casa Admin</strong>
       +                </a>
       +              </li>
       +              <li>
       +                <a href="#0">
       +                  <strong> [email protected]</strong>
       +                </a>
       +              </li>
       +              <li>
       +                <a href="/users/edit">
       +                  <i class="lni lni-pencil"></i>
       +                  Edit Profile
       +</a>              </li>
       +              <li>
       +                <a href="/notifications">
       +                  <i class="lni lni-envelope"></i>
       +                  Messages
       +</a>              </li>
       +                <li>
       +                  <a href="/casa_org/10/edit">
       +                    <i class="lni lni-cogs mr-10"></i>
       +                    Edit Organization
       +</a>                </li>
       +              <li>
       +                <a href="/users/sign_out">
       +                  <i class="lni lni-exit"></i>
       +                  Sign Out
       +</a>              </li>
       +            </ul>
       +          </div>
       +        </div>
       +      </div>
       +    </div>
       +  </div>
       +</header>
       +<div class="header-flash">
       +</div>
       +
       +
       +
       +  <!-- ========== section start ========== -->
       +  <section class="section">
       +    <div class="container-fluid">
       +      <!-- ========== title-wrapper start ========== -->
       +      <div class="title-wrapper pt-30">
       +  <div class="title mb-30">
       +    <h1> New Case Contact </h1>
       +  </div>
       +</div>
       +<div>
       +  <form id="casa-contact-form" action="/case_contacts" accept-charset="UTF-8" method="post">
       +  
       +
       +  <div class="card-style-1 pl-25 mb-10">
       +      <h2><label for="case_contact_casa_case">1. Select relevant CASA case<span class="red-letter"> *</span></label></h2>
       +    <div class="casa-case-scroll">
       +        <div class="form-check checkbox-style mb-10 ml-5">
       +          <input type="checkbox" name="case_contact[casa_case_id][]" id="case_contact_casa_case_id_0" value="3" class="form-check-input casa-case-id" checked="checked" />
       +          <label class="form-check-label" for="case_contact_casa_case_id_0">
       +            CINA-3
       +          </label>
       +        </div>
       +    </div>
       +  </div>
       +  <div class="card-style-1 pl-25 mb-10">
       +    <div id="contact-type-form">
       +  <h2 id="contact-type-label"><label for="case_contact_contact_types">2. Select All Contact Types</label><span class="red-letter"> *</span></h2>
       +  <table class="mt-3">
       +    <tr>
       +        <td class="align-top d-inline-block pr-5 pl-5 pb-4">
       +          <h5 class="mb-2"> A </h5>
       +            <div class="form-check checkbox-style mb-1">
       +              <input type="checkbox" name="case_contact[case_contact_contact_type_attributes][][contact_type_id]" id="case_contact_contact_type_11" value="11" class="form-check-input case-contact-contact-type" />
       +              <label class="form-check-label" for="case_contact_contact_type_11">
       +                Type 11
       +              </label>
       +                <span style="color: #93903C;">
       +                  never
       +                </span>
       +            </div>
       +            <div class="form-check checkbox-style mb-1">
       +              <input type="checkbox" name="case_contact[case_contact_contact_type_attributes][][contact_type_id]" id="case_contact_contact_type_12" value="12" class="form-check-input case-contact-contact-type" />
       +              <label class="form-check-label" for="case_contact_contact_type_12">
       +                Type 12
       +              </label>
       +                <span style="color: #93903C;">
       +                  never
       +                </span>
       +            </div>
       +        </td>
       +        <td class="align-top d-inline-block pr-5 pl-5 pb-4">
       +          <h5 class="mb-2"> B </h5>
       +            <div class="form-check checkbox-style mb-1">
       +              <input type="checkbox" name="case_contact[case_contact_contact_type_attributes][][contact_type_id]" id="case_contact_contact_type_10" value="10" class="form-check-input case-contact-contact-type" />
       +              <label class="form-check-label" for="case_contact_contact_type_10">
       +                Type 10
       +              </label>
       +                <span style="color: #93903C;">
       +                  never
       +                </span>
       +            </div>
       +            <div class="form-check checkbox-style mb-1">
       +              <input type="checkbox" name="case_contact[case_contact_contact_type_attributes][][contact_type_id]" id="case_contact_contact_type_9" value="9" class="form-check-input case-contact-contact-type" />
       +              <label class="form-check-label" for="case_contact_contact_type_9">
       +                Type 9
       +              </label>
       +                <span style="color: #93903C;">
       +                  never
       +                </span>
       +            </div>
       +        </td>
       +    </tr>
       +  </table>
       +</div>
       +<script type="text/javascript">
       +  function checkContactTypes(){
       +    var contact_type_boxes = document.getElementsByName("casa_case[casa_case_contact_types_attributes][][contact_type_id]")
       +    for (checkbox of contact_type_boxes){
       +      checkbox.checked = true
       +    }
       +  }
       +
       +  function uncheckContactTypes(){
       +    var contact_type_boxes = document.getElementsByName("casa_case[casa_case_contact_types_attributes][][contact_type_id]")
       +    for (checkbox of contact_type_boxes){
       +        checkbox.checked = false
       +    }
       +  }
       +</script>
       +
       +  </div>
       +
       +  <div id="enter-contact-details" class="card-style-1 pl-25 mb-10">
       +    <h2 class="mb-3"><label for="case_contact_casa_case">3. Enter Contact Details</label><span class="red-letter"> *</span></h2>
       +    <div class="">
       +      <h5 classs="mb-3"><label for="case_contact_contact_made">a. Contact Made</label></h5>
       +      <div class="form-check radio-style mb-20">
       +        <input required="required" class="form-check-input" type="radio" value="true" name="case_contact[contact_made]" id="case_contact_contact_made_true" />
       +        <label class="form-check-label" for="case_contact_contact_made_true">Yes</label>
       +      </div>
       +      <div class="form-check radio-style mb-20">
       +        <input required="required" class="form-check-input" type="radio" value="false" name="case_contact[contact_made]" id="case_contact_contact_made_false" />
       +        <label class="form-check-label" for="case_contact_contact_made_false">No</label>
       +      </div>
       +    </div>
       +
       +    <div class="field contact-medium form-group">
       +      <h5 classs="mb-3"><label for="case_contact_medium_type">b. Contact Medium</label></h5>
       +      <input type="hidden" name="case_contact[medium_type]" value="" autocomplete="off" />
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="in-person" name="case_contact[medium_type]" id="case_contact_medium_type_in-person" />
       +          <label class="form-check-label" for="case_contact_medium_type_in-person">In Person</label>
       +        </div>
       +
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="text/email" name="case_contact[medium_type]" id="case_contact_medium_type_textemail" />
       +          <label class="form-check-label" for="case_contact_medium_type_textemail">Text/Email</label>
       +        </div>
       +
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="video" name="case_contact[medium_type]" id="case_contact_medium_type_video" />
       +          <label class="form-check-label" for="case_contact_medium_type_video">Video</label>
       +        </div>
       +
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="voice-only" name="case_contact[medium_type]" id="case_contact_medium_type_voice-only" />
       +          <label class="form-check-label" for="case_contact_medium_type_voice-only">Voice Only</label>
       +        </div>
       +
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="letter" name="case_contact[medium_type]" id="case_contact_medium_type_letter" />
       +          <label class="form-check-label" for="case_contact_medium_type_letter">Letter</label>
       +        </div>
       +    </div>
       +
       +    <div class="pr-50">
       +
       +      <h5 class="mb-3"><label for="case_contact_occurred_at">c. Occurred On</label></h5>
       +      <div class="input-style-1">
       +        <input value="2023-06-28" data-provide="datepicker" data-date-format="yyyy/mm/dd" class="card-style-1" type="text" name="case_contact[occurred_at]" id="case_contact_occurred_at" />
       +      </div>
       +    </div>
       +
       +    <div class="pr-50 ">
       +      <h5 class="mb-3"><label for="case_contact_casa_case">d. Duration of Meeting</label></h5>
       +      <div class="row align-items-center">
       +        <div class="input-style-1 col pl-0">
       +          <input id="case-contact-duration-hours-display" min="0" class="inline-fields cc-field" size="10" value="0" required="required" type="number" name="case_contact[duration_hours]" /> &nbsp; <strong> hour(s)</strong>
       +        </div>
       +        <div class="input-style-1 col">
       +          <input id="case-contact-duration-minutes-display" min="0" class="inline-fields cc-field" size="10" value="0" required="required" type="number" name="case_contact[duration_minutes]" /> &nbsp; <strong> minute(s)</strong>
       +        </div>
       +      </div>
       +    </div>
       +  </div>
       +
       +  <div class="card-style-1 pl-25 mb-10 pr-50">
       +    <h2 class="mb-3"><label for="case_contact_casa_case">4. Enter Travel Details</label></h2>
       +    <div class="field miles-driven form-group">
       +      <h5 class="mb-3"><label for="case_contact_miles_driven">a. Miles Driven</label></h5>
       +      <div class="input-style-1">
       +        <input class="form-control" min="0" max="10000" type="number" value="0" name="case_contact[miles_driven]" autocomplete="off" id="case_contact_miles_driven">
       +      </div>
       +    </div>
       +
       +      <div class="field want-driving-reimbursement form-group">
       +        <h5 class="mb-3"><label for="case_contact_want_driving_reimbursement">b. Want Driving Reimbursement</label></h5>
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="true" name="case_contact[want_driving_reimbursement]" id="case_contact_want_driving_reimbursement_true" />
       +          <label class="form-check-label" for="case_contact_want_driving_reimbursement_true">Yes</label>
       +        </div>
       +        <div class="form-check radio-style mb-20">
       +          <input class="form-check-input" type="radio" value="false" checked="checked" name="case_contact[want_driving_reimbursement]" id="case_contact_want_driving_reimbursement_false" />
       +          <label class="form-check-label" for="case_contact_want_driving_reimbursement_false">No</label>
       +        </div>
       +      </div>
       +      <div class="field volunteer-address form-group">
       +        <h5 class="mb-3"><label for="case_contact_volunteer_address">c. Volunteer Address</label></h5>
       +        <div class="input-style-1 mb-0">
       +          <input autocomplete="off" type="hidden" value="3" name="case_contact[casa_case_attributes][id]" id="case_contact_casa_case_attributes_id" />        </div>
       +      </div>case_assignment
       +
       +  </div>
       +
       +  <div class="card-style-1 pl-25 mb-10">
       +    <div class="notes-header pr-25">
       +      <h2 class="mb-3"><label for="case_contact_notes">5. Enter Notes</label></h2>
       +
       +      <button id="open-highlight-modal" class="mb-3 btn-sm main-btn secondary-btn-outline btn-hover" data-bs-toggle="modal" data-target="#visibleColumns">+ Highlight</button>
       +
       +    </div>
       +    <div class="cc-italic mb-3">
       +      Please refer to individuals by their roles instead of by their names. Ex: My supervisor joined me for a call with the social worker to discuss my youth.
       +    </div>
       +    <div class="input-style-1 pr-25">
       +    <textarea rows="5" placeholder="Enter notes here" class="form-control" name="case_contact[notes]" id="case_contact_notes">
       +</textarea>
       +    </div>
       +  </div>
       +
       +  <div class="actions mb-10">
       +    <button name="button" type="submit" class="btn-sm main-btn primary-btn btn-hover">
       +      <i class="lni lni-checkmark-circle mr-5"></i> Submit
       +</button>  </div>
       +  <div class="modal fade" id="confirm-submit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
       +  <div class="modal-dialog">
       +    <div class="modal-content">
       +      <div class="modal-header">
       +        <strong>Confirm Note Content</strong>
       +      </div>
       +      <div class="modal-body">
       +        Please double check your notes to ensure they don't contain any identifying details about your youth or anyone else.
       +        <p class="mt-3">
       +        <h6>Note</h6>
       +        <div id="note-content"></div>
       +        </p>
       +      </div>
       +
       +      <div class="modal-footer justify-content-between">
       +        <button type="button" class="main-btn btn-sm secondary-btn-outline btn-hover mr-10" data-dismiss="modal" id="modal-case-contact-cancel">
       +          Go Back to Form
       +        </button>
       +        <input type="submit" name="commit" value="Continue Submitting" class="btn-sm main-btn primary-btn btn-hover" id="modal-case-contact-submit" data-disable-with="Continue Submitting" />
       +      </div>
       +    </div>
       +  </div>
       +</div>
       +
       +</form>
       +<div class="warning-modal">
       +  <div class="modal fade" id="caseContactHighlight" tabindex="-1" aria-hidden="true">
       +    <div class="modal-dialog modal-dialog-centered">
       +      <div class="modal-content card-style">
       +        <div class="modal-header px-0 border-0">
       +          <h5 class="text-bold">Highlight</h5>
       +          <button
       +            class="border-0 bg-transparent h1"
       +            data-bs-dismiss="modal">
       +            <i class="lni lni-cross-circle"></i>
       +          </button>
       +        </div>
       +        <div class="modal-body px-0">
       +          <div class="mb-30">
       +            <h6 class="mb-20">
       +              Coming Soon.
       +            </h6>
       +          </div>
       +          <div class="action d-flex flex-wrap justify-content-end">
       +            <button
       +              data-bs-dismiss="modal"
       +              class="main-btn danger-btn-outline btn-hover m-1"><i class="lni lni-ban mr-10"></i>
       +              Close
       +            </button>
       +          </div>
       +        </div>
       +      </div>
       +    </div>
       +  </div>
       +</div>
       +
       +</div>
       +
       +    </div>
       +  </section>
       +
       +  <footer class="footer">
       +    <div class="container-fluid">
       +      <div class="row">
       +        <div class="col-md-4 order-last order-md-first">
       +          <div class="copyright text-center text-md-start">
       +            <p class="text-sm">
       +              © CASA / Volunteer Tracking
       +            </p>
       +          </div>
       +        </div>
       +        <!-- end col-->
       +        <div class="col-md-8">
       +          <div
       +            class="
       +                  terms
       +                  d-flex
       +                  justify-content-center justify-content-md-end
       +                ">
       +            <p class="text-sm pr-4">
       +              Built with <i class="lni lni-heart-filled" style="color:red;"></i> by
       +              <a href="https://rubyforgood.org/">Ruby For Good</a>
       +            </p>
       +            <p class="text-sm ml-15">
       +              <a href="https://form.typeform.com/to/iXY4BubB">Report a site issue</a>
       +            </p>
       +            <p class="text-sm ml-15">
       +              <a href="/sms-terms-conditions.html">SMS Terms &amp; Conditions</a>
       +            </p>
       +          </div>
       +        </div>
       +      </div>
       +      <!-- end row -->
       +    </div>
       +    <!-- end container -->
       +  </footer>
       +  <!-- ========== footer end =========== -->
       +</main>
       +<!-- ======== main-wrapper end =========== -->
       +<script type="text/javascript">/*<![CDATA[*/
       +if (typeof(console) !== 'undefined' && console.log) {
       +  if (console.groupCollapsed && console.groupEnd) {
       +    console.groupCollapsed("Uniform Notifier");
       +    console.log("user: runner\nUSE eager loading detected\n  CasaOrg => [:logo_attachment]\n  Add to your query: .includes([:logo_attachment])\nCall stack\n  /home/runner/work/casa/casa/app/views/layouts/_sidebar.html.erb:3:in `_app_views_layouts__sidebar_html_erb___2290727727957063842_107860'\n  /home/runner/work/casa/casa/app/views/layouts/application.html.erb:45:in `_app_views_layouts_application_html_erb__3246249775429947194_107620'\n  /home/runner/work/casa/casa/spec/requests/case_contacts_spec.rb:49:in `block (3 levels) in <top (required)>'\n  /home/runner/work/casa/casa/spec/requests/case_contacts_spec.rb:57:in `block (3 levels) in <top (required)>'\n\n");
       +    console.groupEnd();
       +  } else {
       +    console.log("user: runner\nUSE eager loading detected\n  CasaOrg => [:logo_attachment]\n  Add to your query: .includes([:logo_attachment])\nCall stack\n  /home/runner/work/casa/casa/app/views/layouts/_sidebar.html.erb:3:in `_app_views_layouts__sidebar_html_erb___2290727727957063842_107860'\n  /home/runner/work/casa/casa/app/views/layouts/application.html.erb:45:in `_app_views_layouts_application_html_erb__3246249775429947194_107620'\n  /home/runner/work/casa/casa/spec/requests/case_contacts_spec.rb:49:in `block (3 levels) in <top (required)>'\n  /home/runner/work/casa/casa/spec/requests/case_contacts_spec.rb:57:in `block (3 levels) in <top (required)>'\n\n");
       +  }
       +}
       +
       +/*]]>*/</script>
       +
       +
       +</body>
       +</html>
     # ./spec/requests/case_contacts_spec.rb:59:in `block (3 levels) in <top (required)>'

[Docker] Court Reports Page Missing Download Link

Last Seen: July 27, 2023

   1) case_court_reports/index when selecting a case, volunteer can generate and download a report when court report status is 'submitted' allows admins to download already generated report from case details page
     Failure/Error: expect(page).to have_link("Click to download")
       expected to find link "Click to download" but there were no matches

     # ./spec/system/case_court_reports/index_spec.rb:202:in `block (4 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Rspec] Sign in phrasing mismatch for admin?

Last Seen: July 27, 2023


  1) view all volunteers admin user when timed out prompts login
     Failure/Error: expect(page).to have_text "sign in again to continue"
       expected to find text "sign in again to continue" in "Welcome Back\nSign in to your Existing account to continue\nSign In\nNot registered but want to join? [email protected]\nYou need to sign in before continuing.\nEmail\nPassword\nForgot your password?\nRemember me next time\nLog In"

     # ./spec/system/volunteers/index_spec.rb:189:in `block (4 levels) in <top (required)>'

[Rspec] Learning Hour Report Username Mismatch x2

Last Seen: July 29, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5034
Possibly Fixed by: https://github.com/rubyforgood/casa/pull/5036


  1) LearningHoursReport#to_csv when there are learning hours includes all learning hours
     Failure/Error: expect(row[0]).to eq learning_hours[index - 1].user.display_name

       expected: "User 340"
            got: "User 342"

       (compared using ==)
     # ./spec/models/learning_hours_report_spec.rb:22:in `block (5 levels) in <top (required)>'
     # ./spec/models/learning_hours_report_spec.rb:20:in `each'
     # ./spec/models/learning_hours_report_spec.rb:20:in `each_with_index'
     # ./spec/models/learning_hours_report_spec.rb:20:in `block (4 levels) in <top (required)>'

[Rspec] Unable to find after court order copy notification x4

Last Seen: October 7, 2023


  1) Edit CASA Case logged in as volunteer Copy all court orders from a case should not move court orders from one case to another
     Failure/Error: expect(page).to have_text("Court orders have been copied")
       expected to find text "Court orders have been copied" in "Inbox\nMy Cases\nCase Contacts\nLearning Hours\nEmancipation Checklist(s)\nGroup Actions\nMenu\nUser 2631\nEditing CINA-1819\nUpdate CASA Case\n\nCourt Details\nCourt Report Status\nNot submitted\nSubmitted\nIn review\nCompleted\nCourt Orders - Please check that you didn't enter any youth names\nCopy all orders from case:\nCINA-1821\nCopy\nSopor deleniti decerno. Urbanus apostolus velociter. Deserunt qui stultus. Unde tabella conservo. Aequus caries crebro. Confugo antepono absens. Et eaque conventus. Tactus in ascit. Timor teneo alter.\nSet Implementation Status\nUnimplemented\nPartially implemented\nImplemented\nDelete\nAdd a court order\nCourt dates:\nMay 1, 2023 (Attached Report)\nJune 29, 2023 (Attached Report)\nJune 30, 2023\nJuly 20, 2023 (Attached Report)\nAdd a court date\n\nUpdate CASA Case\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions\n×\n!\nCopy all orders from case #CINA-1821?\nAre you sure you want to copy all orders from case #CINA-1821?\nCopy\nCancel"

     # ./spec/system/casa_cases/edit_spec.rb:634:in `block (4 levels) in <top (required)>'

  1) Edit CASA Case logged in as admin Copy all court orders from a case should copy all court orders from selected case
     Failure/Error: expect(page).to have_text("Court orders have been copied")
       expected to find text "Court orders have been copied" in "Inbox\nSupervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 1338\nEditing CINA-1043\nUpdate CASA Case\n\nCase number\nCourt Details\nYouth's Birth Month & Year\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n1992\n1991\n1990\n1989\nYouth's Date in Care\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n1992\n1991\n1990\n1989\nCourt Report Status\nNot submitted\nSubmitted\nIn review\nCompleted\nCourt Orders - Please check that you didn't enter any youth names\nCopy all orders from case:\nCINA-1041\nCopy\nArguo dedico qui. Quasi accendo video. Solio cognatus aestivus. Agnitio assentator teres. Quia catena argentum. Abbas sustineo numquam. Aegrus adsum commemoro. Debitis sunt aestus. Bibo corona est. Velit sodalitas aut. Magnam acceptus rerum. Bestia voluptate ducimus. Vestrum casus corona. Denique vae temporibus. Conicio cavus patior. Tot temporibus ocer. Concido audax voveo. Voluptas absorbeo cum. Uberrime quis vesper. Atque dolores argumentum. Viridis libero advoco. Volutabrum vero ceno. Cibo deprecator enim. Usus crinis coma.\nSet Implementation Status\nUnimplemented\nPartially implemented\nImplemented\nDelete\nAdd a court order\nCourt dates: No Court Dates\nAdd a court date\n2. Select All Contact Types\n*\nCheck All Uncheck All\nGroup 545\nType 632\n\nUpdate CASA Case\nDeactivate CASA Case\nManage Volunteers\n\n×\n!\nCopy all orders from case #CINA-1041?\nAre you sure you want to copy all orders from case #CINA-1041?\nCopy\nCancel"

     # ./spec/system/casa_cases/edit_spec.rb:149:in `block (4 levels) in <top (required)>'

1) Edit CASA Case logged in as admin Copy all court orders from a case should not overwrite existing court orders
     Failure/Error: expect(page).to have_text("Court orders have been copied")
       expected to find text "Court orders have been copied" in "Supervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 599\nEditing CINA-685\nUpdate CASA Case\n\nCase number\nCourt Details\nYouth's Birth Month & Year\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n1992\n19[91](https://github.com/rubyforgood/casa/actions/runs/6231004375/job/16943542274#step:7:92)\n1990\n1989\nYouth's Date in Care\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n19[92](https://github.com/rubyforgood/casa/actions/runs/6231004375/job/16943542274#step:7:93)\n1991\n1990\n1989\nCourt Report Status\nNot submitted\nSubmitted\nIn review\nCompleted\nCourt Orders - Please check that you didn't enter any youth names\nCopy all orders from case:\nCINA-683\nCopy\nEst itaque demergo. Copia conforto non. Unus tribuo dolores. Dolorum delicate cervus. Sono soluta caelum. Unde solum amicitia. Quia pecus defetiscor. Supra acsi agnitio. Terminatio desolo asperiores. Fuga ut defleo. Circumvenio vel avaritia. Titulus laborum spiculum. Omnis voluptatem eaque. Conatus celebrer deripio. Deinde deficio abundans. Quo utor sollicito. Abundans cur vero. Consequatur theca velociter. Civitas spoliatio candidus. Abbas catena placeat. Sunt vetus voluptates. Volva qui vapulus.\nSet Implementation Status\nUnimplemented\nPartially implemented\nImplemented\nDelete\nAdd a court order\nCourt dates: No Court Dates\nAdd a court date\n2. Select All Contact Types\n*\nCheck All Uncheck All\nGroup 320\nType 378\n\nUpdate CASA Case\nDeactivate CASA Case\nManage Volunteers\n\n×\n!\nCopy all orders from case #CINA-683?\nAre you sure you want to copy all orders from case #CINA-683?\nCopy\nCancel"

     # ./spec/system/casa_cases/edit_spec.rb:170:in `block (4 levels) in <top (required)>'

[Docker] Can not find alert warning when trying to delete a future court date as a supervisor x4

Last Seen: August 21, 2023

  1) court_dates/edit as a supervisor can delete a future court date
     Failure/Error: page.driver.browser.switch_to.alert.accept

     Selenium::WebDriver::Error::NoSuchAlertError:
       no such alert
         (Session info: headless chrome=94.0.4606.61)

     # #0 0x5603445308f3 <unknown>
     # #1 0x560344015a3f <unknown>
     # #2 0x56034400c755 <unknown>
     # #3 0x560344028f75 <unknown>
     # #4 0x560344068ecb <unknown>
     # #5 0x560344028ccf <unknown>
     # #6 0x560344068d63 <unknown>
     # #7 0x56034403f144 <unknown>
     # #8 0x560344040135 <unknown>
     # #9 0x56034455fc3e <unknown>
     # #10 0x5603445756b7 <unknown>
     # #11 0x560344560b95 <unknown>
     # #12 0x560344576b05 <unknown>
     # #13 0x5603445552ab <unknown>
     # #14 0x560344591248 <unknown>
     # #15 0x5603445913c8 <unknown>
     # #16 0x5603445ac33d <unknown>
     # #17 0x7fa5828d3609 start_thread
     ...
     # ./spec/system/court_dates/edit_spec.rb:85:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

Finished in 6 minutes 21 seconds (files took 8.56 seconds to load)
2495 examples, 1 failure, 11 pending

Failed examples:

rspec ./spec/system/court_dates/edit_spec.rb:74 # court_dates/edit as a supervisor can delete a future court date

[Rspec] Casa Admin Controller too Permissive

Last Seen: August 1, 2023

  1) CasaAdminPolicy edit? different org does not allow editing admin
     Failure/Error: is_expected.not_to permit(casa_admin, record)
       Expected CasaAdminPolicy not to grant edit? on #<CasaAdmin:0x00007f2194ffc1e0> but edit? was granted
     # ./spec/policies/casa_admin_policy_spec.rb:21:in `block (4 levels) in <top (required)>'

Finished in 6 minutes 11 seconds (files took 8.46 seconds to load)
2495 examples, 1 failure, 11 pending

[Docker] Unable to Find Warning Modal Before Attempting to Deactivate a Volunteer x47

Last Seen: Febuary 03, 2024 Linked Issue: https://github.com/rubyforgood/casa/issues/5126

   1) volunteers/edit saves the user as inactive, but only if the admin confirms
     Failure/Error:
       dismiss_confirm do
         scroll_to(".actions")
         click_on "Deactivate volunteer"
       end

     Capybara::ModalNotFound:
       Unable to find modal dialog

     ...
     # ./spec/system/volunteers/edit_spec.rb:170:in `block (2 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Selenium::WebDriver::Error::TimeoutError:
     #   timed out after 2 seconds (no such alert
     #     (Session info: headless chrome=94.0.4606.61))
     #   /usr/local/bundle/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/wait.rb:73:in `until'

Finished in 6 minutes 26 seconds (files took 8.43 seconds to load)
2495 examples, 1 failure, 11 pending

Failed examples:

rspec ./spec/system/volunteers/edit_spec.rb:162 # volunteers/edit saves the user as inactive, but only if the admin confirms

[Docker] Did not Recieve Confirmation Text After Changing Supervisor to Admin x13

Last Seen: October 2, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5129
Possibly Fixed by: https://github.com/rubyforgood/casa/pull/5241

  1) supervisors/edit logged in as an admin can convert the supervisor to an admin
     Failure/Error: expect(page).to have_text("Supervisor was changed to Admin.")
       expected to find text "Supervisor was changed to Admin." in "Inbox\nSupervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 2261\nEditing Supervisor\nEmail\nDisplay name\nPhone number\nEmail Reimbursement Requests\nCASA organization CASA Org 1731\nAdded to system August 2, 2023\nInvitation email sent never\nLast logged in never\nInvitation accepted never\nPassword reset last sent never\nWill receive reimbursement request emails No\nSupervisor is ACTIVE Deactivate Supervisor Resend Invitation Change to Admin\nSubmit\nManage Volunteers\n\nAssign a New Volunteer\nSelect a Volunteer\n           Assign Volunteer\nThere are no active, unassigned volunteers available.\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions"

     # ./spec/system/supervisors/edit_spec.rb:131:in `block (3 levels) in <top (required)>'

[Docker] Did not Receive Confirmation Text After Changing Admin to Supervisor x10

Last Seen: October 18, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5130

  1) casa_admins/edit can convert the admin to a supervisor
     Failure/Error: expect(page).to have_text("Admin was changed to Supervisor.")
       expected to find text "Admin was changed to Supervisor." in "Inbox\nSupervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 1960\nEdit Casa Admin\nEmail\nDisplay name\nPhone number\nEmail Reimbursement Requests\nCASA organization CASA Org 1618\nAdded to system August 15, 2023\nInvitation email sent never\nLast logged in never\nInvitation accepted never\nPassword reset last sent never\nWill receive reimbursement request emails No\nAdmin is\nACTIVE\nDeactivate Resend Invitation Change to Supervisor\nSubmit\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions"

     # ./spec/system/casa_admins/edit_spec.rb:114:in `block (2 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] Unable to Find Warning Modal Before Attempting to Deactivate a Supervisor x10

Last Seen: December 19, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5127

   2) supervisors/edit logged in as an admin can deactivate a supervisor
     Failure/Error:
       dismiss_confirm do
         find("a[href='#{deactivate_supervisor_path(supervisor)}']").click
       end

     Capybara::ModalNotFound:
       Unable to find modal dialog

     ...
     # ./spec/system/supervisors/edit_spec.rb:80:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Selenium::WebDriver::Error::TimeoutError:
     #   timed out after 2 seconds (no such alert
     #     (Session info: headless chrome=94.0.4606.61))
     #   /usr/local/bundle/gems/selenium-webdriver-4.10.0/lib/selenium/webdriver/common/wait.rb:73:in `until'

Finished in 7 minutes 53 seconds (files took 10.08 seconds to load)
2495 examples, 2 failures, 11 pending

Failed examples:

rspec ./spec/system/supervisors/edit_spec.rb:74 # supervisors/edit logged in as an admin can deactivate a supervisor

[Docker] Failed to click on new case button as admin x6

Last Seen September 19, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5131

  1) casa_cases/new when signed in as a Casa Org Admin when all fields are filled is successful
     Failure/Error: click_on "New Case"

     Capybara::ElementNotFound:
       Unable to find link or button "New Case"

     ...
     # ./spec/system/casa_cases/new_spec.rb:18:in `block (4 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] Failed to submit additional expenses form x3

Last Seen: November 6, 2023

1) additional_expenses when setting additional expenses verifies that an additional expense without a description will cause an error
     Failure/Error: click_on "Submit"

     Selenium::WebDriver::Error::ElementClickInterceptedError:
       element click intercepted: Element is not clickable at point (345, 2242)
         (Session info: headless chrome=94.0.4606.61)

     # #0 0x562b407608f3 <unknown>
     # #1 0x562b40245ba8 <unknown>
     # #2 0x562b40282f0a <unknown>
     # #3 0x562b402809b4 <unknown>
     # #4 0x562b4027e13a <unknown>
     # #5 0x562b4027caec <unknown>
     # #6 0x562b40270818 <unknown>
     # #7 0x562b40298e72 <unknown>
     # #8 0x562b40270593 <unknown>
     # #9 0x562b40298f7e <unknown>
     # #10 0x562b402abdac <unknown>
     # #11 0x562b40298d63 <unknown>
     # #12 0x562b4026f144 <unknown>
     # #13 0x562b40270[135](https://github.com/rubyforgood/casa/actions/runs/5784484125/job/15675257344?pr=5101#step:8:136) <unknown>
     # #14 0x562b4078fc3e <unknown>
     # #15 0x562b407a56b7 <unknown>
     # #16 0x562b40790b95 <unknown>
     # #17 0x562b407a6b05 <unknown>
     # #18 0x562b407852ab <unknown>
     # #19 0x562b407c1248 <unknown>
     # #20 0x562b407c13c8 <unknown>
     # #21 0x562b407dc33d <unknown>
     # #22 0x7fd4e439b609 start_thread
     ...
     # ./spec/system/case_contacts/additional_expenses_spec.rb:210:in `block (4 levels) in <top (required)>'
     # ./spec/system/case_contacts/additional_expenses_spec.rb:209:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] System Test Configuration? Failure x39

Last Seen: November 6, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5124
Possibly Fixed by: https://github.com/rubyforgood/casa/pull/5343

Most system tests fail with a stack trace like

 124.2) Failure/Error: Unable to infer file and line number from backtrace

              Selenium::WebDriver::Error::InvalidSessionIdError:
                invalid session id
              # #0 0x5556fee708f3 <unknown>
              # #1 0x5556fe955a3f <unknown>
              # #2 0x5556fe97e9cb <unknown>
              # #3 0x5556fe9a8dec <unknown>
              # #4 0x5556fe9a6b12 <unknown>
              # #5 0x5556fe9a6347 <unknown>
              # #6 0x5556fe92d774 <unknown>
              # #7 0x5556fe92e5a0 <unknown>
              # #8 0x5556fee9fc3e <unknown>
              # #9 0x5556feeb56b7 <unknown>
              # #10 0x5556feea0b95 <unknown>
              # #11 0x5556feeb6b05 <unknown>
              # #12 0x5556fee952ab <unknown>
              # #13 0x5556fe92d300 <unknown>
              # #14 0x7fb76e4cf0b3 __libc_start_main
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:55:in `assert_ok'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:620:in `execute'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:267:in `screenshot'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/driver.rb:339:in `screenshot'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:54:in `screenshot_as'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:56:in `screenshot_as'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `block in save_screenshot'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `open'
              # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `save_screenshot'
              # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:161:in `save_screenshot'
              # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `block in save_screenshot'
              # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `save_screenshot'
              # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

 414) ReimbursementDatatable multiple record handling order by case number explicit ascending order should order correctly
       Failure/Error:
         create(
           :case_contact,
           casa_case: casa_case,
           occurred_at: Time.new - possible_occurred_at_offsets.pop,
           miles_driven: possible_miles_driven_values.pop
         )

       ActiveRecord::RecordInvalid:
         Validation failed: Occurred at cannot be in the future
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/evaluation.rb:18:in `create'
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/strategy/create.rb:12:in `block in result'
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/strategy/create.rb:9:in `result'
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/factory.rb:43:in `run'
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/factory_runner.rb:29:in `block in run'
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/factory_runner.rb:28:in `run'
       # /usr/local/bundle/gems/factory_bot-6.2.1/lib/factory_bot/strategy_syntax_method_registrar.rb:28:in `block in define_singular_strategy_method'
       # ./spec/datatables/reimbursement_datatable_spec.rb:116:in `block (5 levels) in <top (required)>'
       # ./spec/datatables/reimbursement_datatable_spec.rb:115:in `times'
       # ./spec/datatables/reimbursement_datatable_spec.rb:115:in `each'
       # ./spec/datatables/reimbursement_datatable_spec.rb:115:in `collect'
       # ./spec/datatables/reimbursement_datatable_spec.rb:115:in `block (4 levels) in <top (required)>'
       # ./spec/datatables/reimbursement_datatable_spec.rb:113:in `times'
       # ./spec/datatables/reimbursement_datatable_spec.rb:113:in `each'
       # ./spec/datatables/reimbursement_datatable_spec.rb:113:in `collect'
       # ./spec/datatables/reimbursement_datatable_spec.rb:113:in `block (3 levels) in <top (required)>'
       # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

      90.4) Failure/Error: Unable to infer file and line number from backtrace

            Selenium::WebDriver::Error::InvalidArgumentError:
              invalid argument: 'handle' must be a string
                (Session info: headless chrome=94.0.4606.61)
            # #0 0x55d82ed1e8f3 <unknown>
            # #1 0x55d82e803ba8 <unknown>
            # #2 0x55d82e860067 <unknown>
            # #3 0x55d82e856e38 <unknown>
            # #4 0x55d82e82d144 <unknown>
            # #5 0x55d82e82e135 <unknown>
            # #6 0x55d82ed4dc3e <unknown>
            # #7 0x55d82ed636b7 <unknown>
            # #8 0x55d82ed4eb95 <unknown>
            # #9 0x55d82ed64b05 <unknown>
            # #10 0x55d82ed432ab <unknown>
            # #11 0x55d82ed7f248 <unknown>
            # #12 0x55d82ed7f3c8 <unknown>
            # #13 0x55d82ed9a33d <unknown>
            # #14 0x7ff1c9c36609 start_thread
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:55:in `assert_ok'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:620:in `execute'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:168:in `switch_to_window'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/target_locator.rb:107:in `window'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:270:in `switch_to_window'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver_specializations/chrome_driver.rb:40:in `reset!'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:131:in `reset!'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara.rb:327:in `block in reset_sessions!'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara.rb:327:in `reverse_each'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara.rb:327:in `reset_sessions!'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/rspec.rb:20:in `block (2 levels) in <top (required)>'
            # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

      90.2) Failure/Error: Unable to infer file and line number from backtrace

            Selenium::WebDriver::Error::NoSuchWindowError:
              no such window: target window already closed
              from unknown error: web view not found
                (Session info: headless chrome=94.0.4606.61)
            # #0 0x55d82ed1e8f3 <unknown>
            # #1 0x55d82e803ba8 <unknown>
            # #2 0x55d82e7e4702 <unknown>
            # #3 0x55d82e85a24b <unknown>
            # #4 0x55d82e869465 <unknown>
            # #5 0x55d82e856d63 <unknown>
            # #6 0x55d82e82d144 <unknown>
            # #7 0x55d82e82e135 <unknown>
            # #8 0x55d82ed4dc3e <unknown>
            # #9 0x55d82ed636b7 <unknown>
            # #10 0x55d82ed4eb95 <unknown>
            # #11 0x55d82ed64b05 <unknown>
            # #12 0x55d82ed432ab <unknown>
            # #13 0x55d82ed7f248 <unknown>
            # #14 0x55d82ed7f3c8 <unknown>
            # #15 0x55d82ed9a33d <unknown>
            # #16 0x7ff1c9c36609 start_thread
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:55:in `assert_ok'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:620:in `execute'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:267:in `screenshot'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/driver.rb:339:in `screenshot'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:54:in `screenshot_as'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:56:in `screenshot_as'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `block in save_screenshot'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `open'
            # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `save_screenshot'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:161:in `save_screenshot'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `block in save_screenshot'
            # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:747:in `save_screenshot'
            # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] Did not Recieve Confirmation Text After Re-Sending an invitation to an Admin x14

Last Seen: October 23, 2023
Linked Issue: https://github.com/rubyforgood/casa/issues/5123

  2) casa_admins/edit can resend invitation to a another admin
     Failure/Error: expect(page).to have_content("Invitation sent")
       expected to find text "Invitation sent" in "Inbox\nSupervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 1735\nEdit Casa Admin\nEmail\nDisplay name\nPhone number\nEmail Reimbursement Requests\nCASA organization CASA Org 1316\nAdded to system August 16, 2023\nInvitation email sent never\nLast logged in never\nInvitation accepted never\nPassword reset last sent never\nWill receive reimbursement request emails No\nAdmin is\nACTIVE\nDeactivate Resend Invitation Change to Supervisor\nSubmit\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions"

     # ./spec/system/casa_admins/edit_spec.rb:105:in `block (2 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] Did not Recieve Confirmation Text After Re-Sending an invitation to a Supervisor x10

Last Seen: December 19, 2023

  1) supervisors/edit logged in as an admin can resend invitation to a supervisor
     Failure/Error: expect(page).to have_content("Invitation sent")
       expected to find text "Invitation sent" in "Inbox\nSupervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 1311\nEditing Supervisor\nEmail\nDisplay name\nPhone number\nEmail Reimbursement Requests\nCASA organization CASA Org 1071\nAdded to system August 28, 2023\nInvitation email sent never\nLast logged in never\nInvitation accepted never\nPassword reset last sent never\nWill receive reimbursement request emails No\nSupervisor is ACTIVE Deactivate Supervisor Resend Invitation Change to Admin\nSubmit\nManage Volunteers\n\nAssign a New Volunteer\nSelect a Volunteer\n           Assign Volunteer\nThere are no active, unassigned volunteers available.\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions"

     # ./spec/system/supervisors/edit_spec.rb:116:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] Could not Find Modal With Deactivation Button When Trying to Deactivate an Admin x5

Last Seen: November 13, 2023

  2) casa_admins/edit can successfully deactivate
     Failure/Error:
       dismiss_confirm do
         click_on "Deactivate"
       end

     Capybara::ModalNotFound:
       Unable to find modal dialog

     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:452:in `rescue in find_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:440:in `find_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:286:in `dismiss_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:853:in `dismiss_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:679:in `dismiss_confirm'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `call'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `dismiss_confirm'
     # ./spec/system/casa_admins/edit_spec.rb:85:in `block (2 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Selenium::WebDriver::Error::TimeoutError:
     #   timed out after 2 seconds (no such alert
     #     (Session info: headless chrome=94.0.4606.61))
     #   /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/wait.rb:73:in `until'

[Rspec] Failed to find reactivate case link x4

Last Seen: October 18, 2023

  1) Edit CASA Case logged in as admin reactivates a case
     Failure/Error: click_link("Reactivate CASA Case")

     Capybara::ElementNotFound:
       Unable to find link "Reactivate CASA Case"

     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/finders.rb:312:in `block in synced_resolve'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/base.rb:84:in `synchronize'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/finders.rb:301:in `synced_resolve'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/finders.rb:60:in `find'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/actions.rb:42:in `click_link'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:773:in `click_link'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `call'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `click_link'
     # ./spec/system/casa_cases/edit_spec.rb:89:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

[Docker] Missing supervisor count text

Last Seen: August 29, 2023
Seen with the below error

  2) supervisors/index when signed in as a supervisor supervisor table with active and deactivated supervisors shows deactivated supervisor on show button click
     Failure/Error: expect(page).to have_text("Showing 1 to 2 of 2 entries (filtered from 3 total entries)")
       expected to find text "Showing 1 to 2 of 2 entries (filtered from 3 total entries)" in ""

     # ./spec/system/supervisors/index_spec.rb:88:in `block (5 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.0/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

[Docker] Chrome not reachable x16

Last Seen: October 19, 2023

1.2) Failure/Error: Unable to infer file and line number from backtrace

          Selenium::WebDriver::Error::WebDriverError:
            chrome not reachable
              (Session info: headless chrome=94.0.4606.61)
          # #0 0x5594ab6918f3 <unknown>
          # #1 0x5594ab[176](https://github.com/rubyforgood/casa/actions/runs/5999216922/job/16268920347?pr=5159#step:8:177)a3f <unknown>
          # #2 0x5594ab165934 <unknown>
          # #3 0x5594ab15739d <unknown>
          # #4 0x5594ab1d25d7 <unknown>
          # #5 0x5594ab1c9e38 <unknown>
          # #6 0x5594ab1a0144 <unknown>
          # #7 0x5594ab1a1135 <unknown>
          # #8 0x5594ab6c0c3e <unknown>
          # #9 0x5594ab6d66b7 <unknown>
          # #10 0x5594ab6c1b95 <unknown>
          # #11 0x5594ab6d7b05 <unknown>
          # #12 0x5594ab6b62ab <unknown>
          # #13 0x5594ab6f2248 <unknown>
          # #14 0x5594ab6f23c8 <unknown>
          # #15 0x5594ab70d33d <unknown>
          # #16 0x7f17631e5609 start_thread
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:55:in `assert_ok'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:620:in `execute'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/remote/bridge.rb:206:in `window_handles'
          # /usr/local/bundle/gems/selenium-webdriver-4.11.0/lib/selenium/webdriver/common/driver.rb:[199](https://github.com/rubyforgood/casa/actions/runs/5999216922/job/16268920347?pr=5159#step:8:200):in `window_handles'
          # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:253:in `window_handles'
          # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver_specializations/chrome_driver.rb:40:in `reset!'
          # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:131:in `reset!'
          # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara.rb:327:in `block in reset_sessions!'
          # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara.rb:327:in `reverse_each'
          # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara.rb:327:in `reset_sessions!'
          # /usr/local/bundle/gems/webmock-3.19.0/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

[Docker] Timeout When Trying to Download Court Date Report

Last Seen: September 2, 2023

  1) court_dates/edit as a volunteer can download a report which focuses on the court date
     Failure/Error:
       Timeout.timeout(TIMEOUT) do
         sleep 0.1 until downloaded?
       end

     Timeout::Error:
       execution expired

     # /usr/local/bundle/gems/timeout-0.4.0/lib/timeout.rb:43:in `rescue in handle_timeout'
     # /usr/local/bundle/gems/timeout-0.4.0/lib/timeout.rb:40:in `handle_timeout'
     # /usr/local/bundle/gems/timeout-0.4.0/lib/timeout.rb:195:in `timeout'
     # ./spec/support/download_helpers.rb:43:in `wait_for_download'
     # ./spec/system/court_dates/view_spec.rb:33:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.0/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::ExitException:
     #   execution expired
     #   ./spec/support/download_helpers.rb:44:in `sleep'

[Docker] Found Extra Case Selected when Trying to make a new Case Contact x4

Last Seen: December 12, 2023

   1) case_contacts/new volunteer user case default selection when there are params defined select the cases defined in the params
     Failure/Error: expect(page).not_to have_checked_field(second_case.case_number)
       expected not to find visible field "CINA-298" that is not disabled that is checked, found 1 match: ""
     # ./spec/system/case_contacts/new_spec.rb:636:in `block (5 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.0/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

[Rspec] Failed to Delete a Court Order

Last Seen: September 15, 2023

1) Edit CASA Case logged in as supervisor deleting court orders can delete a court order
     Failure/Error: expect(page).to_not have_text(text)
       expected not to find text "Aeneus sordeo suspendo. Substantia subseco tergiversatio. Est balbus decet. Tabernus ventito culpa. Aperio cattus vulariter. Umerus consectetur et. Abbas deripio sui. Titulus paens vulnero. Et fugiat certus. Traho in commodi. Solvo alienus amiculum. Surculus cenaculum voluptatem. Centum correptius arceo. Earum culpa aveho. Ter auctor urbs. Traho termes deripio. Crepusculum est acceptus. Vicissitudo clementia annus. Commemoro solutio sustineo." in "Supervisors\nVolunteers\nOther Duties\nCases\nGroup Actions\nMenu\nMalissa Fisher IV\nEditing CINA-1853\nUpdate CASA Case\n\nCourt Details\nYouth's Date in Care\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n1992\n1991\n19[90](https://github.com/rubyforgood/casa/actions/runs/6204206162/job/16845972018#step:7:91)\n1989\nCourt Report Status\nNot submitted\nSubmitted\nIn review\nCompleted\nCourt Orders - Please check that you didn't enter any youth names\nAeneus sordeo suspendo. Substantia subseco tergiversatio. Est balbus decet. Tabernus ventito culpa. Aperio cattus vulariter. Umerus consectetur et. Abbas deripio sui. Titulus paens vulnero. Et fugiat certus. Traho in commodi. Solvo alienus amiculum. Surculus cenaculum voluptatem. Centum correptius arceo. Earum culpa aveho. Ter auctor urbs. Traho termes deripio. Crepusculum est acceptus. Vicissitudo clementia annus. Commemoro solutio sustineo.\nSet Implementation Status\nUnimplemented\nPartially implemented\nImplemented\nDelete\nAdd a court order\nCourt dates: No Court Dates\nAdd a court date\n2. Select All Contact Types\n*\nCheck All Uncheck All\nGroup 11[91](https://github.com/rubyforgood/casa/actions/runs/6204206162/job/16845972018#step:7:92)\nYouth\n\nUpdate CASA Case\nManage Volunteers\n\nAssign a New Volunteer\nSelect a Volunteer\n           Assign Volunteer\nThere are no active, unassigned volunteers available.\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions\n×\n!\nDelete court order?\nAre you sure you want to remove this court order? Doing so will delete all records of it unless it was included in a previous court report.\nDelete\nGo back"

     # ./spec/system/casa_cases/edit_spec.rb:395:in `block (4 levels) in <top (required)>'

[Docker] Supervisor import does not show confirmation text

Last Seen: September 11, 2023

  2) imports/index import supervisors csv with phone numbers shows sms opt in modal
     Failure/Error: expect(page).to have_text("You successfully imported")
       expected to find text "You successfully imported" in "Supervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nGenerate Court Reports\nReimbursement Queue\nExport Data\nSystem Imports\nMileage Rates\nEdit Organization\nBanners\nMenu\nUser 2268\nImports\nSystem Imports\nYou should import files in the following order:\nVolunteers\nSupervisors\nCases\nImport Volunteers\nImport Supervisors\nImport Cases\n\n\n1. Download and reference example Supervisor CSV file\n2. Upload your CSV file\nClick the choose file button and navigate to the saved file and select it.\nDo not change any of the values in the first line of the example csv file.\nThen click the \"Import Supervisors CSV\" button to import your supervisors.\nImport Supervisors CSV\n\n\nCSV Import Error\nYou must attach a CSV file in order to import information!\nOK\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions"

     # ./spec/system/imports/index_spec.rb:77:in `block (3 levels) in <top (required)>'

[Docker] static page index of null x2

Last Seen: September 23, 2023

1) static/index when visiting the CASA volunteer landing page when all organizations have logos displays all organizations that have attached logos
     Failure/Error: idx = @offsets[x - 1] + x

     NoMethodError:
       undefined method `+' for nil:NilClass
     # /usr/local/bundle/gems/bullet-7.0.7/lib/bullet/rack.rb:17:in `call'
     # /usr/local/bundle/gems/scout_apm-5.3.5/lib/scout_apm/middleware.rb:17:in `call'
     # /usr/local/bundle/gems/rack-attack-6.7.0/lib/rack/attack.rb:103:in `call'
     # /usr/local/bundle/gems/warden-1.2.9/lib/warden/manager.rb:36:in `block in call'
     # /usr/local/bundle/gems/warden-1.2.9/lib/warden/manager.rb:34:in `catch'
     # /usr/local/bundle/gems/warden-1.2.9/lib/warden/manager.rb:34:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/tempfile_reaper.rb:15:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/etag.rb:27:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/conditional_get.rb:27:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/head.rb:12:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/session/abstract/id.rb:266:in `context'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/session/abstract/id.rb:260:in `call'
     # /usr/local/bundle/gems/bugsnag-6.26.0/lib/bugsnag/integrations/rack.rb:51:in `call'
     # /usr/local/bundle/gems/lograge-0.13.0/lib/lograge/rails_ext/rack/logger.rb:18:in `call_app'
     # /usr/local/bundle/gems/railties-7.0.7.2/lib/rails/rack/logger.rb:25:in `block in call'
     # /usr/local/bundle/gems/railties-7.0.7.2/lib/rails/rack/logger.rb:25:in `call'
     # /usr/local/bundle/gems/request_store-1.5.1/lib/request_store/middleware.rb:19:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/method_override.rb:24:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/runtime.rb:22:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/sendfile.rb:110:in `call'
     # /usr/local/bundle/gems/railties-7.0.7.2/lib/rails/engine.rb:530:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/urlmap.rb:[74](https://github.com/rubyforgood/casa/actions/runs/6204459144/job/16846552988#step:8:75):in `block in call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/urlmap.rb:58:in `each'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/urlmap.rb:58:in `call'
     # /usr/local/bundle/gems/rack-2.2.8/lib/rack/builder.rb:244:in `call'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/server/middleware.rb:60:in `call'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/configuration.rb:270:in `call'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/request.rb:100:in `block in handle_request'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/thread_pool.rb:344:in `with_force_shutdown'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/request.rb:[99](https://github.com/rubyforgood/casa/actions/runs/6204459144/job/16846552988#step:8:100):in `handle_request'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/server.rb:443:in `process_client'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/server.rb:245:in `block in run'
     # /usr/local/bundle/gems/puma-6.3.1/lib/puma/thread_pool.rb:151:in `block in spawn_thread'
     # ------------------
     # --- Caused by: ---
     # Capybara::CapybaraError:
     #   Your application server raised an error - It has been raised in your test code because Capybara.raise_server_errors == true
     #   /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:163:in `raise_server_error!'

Failed examples:

rspec ./spec/system/static/index_spec.rb:16 # static/index when visiting the CASA volunteer landing page when all organizations have logos displays all organizations that have attached logos

[Docker] Failed to find confirmation modal when trying to delete a court date x3

Last Seen: September 18, 2023

1) court_dates/edit as an admin can delete a future court date
     Failure/Error:
       accept_alert "Are you sure?" do
         page.find("a", text: "Delete Future Court Date").click
       end

     Capybara::ModalNotFound:
       Unable to find modal dialog with Are you sure?

     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:452:in `rescue in find_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:440:in `find_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/selenium/driver.rb:2[75](https://github.com/rubyforgood/casa/actions/runs/6230928638/job/16911683524#step:8:76):in `accept_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:[84](https://github.com/rubyforgood/casa/actions/runs/6230928638/job/16911683524#step:8:85)9:in `accept_modal'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:659:in `accept_alert'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `call'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `accept_alert'
     # ./spec/system/court_dates/edit_spec.rb:65:in `block (3 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Selenium::WebDriver::Error::TimeoutError:
     #   timed out after 2 seconds (no such alert
     #     (Session info: headless chrome=[94](https://github.com/rubyforgood/casa/actions/runs/6230928638/job/16911683524#step:8:95).0.4606.61))
     #   /usr/local/bundle/gems/selenium-webdriver-4.12.0/lib/selenium/webdriver/common/wait.rb:73:in `until'

Failed examples:

rspec ./spec/system/court_dates/edit_spec.rb:57 # court_dates/edit as an admin can delete a future court date

[Rspec] Failed to Find Confirmation Text After Deactivating a Case x2

Last Seen: October 2, 2023

1) Edit CASA Case logged in as admin deactivates a case when part of the same organization
     Failure/Error: expect(page).to have_text("Case #{casa_case.case_number} has been deactivated")
       expected to find text "Case CINA-1242 has been deactivated" in "Supervisors\nVolunteers\nOther Duties\nCases\nAdmins\nGroup Actions\nMenu\nUser 1534\nEditing CINA-1242\nUpdate CASA Case\n\nCase number\nCourt Details\nYouth's Birth Month & Year\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n1992\n1991\n19[90](https://github.com/rubyforgood/casa/actions/runs/6231004375/job/16913832210#step:7:91)\n1989\nYouth's Date in Care\nMonth\nJanuary\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\nYear\n2023\n2022\n2021\n2020\n2019\n2018\n2017\n2016\n2015\n2014\n2013\n2012\n2011\n2010\n2009\n2008\n2007\n2006\n2005\n2004\n2003\n2002\n2001\n2000\n1999\n1998\n1997\n1996\n1995\n1994\n1993\n1992\n19[91](https://github.com/rubyforgood/casa/actions/runs/6231004375/job/16913832210#step:7:92)\n1990\n1989\nCourt Report Status\nNot submitted\nSubmitted\nIn review\nCompleted\nCourt Orders - Please check that you didn't enter any youth names\nCopy all orders from case:\nCINA-1240\nCopy\nAdsum verus verumtamen. Commodi sublime contabesco. Cohibeo comes ceno. Cultellus defetiscor agnitio. Alo aut amaritudo. Debeo arbor id. Tracto defaeco vado. Necessitatibus adimpleo alius. Mollitia saepe vesco. Autem acidus demonstro. Supra ultra est. Cognomen tremo apparatus. Est adnuo totus.\nSet Implementation Status\nUnimplemented\nPartially implemented\nImplemented\nDelete\nAdd a court order\nCourt dates: No Court Dates\nAdd a court date\n2. Select All Contact Types\n*\nCheck All Uncheck All\nGroup 604\nType 767\n\nUpdate CASA Case\nDeactivate CASA Case\nManage Volunteers\n\n!\nDeactivating a CASA Case will unassign any volunteers currently assigned to this case.\nYes, deactivate\nNo, go back"

     # ./spec/system/casa_cases/edit_spec.rb:72:in `block (3 levels) in <top (required)>'

Failed examples:

rspec ./spec/system/casa_cases/edit_spec.rb:67 # Edit CASA Case logged in as admin deactivates a case when part of the same organization

[Docker] Unable to Find Enable Twilio Button x10

Last Seen: October 24, 2023

1) casa_org/edit hides Twilio Form if twilio is not enabled
     Failure/Error: uncheck "Enable Twilio"

     Capybara::ElementNotFound:
       Unable to find checkbox "Enable Twilio" that is not disabled

     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/finders.rb:312:in `block in synced_resolve'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/base.rb:[77](https://github.com/rubyforgood/casa/actions/runs/6230898190/job/16943410658#step:8:78):in `synchronize'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/finders.rb:301:in `synced_resolve'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/finders.rb:60:in `find'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/actions.rb:368:in `block in _check_with_label'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/base.rb:84:in `synchronize'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/actions.rb:367:in `_check_with_label'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/node/actions.rb:1[79](https://github.com/rubyforgood/casa/actions/runs/6230898190/job/16943410658#step:8:80):in `uncheck'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/session.rb:773:in `uncheck'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `call'
     # /usr/local/bundle/gems/capybara-3.39.2/lib/capybara/dsl.rb:52:in `uncheck'
     # ./spec/system/casa_org/edit_spec.rb:44:in `block (2 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

Failed examples:

rspec ./spec/system/casa_org/edit_spec.rb:37 # casa_org/edit hides Twilio Form if twilio is not enabled

[Docker] Mismatched Court Orders After Creating a Court Case x3

Last Seen: December 13, 2023

  1) /casa_cases/:casa_case_id/court_dates/:id POST /create with valid parameters with case_court_orders_attributes being passed as a parameter sets fields correctly
     Failure/Error: expect(court_date.case_court_orders[0].text).to eq texts[0]

       expected: "1-New Order Text One"
            got: "0-New Order Text Two"

       (compared using ==)
     # ./spec/requests/court_dates_spec.rb:231:in `block (5 levels) in <top (required)>'

Finished in 6 minutes 33 seconds (files took 8.68 seconds to load)
2516 examples, 1 failure, 13 pending

Failed examples:

rspec ./spec/requests/court_dates_spec.rb:227 # /casa_cases/:casa_case_id/court_dates/:id POST /create with valid parameters with case_court_orders_attributes being passed as a parameter sets fields correctly

[Rspec] Failed to Find Element with Id resolve x2

Last Seen: October 18, 2023

1) notifications/index FollowupNotification when followup doesn't have a note lists followup notifications, showing the information in a single line when there are no notes
     Failure/Error:
       within("#resolve", wait: 5) do
         expect(page).to have_content "Resolve Reminder"
       end

     Capybara::ElementNotFound:
       Unable to find css "#resolve"

     # ./spec/system/notifications/index_spec.rb:[95](https://github.com/rubyforgood/casa/actions/runs/6222055444/job/16885218564?pr=5214#step:7:96):in `block (4 levels) in <top (required)>'

[RSpec] SMS Sent about an Unassigned Case x2

Last Seen: November 28, 2023

1) Volunteer.email_court_report_reminder should not send sms about unassigned cases
     Failure/Error: CourtReportDueSmsReminderService.court_report_reminder(volunteer, report_due_date)

       (CourtReportDueSmsReminderService).court_report_reminder(#<Volunteer id: 12[73](https://github.com/rubyforgood/casa/actions/runs/6145997574/job/16946209616?pr=5207#step:8:74), email: "[email protected]", created_at: "2023-09-20 00:32:30.393163000 +000...tions: false, receive_email_notifications: true, old_emails: [], receive_reimbursement_email: false>, 2023-09-27 00:00:00.000000000 +0000)
           expected: 0 times with arguments: (#<Volunteer id: 1273, email: "[email protected]", created_at: "2023-09-20 00:32:30.418244000 +000...tions: false, receive_email_notifications: true, old_emails: [], receive_reimbursement_email: false>, anything)
           received: 1 time with arguments: (#<Volunteer id: 1273, email: "[email protected]", created_at: "2023-09-20 00:32:30.393163000 +000...tions: false, receive_email_notifications: true, old_emails: [], receive_reimbursement_email: false>, 2023-09-27 00:00:00.000000000 +0000)
     # ./app/models/volunteer.rb:67:in `block (2 levels) in send_court_report_reminder'
     # ./app/models/volunteer.rb:62:in `block in send_court_report_reminder'
     # ./app/models/volunteer.rb:61:in `send_court_report_reminder'
     # ./spec/models/volunteer_spec.rb:60:in `block (3 levels) in <top (required)>'

[Docker] Volunteer missing new duty link x2

Last Seen: October 8, 2023

1) other_duties/new as a volunteer should see a New Duty link
     Failure/Error: expect(page).to have_link("New Duty", href: new_other_duty_path)
       expected to find link "New Duty" with href "/other_duties/new" but there were no matches

     # ./spec/system/other_duties/new_spec.rb:21:in `block (3 levels) in <top (required)>'

[Docker] Admin does not receive confirmation text after deactivating a supervisor

Last Seen: September 25, 2023

  1) supervisors/edit logged in as an admin can deactivate a supervisor
     Failure/Error: expect(page).to have_text("Supervisor was deactivated on")
       expected to find text "Supervisor was deactivated on" in ""

     # ./spec/system/supervisors/edit_spec.rb:87:in `block (3 levels) in <top (required)>'

[Docker] Case Contact Scope Query Mismatch

Last Seen: October 2, 2023

1) CaseContact scopes .with_casa_case when parameter is not nil returns contacts with the given casa case ids
     Failure/Error: expect(described_class.with_casa_case(casa_case.id)).to eq(case_contacts)

       expected: [#<CaseContact id: 278, creator_id: 736, casa_case_id: 363, duration_minutes: 60, occurred_at: "2023-...: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>]
            got: #<ActiveRecord::Relation [#<CaseContact id: 280, creator_id: 738, casa_case_id: 363, duration_minutes... 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>]>

       (compared using ==)

       Diff:
       @@ -1,4 +1,46 @@
       -[#<CaseContact id: 278, creator_id: 736, casa_case_id: 363, duration_minutes: 60, occurred_at: "2023-10-02 11:53:36.689549234 +0000", created_at: "2023-10-02 11:53:36.691717000 +0000", updated_at: "2023-10-02 11:53:36.691717000 +0000", contact_made: false, medium_type: "in-person", miles_driven: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>,
       - #<CaseContact id: 279, creator_id: 737, casa_case_id: 363, duration_minutes: 60, occurred_at: "2023-10-02 11:53:36.706620335 +0000", created_at: "2023-10-02 11:53:36.708665000 +0000", updated_at: "2023-10-02 11:53:36.708665000 +0000", contact_made: false, medium_type: "in-person", miles_driven: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>,
       - #<CaseContact id: 280, creator_id: 738, casa_case_id: 363, duration_minutes: 60, occurred_at: "2023-10-02 11:53:36.[72](https://github.com/rubyforgood/casa/actions/runs/6379670820/job/17312585346?pr=5256#step:8:73)3315536 +0000", created_at: "2023-10-02 11:53:36.725410000 +0000", updated_at: "2023-10-02 11:53:36.725410000 +0000", contact_made: false, medium_type: "in-person", miles_driven: 0, want_driving_reimbursement: false, notes: nil, deleted_at: nil, reimbursement_complete: false>]
       +[#<CaseContact:0x00007fd99a9[73](https://github.com/rubyforgood/casa/actions/runs/6379670820/job/17312585346?pr=5256#step:8:74)490
       +  id: 280,
       +  creator_id: 738,
       +  casa_case_id: 363,
       +  duration_minutes: 60,
       +  occurred_at: Mon, 02 Oct 2023 11:53:36.723315000 UTC +00:00,
       +  created_at: Mon, 02 Oct 2023 11:53:36.725410000 UTC +00:00,
       +  updated_at: Mon, 02 Oct 2023 11:53:36.725410000 UTC +00:00,
       +  contact_made: false,
       +  medium_type: "in-person",
       +  miles_driven: 0,
       +  want_driving_reimbursement: false,
       +  notes: nil,
       +  deleted_at: nil,
       +  reimbursement_complete: false>,
       + #<CaseContact:0x00007fd99a973350
       +  id: 2[78](https://github.com/rubyforgood/casa/actions/runs/6379670820/job/17312585346?pr=5256#step:8:79),
       +  creator_id: 736,
       +  casa_case_id: 363,
       +  duration_minutes: 60,
       +  occurred_at: Mon, 02 Oct 2023 11:53:36.689549000 UTC +00:00,
       +  created_at: Mon, 02 Oct 2023 11:53:36.691717000 UTC +00:00,
       +  updated_at: Mon, 02 Oct 2023 11:53:36.691717000 UTC +00:00,
       +  contact_made: false,
       +  medium_type: "in-person",
       +  miles_driven: 0,
       +  want_driving_reimbursement: false,
       +  notes: nil,
       +  deleted_at: nil,
       +  reimbursement_complete: false>,
       + #<CaseContact:0x00007fd99a973210
       +  id: 2[79](https://github.com/rubyforgood/casa/actions/runs/6379670820/job/17312585346?pr=5256#step:8:80),
       +  creator_id: 737,
       +  casa_case_id: 363,
       +  duration_minutes: 60,
       +  occurred_at: Mon, 02 Oct 2023 11:53:36.706620000 UTC +00:00,
       +  created_at: Mon, 02 Oct 2023 11:53:36.70[86](https://github.com/rubyforgood/casa/actions/runs/6379670820/job/17312585346?pr=5256#step:8:87)65000 UTC +00:00,
       +  updated_at: Mon, 02 Oct 2023 11:53:36.708665000 UTC +00:00,
       +  contact_made: false,
       +  medium_type: "in-person",
       +  miles_driven: 0,
       +  want_driving_reimbursement: false,
       +  notes: nil,
       +  deleted_at: nil,
       +  reimbursement_complete: false>]
     # ./spec/models/case_contact_spec.rb:434:in `block (5 levels) in <top (required)>'

[Docker] Failed to Find Submit Button when Entering Other Duty x2

Last Seen: October 18, 2023

1) other_duties/new as a volunteer should have an error if a new duty is attempted to be created without any notes
     Failure/Error: click_on "Submit"

     Capybara::ElementNotFound:
       Unable to find link or button "Submit"

     # ./spec/system/other_duties/new_spec.rb:43:in `block (3 levels) in <top (required)>'

[Docker] Failed to Find Casa Case Button when Deleting a Court Case

Last Seen: October 9, 2023

1) court_dates/edit as a supervisor can delete a future court date
     Failure/Error: click_on casa_case.case_number

     Capybara::ElementNotFound:
       Unable to find link or button "CINA-991"

     # ./spec/system/court_dates/edit_spec.rb:[79](https://github.com/rubyforgood/casa/actions/runs/6455795632/job/17523994901?pr=5266#step:8:80):in `block (3 levels) in <top (required)>'

[Docker] Could not find other duties title on page

Last Seen: October 10, 2023

  3) other_duties/new as a volunteer should see all their other duties
     Failure/Error: expect(page).to have_text("Other Duties")
       expected to find text "Other Duties" in ""

     # ./spec/system/other_duties/new_spec.rb:33:in `block (3 levels) in <top (required)>'

[Docker] Failed to find case contacts button when viewing case contacts

Last Seen: October 18, 2023


  1) case_contacts/index with case contacts can show only case contacts for one case
     Failure/Error: click_on "Case Contacts"

     Capybara::ElementNotFound:
       Unable to find link or button "Case Contacts"

     # ./spec/system/case_contacts/index_spec.rb:105:in `block (4 levels) in <top (required)>'
     # ./spec/system/case_contacts/index_spec.rb:93:in `block (3 levels) in <top (required)>'

[Docker] Failed to find Learning Topic on Empty Page

Last Seen: October 30, 2023

  1) volunteers/new displays learning hour topic for volunteers when enabled
     Failure/Error: expect(page).to have_text("Learning Topic")
       expected to find text "Learning Topic" in ""

     # ./spec/system/volunteers/new_spec.rb:58:in `block (2 levels) in <top (required)>'

[Rspec] Failed to preserve hidden column preference x6

Last Seen: January 22, 2024

  1) view all volunteers supervisor user can persist 'show/hide' column preference settings
     Failure/Error: expect(page).to have_no_text("Last Attempted Contact")
       expected not to find text "Last Attempted Contact" in "Email Supervisor Assigned To Transition Aged Youth Case Number(s) Last Attempted Contact Hours spent in last 30 days Extra Languages Actions\nNo data available in table"

     # ./spec/system/volunteers/index_spec.rb:299:in `block (4 levels) in <top (required)>'
     # ./spec/system/volunteers/index_spec.rb:295:in `block (3 levels) in <top (required)>'

[Docker] Failure to remove a case from a case group x3

Last Seen: January 9, 2024

1) Case Groups remove from a case group
     Failure/Error: expect(page).to_not have_text(casa_case2.case_number)
       expected not to find text "CINA-247" in "Supervisors\nVolunteers\nOther Duties\nCases\nAdmins\nBanners\nGroup Actions\nUser 362\nCase Groups\nCase Groups\nCase groups are used to bulk create court dates for all cases in a group. For example, if siblings attend the same court data you can create a case group for them and then use the Bulk Court Date form to create a court date for all of them.\nNew Case Group\nName Case Numbers Updated At Actions\nA family\nCINA-246\nCINA-247\nless than a minute ago\nEdit\nDelete\n© CASA / Volunteer Tracking\nBuilt with by Ruby For Good\nReport a site issue\nSMS Terms & Conditions"

     # ./spec/system/case_groups/case_groups_spec.rb:[67](https://github.com/rubyforgood/casa/actions/runs/6859128679/job/18650965491?pr=5357#step:8:68):in `block (2 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

[Rspec] Volunteer Table Name Sorted Order

Last Seen: November 16, 2023

  1) VolunteerDatatable with supervisors who have volunteers who have cases order by supervisor_name when ascending is successful
     Failure/Error: expect(CGI.unescapeHTML(values[idx][:supervisor][:name])).to eq model.supervisor.display_name

       expected: "Fr. Rossie Schmitt"
            got: "Frederic Robel"

       (compared using ==)
     # ./spec/datatables/volunteer_datatable_spec.rb:162:in `block (7 levels) in <top (required)>'
     # ./spec/datatables/volunteer_datatable_spec.rb:161:in `each'
     # ./spec/datatables/volunteer_datatable_spec.rb:161:in `each_with_index'
     # ./spec/datatables/volunteer_datatable_spec.rb:161:in `block (6 levels) in <top (required)>'

  2) VolunteerDatatable with supervisors who have volunteers who have cases order by supervisor_name when descending is successful
     Failure/Error: expect(CGI.unescapeHTML(values[idx][:supervisor][:name])).to eq model.supervisor.display_name

       expected: "Frederic Robel"
            got: "Fr. Rossie Schmitt"

       (compared using ==)
     # ./spec/datatables/volunteer_datatable_spec.rb:173:in `block (7 levels) in <top (required)>'
     # ./spec/datatables/volunteer_datatable_spec.rb:172:in `each'
     # ./spec/datatables/volunteer_datatable_spec.rb:172:in `each_with_index'
     # ./spec/datatables/volunteer_datatable_spec.rb:172:in `block (6 levels) in <top (required)>'

[RSpec] Admin can Edit Volunteers Across Org?

Last Seen: December 11, 2023

  1) VolunteerPolicy edit? different org when user is a casa admin does not allow for different org
     Failure/Error: is_expected.not_to permit(admin, record)
       Expected VolunteerPolicy not to grant edit? on #<Volunteer:0x00007f2ca4f18c18> but edit? was granted
     # ./spec/policies/volunteer_policy_spec.rb:36:in `block (5 levels) in <top (required)>'

[Docker] Supervisor can Edit Volunteers Across Orgs?

Last Seen: January 2, 2024

  1) VolunteerPolicy edit? different org when user is a supervisor does not allow
     Failure/Error: is_expected.not_to permit(supervisor, record)
       Expected VolunteerPolicy not to grant edit? on #<Volunteer:0x00007f34cec88200> but edit? was granted
     # ./spec/policies/volunteer_policy_spec.rb:42:in `block (5 levels) in <top (required)>'
     # /usr/local/bundle/gems/webmock-3.19.1/lib/webmock/rspec.rb:39:in `block (2 levels) in <top (required)>'

[Docker] Long Hang

Last Seen: March 12, 2024
No output. Only a very long runtime that gets cancelled.

⚠️ **GitHub.com Fallback** ⚠️