mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-04 15:24:23 +01:00
87 lines
2.4 KiB
Ruby
87 lines
2.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'test_helper'
|
|
|
|
class CreatePlanTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
admin = User.with_role(:admin).first
|
|
login_as(admin, scope: :user)
|
|
end
|
|
|
|
test 'create a transversal partner plan' do
|
|
plans_count = Plan.count
|
|
|
|
post '/api/plans',
|
|
params: {
|
|
plan: {
|
|
base_name: 'Abonnement test',
|
|
type: 'PartnerPlan',
|
|
group_id: 'all',
|
|
plan_category_id: nil,
|
|
interval: 'week',
|
|
interval_count: 2,
|
|
amount: 10,
|
|
ui_weight: 0,
|
|
is_rolling: true,
|
|
monthly_payment: true,
|
|
description: 'lorem ipsum dolor sit amet',
|
|
partner_id: 6,
|
|
plan_file_attributes: {
|
|
attachment: fixture_file_upload('document.pdf')
|
|
}
|
|
}
|
|
}.to_json,
|
|
headers: default_headers
|
|
|
|
# Check response format & status
|
|
assert_equal 201, response.status, response.body
|
|
assert_match Mime[:json].to_s, response.content_type
|
|
|
|
# Check the created plans
|
|
res = json_response(response.body)
|
|
assert_equal 2, res[:plan_ids].count
|
|
assert_equal plans_count + 2, Plan.count
|
|
|
|
plans = Plan.where(name: 'Abonnement test')
|
|
assert(plans.all? { |plan| !plan.plan_file.attachment.nil? })
|
|
assert(plans.all? { |plan| plan.type == 'PartnerPlan' })
|
|
assert(plans.all? { |plan| plan.partner_id == 6 })
|
|
assert(plans.all?(&:is_rolling))
|
|
end
|
|
|
|
test 'create a simple plan' do
|
|
plans_count = Plan.count
|
|
|
|
post '/api/plans',
|
|
params: {
|
|
plan: {
|
|
base_name: 'Abonnement simple',
|
|
type: 'Plan',
|
|
group_id: 1,
|
|
plan_category_id: nil,
|
|
interval: 'month',
|
|
interval_count: 1,
|
|
amount: 40
|
|
}
|
|
}.to_json,
|
|
headers: default_headers
|
|
|
|
# Check response format & status
|
|
assert_equal 201, response.status, response.body
|
|
assert_match Mime[:json].to_s, response.content_type
|
|
|
|
# Check the created plan
|
|
res = json_response(response.body)
|
|
assert_equal plans_count + 1, Plan.count
|
|
|
|
plan = Plan.find(res[:plan_ids][0])
|
|
assert_not_nil plan
|
|
assert_equal 'Abonnement simple', plan.base_name
|
|
assert_not plan.is_rolling
|
|
assert_equal 1, plan.group_id
|
|
assert_equal 'month', plan.interval
|
|
assert_equal 1, plan.interval_count
|
|
assert_equal 4000, plan.amount
|
|
end
|
|
end
|