require 'rails_helper'

RSpec.describe AuditoriaLog, type: :model do
  describe '.registrar' do
    it 'cria um log com os dados informados' do
      user = create(:admin)
      expect {
        AuditoriaLog.registrar(user: user, acao: :login, entidade: 'User', entidade_id: user.id)
      }.to change(AuditoriaLog, :count).by(1)

      log = AuditoriaLog.last
      expect(log.acao).to eq('login')
      expect(log.entidade).to eq('User')
      expect(log.user_id).to eq(user.id)
    end

    it 'não levanta exceção quando a gravação falha (apenas loga)' do
      allow(AuditoriaLog).to receive(:create!).and_raise(StandardError, 'boom')
      expect {
        AuditoriaLog.registrar(user: nil, acao: :login, entidade: 'User')
      }.not_to raise_error
    end
  end
end
