test_helper.rb

 1# frozen_string_literal: true
 2
 3require "simplecov"
 4SimpleCov.start do
 5	add_filter "/test/"
 6	enable_coverage :branch
 7end
 8
 9require "em_promise"
10require "fiber"
11require "minitest/autorun"
12require "rantly/minitest_extensions"
13require "webmock/minitest"
14begin
15	require "pry-rescue/minitest"
16	require "pry-reload"
17
18	module Minitest
19		class Test
20			alias old_capture_exceptions capture_exceptions
21			def capture_exceptions
22				old_capture_exceptions do
23					yield
24				rescue Minitest::Skip => e
25					failures << e
26				end
27			end
28		end
29	end
30rescue LoadError
31	# Just helpers for dev, no big deal if missing
32	nil
33end
34
35CONFIG = {
36	sgx: "sgx",
37	component: {
38		jid: "component"
39	},
40	activation_amount: 1,
41	plans: [
42		{
43			name: "test_usd",
44			currency: :USD
45		},
46		{
47			name: "test_bad_currency",
48			currency: :BAD
49		}
50	],
51	braintree: {
52		merchant_accounts: {
53			USD: "merchant_usd"
54		}
55	},
56	credit_card_url: ->(*) { "http://creditcard.example.com" }
57}.freeze
58
59BLATHER = Class.new {
60	def <<(*); end
61}.new.freeze
62
63class Matching
64	def initialize(&block)
65		@block = block
66	end
67
68	def ===(other)
69		@block.call(other)
70	end
71end
72
73module Minitest
74	class Test
75		def self.property(m, &block)
76			define_method("test_#{m}") do
77				property_of(&block).check { |args| send(m, *args) }
78			end
79		end
80
81		def self.em(m)
82			alias_method "raw_#{m}", m
83			define_method(m) do
84				EM.run do
85					Fiber.new {
86						begin
87							send("raw_#{m}")
88						ensure
89							EM.stop
90						end
91					}.resume
92				end
93			end
94		end
95	end
96end