Files
eminuxCRM/test/models/user_management_test.rb
T
eminuxandCursor c4e5f289cf
CI / scan_ruby (push) Failing after 11m20s
CI / scan_js (push) Successful in 10m35s
CI / lint (push) Has been cancelled
Commit iniziale di eminuxCRM: CRM Rails con pipeline, campagne email e Docker.
Include autenticazione, progetti isolati, mail marketing HTML con SMTP, test A/B e editor WYSIWYG.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 23:01:48 +02:00

52 lines
1.4 KiB
Ruby

require "test_helper"
class UserManagementTest < ActiveSupport::TestCase
test "cannot deactivate the last active admin" do
admin = users(:admin)
assert admin.last_active_admin?
assert_not admin.can_be_deactivated?
admin.active = false
assert_not admin.valid?
assert_includes admin.errors[:base].join, "almeno un amministratore attivo"
end
test "cannot demote the last active admin" do
admin = users(:admin)
admin.role = "user"
assert_not admin.valid?
assert_includes admin.errors[:base].join, "almeno un amministratore attivo"
end
test "can deactivate seed admin when another admin exists" do
other = User.create!(
email: "second-admin@example.com",
first_name: "Second",
last_name: "Admin",
role: "admin",
password: "password123",
password_confirmation: "password123",
active: true
)
admin = users(:admin)
assert_not admin.last_active_admin?
assert admin.can_be_deactivated?
assert admin.update(active: false)
assert_not admin.reload.active?
assert other.reload.active?
end
test "cannot destroy the last active admin" do
admin = users(:admin)
assert_not admin.destroy
assert admin.errors[:base].join.include?("unico amministratore attivo") || User.exists?(admin.id)
end
test "can destroy a regular user" do
marco = users(:marco)
assert marco.destroy
assert_not User.exists?(marco.id)
end
end