I'm learning to write specs for my code and I'm still new to it. Trying to write specs / SharedExamples for my Model concerns, but I don't understand how to write it as I find this one very complicated.
If someone could help me or show me how to write spec for codes like these would be very helpful. Below is my concern AddStakeholder.
module AddStakeholder
  extend ActiveSupport::Concern
  included do
    before_validation -> { add_stakeholders }
  end
  private
  def add_stakeholders
    return unless self.stakeholder
    company = if self.is_a?(Certificate)
                self.round ? self.round.company : self.company
              else
                self.company
              end
    existing_stakeholder = company.stakeholders.find_by_email(self.stakeholder.email)
    if existing_stakeholder.present?
      if self.stakeholder.name == existing_stakeholder.name
        self.stakeholder = existing_stakeholder
      else
        self.stakeholder.company = company
      end
    else
      self.stakeholder.company = company
    end
  end
end
 
                        
There's not enough information in your code snippet to prepare a full example but it would look somewhat along the lines of: