mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 14:31:25 +00:00
* Display user admins grouped * Start family/groups collapsed * Sort by number of transactions * Display subscription status * Fix tests * Use Stimulus
50 lines
1.7 KiB
Ruby
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
|