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	plans: [
41		{
42			name: "test_usd",
43			currency: :USD
44		},
45		{
46			name: "test_bad_currency",
47			currency: :BAD
48		}
49	],
50	braintree: {
51		merchant_accounts: {
52			USD: "merchant_usd"
53		}
54	}
55}.freeze
56
57BLATHER = Class.new {
58	def <<(*); end
59}.new.freeze
60
61module Minitest
62	class Test
63		def self.property(m, &block)
64			define_method("test_#{m}") do
65				property_of(&block).check { |args| send(m, *args) }
66			end
67		end
68
69		def self.em(m)
70			alias_method "raw_#{m}", m
71			define_method(m) do
72				EM.run do
73					Fiber.new {
74						begin
75							send("raw_#{m}")
76						ensure
77							EM.stop
78						end
79					}.resume
80				end
81			end
82		end
83	end
84end