renalware-core 2.0.136 → 2.0.137

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/components/renalware/application_component.rb +5 -5
  3. data/app/components/renalware/letters/letters_in_progress_component.rb +3 -3
  4. data/app/controllers/renalware/feeds/hl7_test_messages_controller.rb +2 -2
  5. data/app/controllers/renalware/patients/bookmarks_controller.rb +0 -2
  6. data/app/controllers/renalware/pd/pet_adequacy_results_controller.rb +0 -4
  7. data/app/controllers/renalware/pd/regimes_controller.rb +0 -4
  8. data/app/documents/renalware/hd/session_document.rb +0 -3
  9. data/app/inputs/date_picker_input.rb +0 -2
  10. data/app/models/renalware/accesses/patient.rb +2 -2
  11. data/app/models/renalware/events/event.rb +3 -0
  12. data/app/models/renalware/feeds/files/practice_memberships/import_job.rb +0 -3
  13. data/app/models/renalware/feeds/files/primary_care_physicians/import_job.rb +0 -3
  14. data/app/models/renalware/hd/mdm_patients_query.rb +2 -2
  15. data/app/models/renalware/letters/printing/batch_compile_pdfs.rb +0 -2
  16. data/app/models/renalware/pathology/code_group.rb +2 -2
  17. data/app/models/renalware/pathology/current_observation_set.rb +4 -4
  18. data/app/models/renalware/pd/apd/calculate_volumes.rb +0 -2
  19. data/app/models/renalware/renal/registry/preflight_checks/patients_query.rb +0 -2
  20. data/app/models/renalware/system/update_user.rb +0 -2
  21. data/app/models/renalware/ukrdc/incoming/import_surveys.rb +2 -4
  22. data/app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb +1 -1
  23. data/app/models/renalware/ukrdc/treatment_timeline/pd/generator.rb +2 -2
  24. data/app/models/renalware/user.rb +0 -1
  25. data/app/pdfs/renalware/events/event_pdf.rb +2 -2
  26. data/app/presenters/renalware/hd/protocol_presenter.rb +1 -1
  27. data/app/validators/renalware/pdf_friendly_validator.rb +34 -0
  28. data/app/views/renalware/events/events/_form.html.slim +1 -0
  29. data/db/migrate/20200127170711_add_created_by_to_pathology_code_groups.rb +5 -5
  30. data/lib/renalware/version.rb +1 -1
  31. data/spec/factories/accesses/assessments.rb +1 -1
  32. data/spec/factories/accesses/catheter_insertion_techniques.rb +1 -1
  33. data/spec/factories/pathology/code_groups.rb +1 -1
  34. data/spec/support/devise_spec_helper.rb +4 -4
  35. data/spec/support/pages/letters/form.rb +0 -3
  36. metadata +3 -28
  37. data/app/views/renalware/api/ukrdc/patients/_address.xml.builder +0 -18
  38. data/app/views/renalware/api/ukrdc/patients/_allergies.xml.builder +0 -21
  39. data/app/views/renalware/api/ukrdc/patients/_clinic_visit_observation.xml.builder +0 -28
  40. data/app/views/renalware/api/ukrdc/patients/_diagnoses.xml.builder +0 -57
  41. data/app/views/renalware/api/ukrdc/patients/_documents.xml.builder +0 -38
  42. data/app/views/renalware/api/ukrdc/patients/_encounters.xml.builder +0 -7
  43. data/app/views/renalware/api/ukrdc/patients/_hd_session_observations.xml.builder +0 -39
  44. data/app/views/renalware/api/ukrdc/patients/_lab_orders.xml.builder +0 -48
  45. data/app/views/renalware/api/ukrdc/patients/_medications.xml.builder +0 -47
  46. data/app/views/renalware/api/ukrdc/patients/_name.xml.builder +0 -8
  47. data/app/views/renalware/api/ukrdc/patients/_observations.xml.builder +0 -41
  48. data/app/views/renalware/api/ukrdc/patients/_patient.xml.builder +0 -88
  49. data/app/views/renalware/api/ukrdc/patients/_procedures.xml.builder +0 -21
  50. data/app/views/renalware/api/ukrdc/patients/_sending_facility.xml.builder +0 -9
  51. data/app/views/renalware/api/ukrdc/patients/_social_histories.xml.builder +0 -15
  52. data/app/views/renalware/api/ukrdc/patients/_treatments.xml.builder +0 -65
  53. data/app/views/renalware/api/ukrdc/patients/diagnoses/_cause_of_death.xml.builder +0 -16
  54. data/app/views/renalware/api/ukrdc/patients/lab_orders/_lab_order.xml.builder.dead +0 -42
  55. data/app/views/renalware/api/ukrdc/patients/lab_orders/_result_item.xml.builder.dead +0 -26
  56. data/app/views/renalware/api/ukrdc/patients/procedures/_dialysis_session.xml.builder +0 -42
  57. data/app/views/renalware/api/ukrdc/patients/procedures/_transplant_operation.xml.builder +0 -37
  58. data/app/views/renalware/api/ukrdc/patients/show.xml.builder +0 -26
  59. data/app/views/renalware/api/ukrdc/patients/treatments/_discharge_reason.xml.builder +0 -10
  60. data/app/views/renalware/api/ukrdc/patients/treatments/_generic.xml.builder +0 -26
  61. data/app/views/renalware/api/ukrdc/patients/treatments/_hd.xml.builder +0 -38
  62. data/app/views/renalware/api/ukrdc/patients/treatments/_pd.xml.builder +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03c7978456dae11f60a6ca87a0b3e88cf781a0959535db5df4d54731eb449e80
4
- data.tar.gz: c8edce70496e7e88c44f2925c37ac2a7ce27cb37fd01aeda67fb3f1971b94568
3
+ metadata.gz: 81d09134cf1a4ea4796c62cae9f367d2e336ee1d65e4707efcb49d7c58c7dcb4
4
+ data.tar.gz: 7cb276e32f591a30a8e94874e6d51330c765720acc9800d3c34828d85052e996
5
5
  SHA512:
6
- metadata.gz: 9e2ba6a179f1e8d00b29e86f9d8d2635fe269a2249e1bdfd1ae3d7a5932a81eafe69d31f1c0599a678925fce5db310b7e333c96a9c94b46b142b138399f1ddc1
7
- data.tar.gz: 6200892dd7a1d8ab0bc0ff3a5b7b28c362208d83b0e638c27f1dc8de5bbadfc60db3ca7fbf22a629f2986baf9ab72c5ef8cffeff57e28bafc8f6e2173c0c553c
6
+ metadata.gz: 7a8927c295304770d15f255702c1ad63cfeeb84a730745de3cd18bb438e6170c687f005d80019d434ea5170a5e84fe3c3935790fa3ea0fa181903f8ef163dfa4
7
+ data.tar.gz: 9c15f68020b3f733a6883ce21982057541d882b2ccd1432e3613970cfcf72229ef181a721abf9b600e1d49a4ffb190895d49bd682f333b2352a21f4d6eca6654
@@ -5,10 +5,10 @@ module Renalware
5
5
  include Renalware::Engine.routes.url_helpers
6
6
  include Pundit::Helper
7
7
 
8
- # Not sure why include Renalware::Engine.routes.url_helpers does not make the
9
- # engine urls visible in the views (seems to resolve alwatys to /assets?..)
10
- # so we expose routes here so inside a component html file we can use
11
- # e.g. renalware.bookmarks_path
8
+ # Not sure why include Renalware::Engine.routes.url_helpers does not make the
9
+ # engine urls visible in the views (seems to resolve alwatys to /assets?..)
10
+ # so we expose routes here so inside a component html file we can use
11
+ # e.g. renalware.bookmarks_path
12
12
  def renalware
13
13
  Renalware::Engine.routes.url_helpers
14
14
  end
@@ -19,4 +19,4 @@ module Renalware
19
19
  current_user && Pundit.policy(current_user, record)
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -4,7 +4,7 @@ module Renalware
4
4
  module Letters
5
5
  class LettersInProgressComponent < ApplicationComponent
6
6
  attr_reader :current_user
7
-
7
+
8
8
  def initialize(current_user:)
9
9
  @current_user = current_user
10
10
  end
@@ -22,8 +22,8 @@ module Renalware
22
22
  end
23
23
  end
24
24
 
25
- private
26
-
25
+ private
26
+
27
27
  def present_letters(letters)
28
28
  CollectionPresenter.new(letters, Letters::LetterPresenterFactory)
29
29
  end
@@ -11,7 +11,7 @@ module Renalware
11
11
  render locals: { form: HL7TestForm.new, test_messages: test_messages }
12
12
  end
13
13
 
14
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
14
+ # rubocop:disable Metrics/MethodLength
15
15
  def create
16
16
  authorize [:renalware, :admin, :devops], :create?
17
17
  body = replace_placeholders_in_hl7_message(form_params[:body])
@@ -29,7 +29,7 @@ module Renalware
29
29
  }
30
30
  end
31
31
  end
32
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
32
+ # rubocop:enable Metrics/MethodLength
33
33
 
34
34
  # # Delayed::Job.enqueue job
35
35
  # redirect_to(
@@ -28,7 +28,6 @@ module Renalware
28
28
  end
29
29
 
30
30
  # idempotent
31
- # rubocop:disable Metrics/AbcSize
32
31
  def destroy
33
32
  bookmark = user.bookmarks.find_by(id: params[:id])
34
33
  patient = bookmark&.patient
@@ -42,7 +41,6 @@ module Renalware
42
41
  redirect_back(fallback_location: patient_path(fallback_location),
43
42
  notice: success_msg_for("bookmark"))
44
43
  end
45
- # rubocop:enable Metrics/AbcSize
46
44
 
47
45
  private
48
46
 
@@ -14,7 +14,6 @@ module Renalware
14
14
  render locals: { pet_adequacy_result: result, patient: patient }
15
15
  end
16
16
 
17
- # rubocop:disable Metrics/AbcSize
18
17
  def create
19
18
  result = patient.pet_adequacy_results.new(pet_adequacy_result_params)
20
19
  authorize result
@@ -25,13 +24,11 @@ module Renalware
25
24
  render :new, locals: { pet_adequacy_result: result, patient: patient }
26
25
  end
27
26
  end
28
- # rubocop:enable Metrics/AbcSize
29
27
 
30
28
  def edit
31
29
  render locals: { pet_adequacy_result: pet_adequacy_result, patient: patient }
32
30
  end
33
31
 
34
- # rubocop:disable Metrics/AbcSize
35
32
  def update
36
33
  pet_adequacy_result.assign_attributes(pet_adequacy_result_params)
37
34
  if pet_adequacy_result.save
@@ -41,7 +38,6 @@ module Renalware
41
38
  render :edit, locals: { pet_adequacy_result: pet_adequacy_result, patient: patient }
42
39
  end
43
40
  end
44
- # rubocop:enable Metrics/AbcSize
45
41
 
46
42
  def show
47
43
  render locals: { pet_adequacy_result: pet_adequacy_result, patient: patient }
@@ -34,7 +34,6 @@ module Renalware
34
34
  }
35
35
  end
36
36
 
37
- # rubocop:disable Metrics/AbcSize
38
37
  def create
39
38
  result = CreateRegime.new(patient: patient)
40
39
  .call(by: current_user, params: pd_regime_params)
@@ -49,7 +48,6 @@ module Renalware
49
48
  }
50
49
  end
51
50
  end
52
- # rubocop:enable Metrics/AbcSize
53
51
 
54
52
  def edit
55
53
  render :edit, locals: {
@@ -58,7 +56,6 @@ module Renalware
58
56
  }
59
57
  end
60
58
 
61
- # rubocop:disable Metrics/AbcSize
62
59
  def update
63
60
  result = ReviseRegime.new(pd_regime).call(by: current_user, params: pd_regime_params)
64
61
 
@@ -73,7 +70,6 @@ module Renalware
73
70
  }
74
71
  end
75
72
  end
76
- # rubocop:enable Metrics/AbcSize
77
73
 
78
74
  def show
79
75
  render :show, locals: {
@@ -129,8 +129,6 @@ module Renalware
129
129
  attribute :safe_to_use, Document::Enum, default: :Y
130
130
  end
131
131
  attribute :avf_avg_assessment, AvfAvgAssessment
132
-
133
- # rubocop:disable Metrics/AbcSize
134
132
  def error_messages
135
133
  [
136
134
  observations_before.errors.full_messages,
@@ -141,7 +139,6 @@ module Renalware
141
139
  hdf.errors.full_messages
142
140
  ].flatten.compact
143
141
  end
144
- # rubocop:enable Metrics/AbcSize
145
142
  end
146
143
  end
147
144
  end
@@ -16,7 +16,6 @@ class DatePickerInput < SimpleForm::Inputs::StringInput
16
16
  end
17
17
  end
18
18
 
19
- # rubocop:disable Metrics/AbcSize
20
19
  def input_column(_wrapper_options = {})
21
20
  html_options = input_html_options
22
21
  html_options[:class] ||= []
@@ -27,7 +26,6 @@ class DatePickerInput < SimpleForm::Inputs::StringInput
27
26
  template.concat @builder.text_field(attribute_name, html_options.merge(value: value))
28
27
  end
29
28
  end
30
- # rubocop:enable Metrics/AbcSize
31
29
 
32
30
  def icon_calendar
33
31
  "<span class='prefix'><i class='far fa-calendar'></i></span>".html_safe
@@ -28,12 +28,12 @@ module Renalware
28
28
  }
29
29
 
30
30
  # Because the database allows multiple current access profiles, this scope
31
- # needs to choose just one, otherwise queries that merge in this scope
31
+ # needs to choose just one, otherwise queries that merge in this scope
32
32
  # can have duplicates, or worse, broken pagination.
33
33
  scope :with_profile, lambda {
34
34
  joins(<<-SQL)
35
35
  left outer join (
36
- select distinct on (patient_id) * from access_profiles
36
+ select distinct on (patient_id) * from access_profiles
37
37
  where
38
38
  access_profiles.terminated_on is null
39
39
  and access_profiles.started_on <= current_date
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_dependency "renalware/pdf_friendly_validator"
3
4
  require_dependency "renalware/events"
4
5
 
5
6
  module Renalware
@@ -22,6 +23,8 @@ module Renalware
22
23
  validates :date_time, presence: true
23
24
  validates :event_type_id, presence: true
24
25
  validates :date_time, timeliness: { type: :datetime }
26
+ validates :notes, "renalware/pdf_friendly": true
27
+ validates :description, "renalware/pdf_friendly": true
25
28
 
26
29
  scope :ordered, -> { order(date_time: :desc, updated_at: :desc) }
27
30
 
@@ -10,8 +10,6 @@ module Renalware
10
10
  include StringLogging
11
11
  include Feeds::Job
12
12
  FILE_TO_EXTRACT_FROM_ARCHIVE = /epracmem.csv/.freeze
13
-
14
- # rubocop:disable Metrics/AbcSize
15
13
  # TODO: refactor
16
14
  def perform(file)
17
15
  logging_to_stringio(strio = StringIO.new)
@@ -27,7 +25,6 @@ module Renalware
27
25
  ensure
28
26
  file.update!(status: status, result: strio.string, time_taken: elapsed_ms)
29
27
  end
30
- # rubocop:enable Metrics/AbcSize
31
28
 
32
29
  private
33
30
 
@@ -11,8 +11,6 @@ module Renalware
11
11
  include Feeds::Job
12
12
 
13
13
  FILE_TO_EXTRACT_FROM_ARCHIVE = /^egpcur.csv$/.freeze
14
-
15
- # rubocop:disable Metrics/AbcSize
16
14
  def perform(file)
17
15
  logging_to_stringio(strio = StringIO.new)
18
16
  log "PrimaryCarePhysician count before update: #{primary_care_physician_count}"
@@ -27,7 +25,6 @@ module Renalware
27
25
  ensure
28
26
  file.update!(status: status, result: strio.string, time_taken: elapsed_ms)
29
27
  end
30
- # rubocop:enable Metrics/AbcSize
31
28
 
32
29
  private
33
30
 
@@ -20,7 +20,7 @@ module Renalware
20
20
  search.result
21
21
  end
22
22
 
23
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
23
+ # rubocop:disable Metrics/MethodLength
24
24
  def search
25
25
  @search ||= begin
26
26
  HD::Patient
@@ -39,7 +39,7 @@ module Renalware
39
39
  .ransack(params)
40
40
  end
41
41
  end
42
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
42
+ # rubocop:enable Metrics/MethodLength
43
43
 
44
44
  # Module to allow us to mixin ransackers
45
45
  module QueryablePatient
@@ -25,7 +25,6 @@ module Renalware
25
25
  Rails.logger.info "Compiling letter PDFs for batch #{batch.id} in folder #{dir}"
26
26
  end
27
27
 
28
- # rubocop:disable Metrics/AbcSize
29
28
  def call
30
29
  batch.status = :processing
31
30
  batch.save_by!(user)
@@ -38,7 +37,6 @@ module Renalware
38
37
  batch.status = :awaiting_printing
39
38
  batch.save_by!(user)
40
39
  end
41
- # rubocop:enable Metrics/AbcSize
42
40
 
43
41
  private
44
42
 
@@ -31,7 +31,7 @@ module Renalware
31
31
  class CodeGroup < ApplicationRecord
32
32
  include Accountable
33
33
  has_paper_trail(
34
- class_name: "Renalware::Pathology::Version",
34
+ class_name: "Renalware::Pathology::Version",
35
35
  on: [:create, :update, :destroy]
36
36
  )
37
37
  validates :name, presence: true, uniqueness: true
@@ -50,7 +50,7 @@ module Renalware
50
50
  group = CodeGroup.find_by(name: name)
51
51
  return [] if group.nil?
52
52
 
53
- group
53
+ group
54
54
  .observation_descriptions
55
55
  .order(subgroup: :asc, position_within_subgroup: :asc)
56
56
  end
@@ -31,14 +31,14 @@ module Renalware
31
31
  serialize :values, ObservationsJsonbSerializer
32
32
 
33
33
  # Select values frm the set where the code matches the code or array of codes
34
- # requested.
34
+ # requested.
35
35
  # When the code is not found in the set, return an empty hash for that code.
36
- # When the patient has no current_observation_set, return an empty hash for each code.
36
+ # When the patient has no current_observation_set, return an empty hash for each code.
37
37
  # We need to be sure to extend the HashWithIndifferentAccess returned from
38
38
  # #select with the ObservationSetMethods so a user can call eg {..}.hgb_date
39
39
  # or {..}.plt etc without error
40
40
  def values_for_codes(codes)
41
- hash = Array(codes).each_with_object(HashWithIndifferentAccess.new) do |code, hash|
41
+ hash = Array(codes).each_with_object(HashWithIndifferentAccess.new) do |code, hash|
42
42
  hash[code] = values[code] || CurrentObservationSet.null_values_hash
43
43
  end
44
44
  hash.extend(ObservationSetMethods)
@@ -54,7 +54,7 @@ module Renalware
54
54
  ObservationsJsonbSerializer.load(HashWithIndifferentAccess.new)
55
55
  end
56
56
 
57
- def values_for_codes(codes)
57
+ def values_for_codes(_codes)
58
58
  CurrentObservationSet.null_values_hash
59
59
  end
60
60
  end
@@ -13,7 +13,6 @@ module Renalware
13
13
  @regime = decorate(regime)
14
14
  end
15
15
 
16
- # rubocop:disable Metrics/AbcSize
17
16
  def call
18
17
  regime.overnight_volume = regime.calculated_overnight_volume
19
18
  regime.daily_volume = regime.calculated_daily_volume
@@ -21,7 +20,6 @@ module Renalware
21
20
  regime.glucose_volume_medium_strength = regime.volume_of_glucose_at_strength(:medium)
22
21
  regime.glucose_volume_high_strength = regime.volume_of_glucose_at_strength(:high)
23
22
  end
24
- # rubocop:enable Metrics/AbcSize
25
23
 
26
24
  private
27
25
 
@@ -73,7 +73,6 @@ module Renalware
73
73
 
74
74
  # Putting this here for now so all incomplete data criteria is all in one place.
75
75
  # Build an array of symbols for all missing data identified by the above query
76
- # rubocop:disable Metrics/AbcSize
77
76
  def self.missing_data_for(patient)
78
77
  renal_profile = Renal.cast_patient(patient).profile
79
78
  missing = []
@@ -85,7 +84,6 @@ module Renalware
85
84
  end
86
85
  missing
87
86
  end
88
- # rubocop:enable Metrics/AbcSize
89
87
 
90
88
  module QueryablePatient
91
89
  extend ActiveSupport::Concern
@@ -20,7 +20,6 @@ module Renalware
20
20
 
21
21
  private
22
22
 
23
- # rubocop:disable Metrics/AbcSize
24
23
  def update!(params)
25
24
  User.transaction do
26
25
  approve if can_approve?(params)
@@ -34,7 +33,6 @@ module Renalware
34
33
  rescue ActiveRecord::RecordInvalid
35
34
  false
36
35
  end
37
- # rubocop:enable Metrics/AbcSize
38
36
 
39
37
  def notify!
40
38
  notifications.each { |n| n.public_send(delivery_method) } if notifications.any?
@@ -23,7 +23,7 @@ module Renalware
23
23
  FileUtils.mv filepath, paths.archive.join(filepath.basename)
24
24
  next
25
25
  end
26
-
26
+
27
27
  logger.info "Processing: #{filepath}"
28
28
  import_surveys_from_file(filepath)
29
29
  end
@@ -38,7 +38,7 @@ module Renalware
38
38
  # This assumes filenames are unique across time, which they should be.
39
39
  # Note we match on the whole file path, so if the location of the folder changes
40
40
  # and we are presented with familiar files, then they will be imported again. Its unlikely
41
- # those two things will happen together though.
41
+ # those two things will happen together though.
42
42
  def already_imported?(filepath)
43
43
  TransmissionLog.exists?(file_path: filepath.to_s, status: :imported)
44
44
  end
@@ -46,7 +46,6 @@ module Renalware
46
46
  # Import all surverys (they will be for the same patient) in the XML file.
47
47
  # Note that #with_logging yields a block that will catch and save any error to
48
48
  # ukrdc_transmission_logs
49
- # rubocop:disable Metrics/AbcSize
50
49
  def import_surveys_from_file(file)
51
50
  # Important to create the log before we do anything that might cause an error
52
51
  # eg parse the xml etc.
@@ -64,7 +63,6 @@ module Renalware
64
63
  ensure
65
64
  FileUtils.mv file, paths.archive.join(file.basename)
66
65
  end
67
- # rubocop:enable Metrics/AbcSize
68
66
 
69
67
  def import_survey(survey_hash, patient)
70
68
  ImportSurvey.new(
@@ -32,7 +32,7 @@ module Renalware
32
32
  def generate_treatments
33
33
  PrepareTables.call
34
34
  Rails.logger.info "#{patient_scope.count} patients"
35
- patient_scope.find_each.with_index do |patient, index|
35
+ patient_scope.find_each.with_index do |patient, _index|
36
36
  print "\n#{patient.id}: "
37
37
  GenerateTimeline.new(patient).call
38
38
  # Start gargbage collection periodically to prevent server ram issues.
@@ -79,7 +79,7 @@ module Renalware
79
79
  create_treatment(regime, start_date, end_date)
80
80
  end
81
81
 
82
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
82
+ # rubocop:disable Metrics/MethodLength
83
83
  def create_treatment(regime, start_date, end_date)
84
84
  treatments << Treatment.create!(
85
85
  patient: patient,
@@ -99,7 +99,7 @@ module Renalware
99
99
  previous_treatment.update!(ended_on: start_date)
100
100
  end
101
101
  end
102
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
102
+ # rubocop:enable Metrics/MethodLength
103
103
 
104
104
  def treatments
105
105
  @treatments ||= []
@@ -92,7 +92,6 @@ module Renalware
92
92
  OpenSSL::HMAC.hexdigest(digest, key, id.to_s)
93
93
  end
94
94
 
95
-
96
95
  # We implement a simple can? method ion the use because in places we pass a current user
97
96
  # from an ActionView::Component to a partial, and in the specs the partial says it cannot
98
97
  # Example usage user.can?(:edit, letter)