# frozen_string_literal: true

require 'rails_helper'

describe UserArchivedMessage do
  fab!(:user) { Fabricate(:user) }
  fab!(:user_2) { Fabricate(:user) }

  fab!(:private_message) do
    create_post(
      user: user,
      skip_validations: true,
      target_usernames: [user_2.username, user.username].join(","),
      archetype: Archetype.private_message
    ).topic
  end

  describe '.move_to_inbox!' do
    it 'moves topic back to inbox correctly' do
      UserArchivedMessage.archive!(user.id, private_message)

      expect do
        UserArchivedMessage.move_to_inbox!(user.id, private_message)
      end.to change { private_message.message_archived?(user) }.from(true).to(false)
    end

    it 'does not move archived muted messages back to inbox' do
      UserArchivedMessage.archive!(user.id, private_message)

      expect(private_message.message_archived?(user)).to eq(true)

      TopicUser.change(user.id, private_message.id, notification_level: TopicUser.notification_levels[:muted])
      UserArchivedMessage.move_to_inbox!(user.id, private_message)

      expect(private_message.message_archived?(user)).to eq(true)
    end
  end

end