Files
sure/test/models/demo/generator_test.rb
T

58 lines
1.8 KiB
Ruby

require "test_helper"
class Demo::GeneratorTest < ActiveSupport::TestCase
setup do
@family = Family.create!(name: "Demo Family")
@admin_user = create_user!(@family, "demo-admin@example.com")
end
test "monitoring api key creation reassigns stale demo monitoring key owned by another user" do
stale_family = Family.create!(name: "Old Demo Family")
stale_user = create_user!(stale_family, "old-demo-admin@example.com")
stale_key = stale_user.api_keys.create!(
name: "monitoring",
key: ApiKey::DEMO_MONITORING_KEY,
scopes: [ "read" ],
source: "monitoring"
)
monitoring_key = Demo::Generator.new.send(:create_monitoring_api_key!, @family)
assert_equal stale_key.id, monitoring_key.id
assert_equal @admin_user, monitoring_key.user
assert_equal "monitoring", monitoring_key.source
assert_equal [ "read" ], monitoring_key.scopes
assert_equal 1, ApiKey.where(display_key: ApiKey::DEMO_MONITORING_KEY).count
end
test "monitoring api key creation reuses the current admin user's key" do
existing_key = @admin_user.api_keys.create!(
name: "monitoring",
key: ApiKey::DEMO_MONITORING_KEY,
scopes: [ "read" ],
source: "monitoring"
)
monitoring_key = Demo::Generator.new.send(:create_monitoring_api_key!, @family)
assert_equal existing_key, monitoring_key
assert_equal 1, ApiKey.where(display_key: ApiKey::DEMO_MONITORING_KEY).count
end
private
def create_user!(family, email)
family.users.create!(
first_name: "Demo",
last_name: "Admin",
email: email,
password: "password123",
role: :admin,
onboarded_at: Time.current,
ai_enabled: true,
show_sidebar: true,
show_ai_sidebar: true,
ui_layout: :dashboard
)
end
end