Project

General

Profile

Download (1.13 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'

class AuditAssociationsTest < ActiveSupport::TestCase
setup do
@user = FactoryBot.build(:user)
end

let (:role) { FactoryBot.create(:role) }

test "Should audit associations on creation" do
@user.role_ids = [role.id]
@user.save!

audit = @user.audits.last
assert_equal [role.id], audit.audited_changes['role_ids']
assert_equal 'create', audit.action
end

test "Should audit associations on update" do
@user.save!
assert_empty @user.audits.last.audited_changes['role_ids']

@user.role_ids = [role.id]
@user.save!

audit = @user.audits.last
assert_equal [[], [role.id]], audit.audited_changes['role_ids']
assert_equal 'update', audit.action
end

test "Should audit associations on destruction" do
@user.role_ids = [role.id]
@user.save!
assert_equal [role.id], @user.audits.last.audited_changes['role_ids']

@user.destroy!

audit = @user.audits.last
# The default role is added in after_save to the user
assert_equal [Role.default.id, role.id].sort, audit.audited_changes['role_ids'].sort
assert_equal 'destroy', audit.action
end
end
(1-1/14)