1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/test/integration/credits/user_info_test.rb
2023-03-22 10:58:22 +01:00

48 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'test_helper'
module Credits; end
class Credits::UserInfoTest < ActionDispatch::IntegrationTest
def setup
@user_without_subscription = User.find_by(username: 'lseguin')
@user_with_subscription = User.find_by(username: 'kdumas')
end
test 'user fetch her credits info' do
login_as(@user_with_subscription, scope: :user)
get "/api/credits/user/#{@user_with_subscription.id}/Machine"
# Check response format & status
assert_equal 200, response.status
assert_match Mime[:json].to_s, response.content_type
# Check the correct credits was returned
credits = json_response(response.body)
assert_equal @user_with_subscription.subscribed_plan.credits.where(creditable_type: 'Machine').count,
credits.length,
'not all credits were returned'
end
test 'user without credits fetch his credits info' do
login_as(@user_without_subscription, scope: :user)
get "/api/credits/user/#{@user_without_subscription.id}/Machine"
# Check response format & status
assert_equal 200, response.status
assert_match Mime[:json].to_s, response.content_type
# Check the correct credits was returned
credits = json_response(response.body)
assert_equal 0, credits.length, 'unexpected credits returned'
end
test 'user tries to fetch credits info from another user' do
login_as(@user_without_subscription, scope: :user)
get "/api/credits/user/#{@user_with_subscription.id}/Machine"
assert_equal 403, response.status
end
end