# frozen_string_literal: true
require "trust_level_repo"
class TrustLevelRepoTest < Minitest::Test
def test_manual_tomb
trust_level = TrustLevelRepo.new(
db: FakeDB.new,
redis: FakeRedis.new(
"jmp_customer_trust_level-test" => "Tomb"
)
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Tomb, trust_level
end
em :test_manual_tomb
def test_manual_basement
trust_level = TrustLevelRepo.new(
db: FakeDB.new,
redis: FakeRedis.new(
"jmp_customer_trust_level-test" => "Basement"
)
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Basement, trust_level
end
em :test_manual_basement
def test_manual_customer
trust_level = TrustLevelRepo.new(
db: FakeDB.new,
redis: FakeRedis.new(
"jmp_customer_trust_level-test" => "Customer"
)
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Customer, trust_level
end
em :test_manual_customer
def test_manual_paragon
trust_level = TrustLevelRepo.new(
db: FakeDB.new,
redis: FakeRedis.new(
"jmp_customer_trust_level-test" => "Paragon"
)
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Paragon, trust_level
end
em :test_manual_paragon
def test_manual_unknown
trust_level = TrustLevelRepo.new(
db: FakeDB.new,
redis: FakeRedis.new(
"jmp_customer_trust_level-test" => "UNKNOWN"
)
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Customer, trust_level
end
em :test_manual_unknown
def test_new_customer
trust_level = TrustLevelRepo.new(
db: FakeDB.new,
redis: FakeRedis.new
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Basement, trust_level
end
em :test_new_customer
def test_regular_customer
trust_level = TrustLevelRepo.new(
db: FakeDB.new(["test"] => [{ "settled_amount" => 15 }]),
redis: FakeRedis.new
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Customer, trust_level
end
em :test_regular_customer
def test_settled_customer
trust_level = TrustLevelRepo.new(
db: FakeDB.new(["test"] => [{ "settled_amount" => 61 }]),
redis: FakeRedis.new
).find(OpenStruct.new(customer_id: "test", plan_name: "usd")).sync
assert_kind_of TrustLevel::Paragon, trust_level
end
em :test_settled_customer
end