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