Project

General

Profile

Feature #42630 » Add-handling-reactions-with-missing-user-associations.patch

Katsuya HIDAKA, 2025-05-11 10:56

View differences:

app/models/reaction.rb
57 57

  
58 58
      m[reaction.reactable_id].then do |detail|
59 59
        detail.reaction_count += 1
60
        detail.visible_users << reaction.user if visible_user_ids.include?(reaction.user.id)
60
        detail.visible_users << reaction.user if visible_user_ids.include?(reaction.user&.id)
61 61
        detail.user_reaction = reaction if reaction.user == user
62 62
      end
63 63
    end
test/unit/reaction_test.rb
117 117
      result[issue.id].visible_users.sort_by(&:id)
118 118
    )
119 119
  end
120

  
121
  # When the user data associated with a reaction is missing for some reason (data inconsistency)
122
  test 'build_detail_map_for avoids errors when reactions lack associated users' do
123
    # Reaction (id=4) is associated with Journal (id=1)
124
    reactions(:reaction_004).user.delete
125

  
126
    result = Reaction.build_detail_map_for([journals(:journals_001)], users(:users_001))
127

  
128
    assert_equal(
129
      {
130
        1 => Reaction::Detail.new(
131
          reaction_count: 1,
132
          visible_users: [],
133
          user_reaction: nil
134
        )
135
      },
136
      result
137
    )
138
  end
120 139
end
(17-17/26)