Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/APPEALS-34124-43428-29105-28925-33581 - Rails 6.1 upgrade #22518

Commits on Aug 13, 2024

  1. 🔧 Assume defaults for `config.action_dispatch.use_cookies_with_metada…

    …ta` and `config.action_mailer.delivery_job`
    
    The following config settings are not backwards compatible:
    
    - config.action_dispatch.use_cookies_with_metadata
    - config.action_mailer.delivery_job
    
    Now that Rails 6.0 is stable on production, we can assume
    their default values going forward.
    jcroteau committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    717c673 View commit details
    Browse the repository at this point in the history
  2. ✅ Fix flakey spec

    jcroteau committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    96a2d19 View commit details
    Browse the repository at this point in the history
  3. 🔧 Assume default for `config.action_dispatch.use_authenticated_cookie…

    …_encryption`
    
    Since we are making other cookie configuration changes in this PR for Rails 6.0,
    this is an opportune time to migrate this Rails 5.2 cookie setting to its
    default value as well.
    jcroteau committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    6b138a0 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2024

  1. ⏪️ Restore overrides for `config.action_dispatch.use_authenticated_co…

    …okie_encryption` and `config.action_dispatch.use_cookies_with_metadata`
    
    While testing in PreProd, we discovered that, without these cookie config overrides,
    re-authentication was broken -- after logging out, a user could not log back in.
    
    Since the default settings are still optional going forward, we can restore these
    overrides and devise a solution to migrate cookies later.
    
    For more details, see Jira story APPEALS-54897:
    
    https://jira.devops.va.gov/browse/APPEALS-54897
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    6b0e2fa View commit details
    Browse the repository at this point in the history
  2. ✨ Add new utility module for adding DB indexes concurrently

    Introduces `Caseflow::Migrations::AddIndexConcurrently` as a replacement
    for `Caseflow::Migration` for migrations on ActiveRecord 6.0 and beyond,
    since `Caseflow::Migration` is forever coupled to ActiveRecord 5.1 due
    to its extensive use on legacy migrations and should be deprecated moving
    forward.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    7b0d9e3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    69ff99a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a3b2e5c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6f08c1d View commit details
    Browse the repository at this point in the history
  6. ✨ Introduce SslRedirectExclusionPolicy

    To be used in the environment configuration settings for excluding exempt
    request paths from SSL redirects when `config. force_ssl = true`
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    8d15e43 View commit details
    Browse the repository at this point in the history
  7. ♻️ Replace deprecated controller-level force_ssl

    Replace deprecated controller-level `force_ssl` with
    equivalent configuration settings in preparation for
    the Rails 6.1 upgrade.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    5b091e3 View commit details
    Browse the repository at this point in the history
  8. 🔥 Remove deprecated config setting `config.active_record.sqlite3.repr…

    …esent_boolean_as_integer`
    
    This will have no implications for Caseflow, since we are only using the `sqlite3`
    adapter nominally for the `demo_vacols` database, which is not actually being used
    in our demo environments (demo environments are deployed as `development` envs).
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    dae20d2 View commit details
    Browse the repository at this point in the history
  9. ⬆️ Update caseflow-commons to resolve sub-dependency conflicts

    Removes unneeded gems `bourbon` and `neat`, which had a sub-dependency conflict on `thor`.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    230b009 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    c89ef39 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    8c59a13 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4fc06d8 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    7f43969 View commit details
    Browse the repository at this point in the history
  14. 🔧 Assume default for config.active_storage.track_variants

    We're not currently using ActiveStorage in Caseflow, so it
    is safe to just assume the default here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    6faf742 View commit details
    Browse the repository at this point in the history
  15. 🔧 Override default for config.active_job.retry_jitter

    The default jitter is probably safe, however, I'm not 100% sure that we
    don't have any jobs that need to be requeued with exact wait times. So
    we let's override this for now to stay on the safe side.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    374a81d View commit details
    Browse the repository at this point in the history
  16. 🔧 Assume default for `config.active_job.skip_after_callbacks_if_termi…

    …nated`
    
    We're not currently using `throw :abort` within any `before_enqueue`/`before_perform` 
    callbacks on existing Caseflow jobs, so the default should be fine here.
    
    For more background, see
    https://lilyreile.medium.com/rails-6-1-new-framework-defaults-what-they-do-and-how-to-safely-uncomment-them-c546b70f0c5e#4c60
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    9eb5214 View commit details
    Browse the repository at this point in the history
  17. 🔧 Assume default for `config.action_dispatch.cookies_same_site_protec…

    …tion`
    
    This setting controls the `SameSite` optional attribute for the
    `Set-Cookie` header.
    
    `SameSite=Lax` means that the cookie is not sent on cross-site requests,
    such as on requests to load images or frames, but is sent when a user is
    navigating to the origin site from an external site (for example, when
    following a link). This is the default behavior if the SameSite attribute
    is not specified.
    
    `Lax` is currently the default assumed by both Chrome and Edge browsers
    when this attribute is left unspecified, so assuming this value
    should be sensible. It allows us to have our cake (blocking CSRF attacks)
    and eat it too (providing a logged-in experience when users navigate to
    Caseflow  across origins).
    
    For more background, see
    - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
    - https://lilyreile.medium.com/rails-6-1-new-framework-defaults-what-they-do-and-how-to-safely-uncomment-them-c546b70f0c5e#1f15
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    5031b14 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    ac81e07 View commit details
    Browse the repository at this point in the history
  19. 🔧 Assume default for `ActiveSupport.utc_to_local_returns_utc_offset_t…

    …imes`
    
    We're not using `ActiveSupport::TimeZone.utc_to_local` anywhere,
    so the default is safe to assume here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    1e11d54 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    3c4a9aa View commit details
    Browse the repository at this point in the history
  21. 🔧 Assume default for config.active_record.legacy_connection_handling

    The default should be safe to assume here, as we do not do any
    role or shard switching on database connections.
    
    For more background, see
    https://lilyreile.medium.com/rails-6-1-new-framework-defaults-what-they-do-and-how-to-safely-uncomment-them-c546b70f0c5e#8007
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    c3420af View commit details
    Browse the repository at this point in the history
  22. 🔧 Assume default for `config.action_view.form_with_generates_remote_f…

    …orms`
    
    We don't use the `form_with` helper anywhere, so this behavior change is
    inconsequential for us, and we can safely assume the new default.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    50e2616 View commit details
    Browse the repository at this point in the history
  23. 🔧 Assume default for config.active_storage.queues.analysis

    We do not use ActiveStorage, so the default is safe to assume here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    cff18e1 View commit details
    Browse the repository at this point in the history
  24. 🔧 Assume default for config.active_storage.queues.purge

    We do not use ActiveStorage, so the default is safe to assume here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    0d6ef6d View commit details
    Browse the repository at this point in the history
  25. 🔧 Assume default for config.action_mailbox.queues.incineration

    We don't use ActionMailbox, so the new default is safe to assume here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    557f6f4 View commit details
    Browse the repository at this point in the history
  26. 🔧 Assume default for config.action_mailbox.queues.routing

    We do not use ActionMailbox, so the default is safe to assume here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    d6b3a9e View commit details
    Browse the repository at this point in the history
  27. 🔧 Assume default for config.action_mailer.deliver_later_queue_name

    We're not using `ActionMailer::MessageDelivery #deliver_later` anywhere,
    so the default is safe to assume.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    e41f065 View commit details
    Browse the repository at this point in the history
  28. 🔧 Assume default for config.action_view.preload_links_header

    This flag can be safely uncommented. Browsers that support Link
    headers will get a performance boost. Browsers that don’t will
    ignore them.
    
    We override in `development` environments to avoid an edge case
    leading to an HTTP response header overflow.
    
    For more background, see
    https://lilyreile.medium.com/rails-6-1-new-framework-defaults-what-they-do-and-how-to-safely-uncomment-them-c546b70f0c5e#3679
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    d870261 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    c3f7081 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    be983a7 View commit details
    Browse the repository at this point in the history
  31. ♻️ Extract constant

    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    1e5c6ac View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    e929402 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    a08b8e8 View commit details
    Browse the repository at this point in the history
  34. 🩹 Add forgotten disallowed deprecation warning

    This deprecation warning was addressed by the following
    PR, but we forgot to add it to the list of disallowed
    deprecation warnings:
    
    #21614
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    a22ca15 View commit details
    Browse the repository at this point in the history
  35. 💡 Update comment

    Task `rake routes` has been replaced with `rails routes`
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    c601713 View commit details
    Browse the repository at this point in the history
  36. ✅ Update test to account for change to `ActionDispatch::Response#cont…

    …ent_type` 
    
    `ActionDispatch::Response#content_type` now returns the full Content-Type header
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    61a6d85 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    710d3cc View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    d143468 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    5571bc5 View commit details
    Browse the repository at this point in the history
  40. ♻️ Arrange 'database.yml' configs by environment

    Group DB configs by environment in anticipation of
    reformatting for Rails 6+ multi-DB configuration.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    96a0a5f View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    4a2ecad View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    b14ddd9 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    2c2e9af View commit details
    Browse the repository at this point in the history
  44. ♻️ Use new database-specific rake tasks

    After migrating to the Rails 6+ native multi-database configuration,
    the behavior of some DB management tasks, such as `rake db:migrate`
    changed such that they now act on ALL databases and not just the
    primary database. So we must replace the invocations of these
    tasks with their new, database-specific counterparts.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    ff364e6 View commit details
    Browse the repository at this point in the history
  45. ➖ Remove 'multiverse' gem

    Now that we have fiully transitioned to Rails-native
    multi-database support, we are no longer reliant on
    the 'multiverse' gem and can remove it.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    7b93645 View commit details
    Browse the repository at this point in the history
  46. 🗃️ Prohibit execution of vacols DB and non-DB-specific rake tasks

    After transitioning to Rails-native multi-DB support,
    the behavior of some DB tasks changed such that they will now
    act on ALL databases and not just the primary database
    (ex. `rake db:migrate` will now migrate ALL databases).
    
    To avoid accidents, we re-define these tasks here to no-op
    and output a helpful message to redirect developers toward
    using their new database-specific counterparts instead.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    1c2c90b View commit details
    Browse the repository at this point in the history
  47. ♻️ Create new environment for GH workflow 'Make-docs-to-webpage'

    Instead of performing a bunch of hard-to-maintain `sed` gymnastics
    to modify the existing 'test' environment, let's create a new
    'make_docs' environment (based off of 'test') and configure it
    appropriately for use by the 'Make-docs-to-webpage' GH workflow.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    916055f View commit details
    Browse the repository at this point in the history
  48. 💚 Remove redundant DB migrations from CI workflow

    Task `db:schema:load` already loads the checked in schema,
    so there should be no need to run `db:migrate` afterwards.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    dce962a View commit details
    Browse the repository at this point in the history
  49. 🐛 Fix spec/mailers/hearing_mailer_spec.rb - NoMethodError

    Addresses the following error:
    
      NoMethodError: undefined method `build_lookup_context' for ActionView::Base:Class
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    c7ebce5 View commit details
    Browse the repository at this point in the history
  50. 🐛 Fix spec/workflows/post_decision_motion_updater_spec.rb - `Frozen…

    …Error`
    
    Addresses the following error:
    
      FrozenError: can't modify frozen Hash: {}
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    7bc8e02 View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    aeed812 View commit details
    Browse the repository at this point in the history
  52. 🐛 Fix spec/models/schedule_period_spec.rb - `ActiveRecord::RecordIn…

    …valid`
    
    Apparently, there were some changes to the inner workings of
    `ActiveModel::Errors` in Rails 6.1, causing a model to be
    considered invalid in the case that `errors[:base] == [[]]`.
    This makes sense, as `[[]]` is not considered "empty".
    
    Unfortunately, this was causing `RoSchedulePeriod #validate_spreadsheet`
    to inadvertently mark the model as invalid upon creation.
    `HearingSchedule::ValidateRoSpreadsheet #validate` returns an
    empty array (`[]`) when valid, which gets pushes onto the
    `RoSchedulePeriod` `errors[:base]` array, resulting in a
    non-empty array (`[[]]`) and an erroneously invalid disposition.
    
    Furthermore, calling `<<` to an `ActiveModel::Errors` message array
    in order to add an error is a deprecated, so we can take this
    opportunity to use the new `#add` API to hit two birds with one stone.
    
    The change implemented here is not a pure refactoring, however the
    end-user experience is unchanged in terms of how errors are presented
    when attempting to upload a spreadsheet with multiple non-conformities.
    
    Down the road, we may want to consider moving
    `HearingSchedule::ValidateRoSpreadsheet` toward using
    `ActiveModel::Validations` in order to leverage the
    full `ActiveModel::Errors` API and construct the
    errors object in the prescribed manner.
    
    For more details see
    - https://api.rubyonrails.org/v6.1.7.7/classes/ActiveModel/Validations.html
    - https://api.rubyonrails.org/v6.1.7.7/classes/ActiveModel/Errors.html
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    66c96c9 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    b063896 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    cc33489 View commit details
    Browse the repository at this point in the history
  55. ✅ Fix spec/sql/ama_cases_sql_spec.rb

    Addresses failures such as the below:
    
      0) AMA Cases Tableau data source expected report calculates age and AOD based on person.dob
         Failure/Error: expect(aod_case["aod_veteran.age"]).to eq("76")
    
           expected: "76"
                got: 0.76e2
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    996285a View commit details
    Browse the repository at this point in the history
  56. ✅ Fix multiple specs - Minitest::UnexpectedError

    Test helper method `#perform_enqueued_jobs` now wraps exceptions
    in an `Minitest::UnexpectedError`:
    
    https://github.com/rails/rails/blob/914caca2d31bd753f47f9168f2a375921d9e91cc/activejob/lib/active_job/test_helper.rb#L591
    
    So, to assert that a specific
    exception is raised during execution of the `#perform_enqueued_jobs`
    block, we must rescue the `Minitest::UnexpectedError` and make the
    assertion on its error message instead.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    0f2afe7 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    d890e08 View commit details
    Browse the repository at this point in the history
  58. ✅ Fix spec/controllers/api/v1/jobs_controller_spec.rb

    In Rails 6.1, `ActiveJob #perform_now` was changed to
    behave as it did once before (at the behest of GitHub),
    returning the value fo the job instead of true/false.
    
    See related GH issue: rails/rails#38040
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    a0f6eab View commit details
    Browse the repository at this point in the history
  59. 🐛 Fix spec/controllers/appeals_controller_spec.rb - NoMethodError

    Addresses error:
    
      NoMethodError: undefined method `workflow' for #<CaseSearchResultsForVeteranFileNumber:0x00007f9a030966c8>
    
      0) AppealsController GET appeals when current user is a System Admin when request header does not contain Veteran ID responds with an error
         Failure/Error: errors: errors.messages[:workflow],
    
         NoMethodError:
           undefined method `workflow' for #<CaseSearchResultsForVeteranFileNumber:0x00007f9a030966c8>
         # ./app/workflows/case_search_results_base.rb:31:in `search_call'
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    645b739 View commit details
    Browse the repository at this point in the history
  60. 🐛 Fix CaseSearchResultsBase validations

    Addresses test failures in `spec/controllers/appeals_controller_spec.rb`
    similar to the below:
    
      AppealsController GET appeals when current user is a System Admin when request header does not contain Veteran ID responds with an error
         Failure/Error: expect(response_body["errors"][0]["title"]).to eq "Veteran file number missing"
    
           expected: "Veteran file number missing"
                got: nil
    
    Using `ActiveModel::Errors` to store error data in an arbitrary format may have been
    somewhat permissible in the past, but it is an abuse of the object's intended use and is
    also proving incompatible with the more formalized `ActiveModels::Errors` API in Rails 6.1.
    
    In order to preserve the existing response shape of the affected JSON endpoints,
    we need to move away from the `ActiveModel::Validations` implementation on `CaseSearchResultsBase`
    (and its descendent classes) to a more bespoke method of performing validations and aggregating
    errors, since Rails 6.1 `ActiveModel::Errors` is no longer appropriate for  our needs here.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    4a47ab9 View commit details
    Browse the repository at this point in the history
  61. ✅ Fix spec/controllers/application_controller_spec.rb -- Cache-Cont…

    …rol error
    
    Addresses the test failure below:
    
        ApplicationController no cache headers when toggle set sets Cache-Control etc
         Failure/Error: expect(response.headers["Cache-Control"]).to eq "no-cache, no-store"
    
           expected: "no-cache, no-store"
                got: "no-store"
    
           (compared using ==)
         # ./spec/controllers/application_controller_spec.rb:59:in `block (4 levels) in <top (required)>'
    
    In Rails 6.1, the `no-store` directive is exclusive of any others
    that are set on the `Cache-Control` header, which makes sense given
    the specification https://datatracker.ietf.org/doc/html/rfc7234#section-3
    
    This change was implemented in PR rails/rails#39461
    
    Since it no longer makese sense to set both `no-store` and `no-cache` directives,
    we will only set `no-store` here, as that is the stronger of the two.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    e133da0 View commit details
    Browse the repository at this point in the history
  62. 🐛 Fix multiple specs - ActiveRecord::EagerLoadPolymorphicError

    Addresses multiple test failures caused by the error below:
    
      QueueConfig.to_hash title when assigned to an org is formatted as expected
         Failure/Error:
           tasks.with_assignees.group("assignees.display_name").count(:all).each_pair.map do |option, count|
             label = self.class.format_option_label(option, count)
             self.class.filter_option_hash(option, label)
           end
    
         ActiveRecord::EagerLoadPolymorphicError:
           Cannot eagerly load the polymorphic association :appeal
         # ./app/models/queue_column.rb:110:in `assignee_options'
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    b5f4e3c View commit details
    Browse the repository at this point in the history
  63. 🐛 Fix spec/models/task_spec.rb - update_all clears query cache

    In Rails 6.1.7.7, the method `ActiveRecord::Relation #update_all`
    will now clear any records cached by the calling relation.
    
    This was altering the behavior of `Task #cancel_task_and_child_subtasks`
    and causing the following test failure:
    
      Task#cancel_task_and_child_subtasks cancels all tasks and child subtasks
         Failure/Error: expect(second_level_tasks[0].versions.count).to eq(initial_versions + 2)
    
           expected: 3
                got: 2
    
           (compared using ==)
         # ./spec/models/task_spec.rb:368:in `block (3 levels) in <top (required)>'
    
    To remedy, we will now cache the necessary Task records in an Array, which can
    be used for generating PaperTrail versions both before and after the `update_all`.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    1c6a2b8 View commit details
    Browse the repository at this point in the history
  64. 🐛 Fix spec/services/hearings/calendar_service_spec.rb - template re…

    …ndering error
    
    Addresses the following test failure:
    
      Hearings::CalendarService.confirmation_calendar_invite returns appropriate iCalendar event
         Failure/Error: expect(ical_event.description).to eq(expected_description)
    
           expected: "You're scheduled for a virtual hearing with a Veterans Law Judge of the Board of Veterans' Appeals.\...to reschedule or cancel your virtual hearing, contact us by email at bvahearingteamhotline@va.gov\n"
                got: #<Icalendar::Values::Text("You're scheduled for a virtual hearing with a Veterans Law Judge of the Bo... reschedule or cancel your virtual hearing, contact us by email at bvahearingteamhotline@va.gov\n")>
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    714b607 View commit details
    Browse the repository at this point in the history
  65. 🐛 Fix YAML syntax error caused by whitespace in ENV var

    Address the following error, found during demo deployment:
    
      rake aborted!
      Cannot load database configuration:
      YAML syntax error occurred while parsing /caseflow/config/database.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): could not find expected ':' while scanning a simple key at line 49 column 5
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    7ad559e View commit details
    Browse the repository at this point in the history
  66. ⬆️ Update caseflow-commons dependency to latest ref

    Removes `bourbon` and `neat` dependencies.
    jcroteau committed Aug 16, 2024
    Configuration menu
    Copy the full SHA
    0039454 View commit details
    Browse the repository at this point in the history