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>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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
|
||||
Reference in New Issue
Block a user