# frozen_string_literal: true

require "rails_helper"

describe Notification, type: :model do
  describe "associations" do
    it { should belong_to(:recipient) }
    it { should belong_to(:target) }
  end

  describe "before_destroy" do
    let(:user) { FactoryBot.create(:user) }
    let(:answer) { FactoryBot.create(:answer, user: FactoryBot.create(:user)) }

    it "does not fail if the user wants to delete their account" do
      Notification::QuestionAnswered.create(recipient: user, target: answer)

      # this deletes the User record and enqueues the deletion of all
      # associated records in sidekiq
      user.destroy!

      # so let's drain the queues
      expect { Sidekiq::Worker.drain_all }.not_to raise_error
    end
  end
end