Files
sure/test/controllers/admin/users_controller_test.rb
Juan José Mata 7fce804c89 Group users by family in /admin/users (#1139)
* Display user admins grouped

* Start family/groups collapsed

* Sort by number of transactions

* Display subscription status

* Fix tests

* Use Stimulus
2026-03-06 23:38:25 +01:00

50 lines
1.7 KiB
Ruby

require "test_helper"
class Admin::UsersControllerTest < ActionDispatch::IntegrationTest
setup do
sign_in users(:sure_support_staff)
end
test "index groups users by family sorted by transaction count" do
family_with_more = users(:family_admin).family
family_with_fewer = users(:empty).family
account = Account.create!(family: family_with_more, name: "Test", balance: 0, currency: "USD", accountable: Depository.new)
3.times { |i| account.entries.create!(name: "Txn #{i}", date: Date.current, amount: 10, currency: "USD", entryable: Transaction.new) }
get admin_users_url
assert_response :success
body = response.body
more_idx = body.index(family_with_more.name)
fewer_idx = body.index(family_with_fewer.name)
assert_not_nil more_idx
assert_not_nil fewer_idx
assert_operator more_idx, :<, fewer_idx,
"Family with more transactions should appear before family with fewer"
end
test "index shows subscription status for families" do
family = users(:family_admin).family
family.subscription&.destroy
Subscription.create!(
family_id: family.id,
status: :active,
stripe_id: "cus_test_#{family.id}"
)
get admin_users_url
assert_response :success
assert_match(/Active/, response.body, "Page should show subscription status for families with active subscriptions")
end
test "index shows no subscription label for families without subscription" do
users(:family_admin).family.subscription&.destroy
get admin_users_url
assert_response :success
assert_match(/No subscription/, response.body, "Page should show 'No subscription' for families without one")
end
end