Advertisement
johnbarbosar

spec/spec_helper.rb

Feb 16th, 2021
777
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. RACK_ENV = 'test'.freeze unless defined?(RACK_ENV)
  2.  
  3. if ENV['TEST_COVERAGE']
  4. require 'simplecov'
  5.  
  6. SimpleCov.start do
  7. add_filter '/config/'
  8. add_filter '/spec/'
  9. add_group 'Panel', 'iwinpanel'
  10. add_group 'Microsite', 'microsite'
  11. add_group 'Admin', 'iwinadmin'
  12. add_group 'API', 'iwinapi'
  13.  
  14. add_group 'Models' do |f|
  15. (f.filename =~ %r{models/}).nil?
  16. end
  17. add_group 'Controllers' do |f|
  18. (f.filename =~ %r{/controllers/}).nil?
  19. end
  20. add_group 'Helpers' do |f|
  21. (f.filename =~ %r{/helpers/}).nil?
  22. end
  23. add_group 'Lib', 'lib'
  24. end
  25. end
  26.  
  27. require File.expand_path(File.dirname(__FILE__) + '/../config/boot')
  28. Dir['./spec/support/**/*.rb'].each { |f| require f }
  29. require 'pry'
  30. require 'omniauth_helper'
  31. require 'database_cleaner'
  32. require 'stub_helper'
  33. require 'sidekiq/testing'
  34. Sidekiq::Logging.logger = Logger.new(Padrino.root("log/sidekiq.#{RACK_ENV}.log"))
  35. Sidekiq::Logging.logger.level = Logger::WARN
  36. # require 'sinatra_helper'
  37.  
  38. Dentaku.enable_ast_cache!
  39.  
  40. FAST_TEST = (ENV['FAST_TEST'] == '1')
  41. SKIP_ACCESS_TEST = FAST_TEST ? :skip : nil
  42.  
  43. BCrypt::Engine.cost = 1
  44.  
  45. RSpec.configure do |conf|
  46. conf.include Rack::Test::Methods
  47. conf.include RSpec::Padrino
  48. conf.include AuthHelpers
  49. conf.include StubHelpers
  50.  
  51. conf.before :suite do
  52. DatabaseCleaner.orm = 'mongoid'
  53. DatabaseCleaner.strategy = 'truncation'
  54. DatabaseCleaner[:mongoid].strategy = :truncation
  55. DatabaseCleaner.clean_with(:truncation)
  56. Sidekiq::Testing.fake!
  57. OmniAuth.config.mock_auth[:facebook] = nil
  58.  
  59. # Magent.sync_mode = true
  60. collections = Set.new
  61. Mongoid.models.each do |klass|
  62. tries = 0
  63. begin
  64. klass.create_indexes
  65. tries = 0
  66. rescue Mongo::Error::OperationFailure => _e
  67. klass.remove_indexes
  68. if tries == 0
  69. tries += 1
  70. retry
  71. end
  72. end
  73. collections << klass.collection.name
  74. end
  75. end
  76.  
  77. conf.around(:each) do |example|
  78. DatabaseCleaner.cleaning do
  79. example.run
  80. end
  81. end
  82.  
  83. conf.before :each do
  84. allow_any_instance_of(ImagesUploader).to receive(:store!)
  85. allow_any_instance_of(FileUploader).to receive(:store!)
  86. allow_any_instance_of(Koala::Facebook::API).to receive(:api).and_return({})
  87. allow(IwinIcon).to receive(:generate).and_return true
  88.  
  89. messages = double('mandrill messages')
  90. allow(messages).to receive(:send_template).and_return(true)
  91. allow_any_instance_of(Mandrill::API).to receive(:messages).and_return(messages)
  92.  
  93. templates = double(
  94. 'mandrill templates',
  95. update: true,
  96. add: true
  97. )
  98.  
  99. allow_any_instance_of(Mandrill::API).to receive(:templates).and_return(templates)
  100.  
  101. allow(IwinApp).to receive(:deliver)
  102. allow(IwinPanel).to receive(:deliver)
  103. allow(Secretary).to receive(:post_to_sns).with(anything, anything)
  104. allow_any_instance_of(Participation).to receive(:setup_credentials)
  105. allow_any_instance_of(MailchimpClient).to receive(:do_request).and_return(true)
  106. allow_any_instance_of(AldeamoClient).to receive(:post).and_return(true)
  107.  
  108. I18n.locale = 'es'
  109. Role.create_defaults
  110.  
  111. header 'Host', ENV['SITE_DOMAIN']
  112.  
  113. allow_any_instance_of(Koala::Facebook::API).to receive(:get_connection).with('me', 'friends', fields: 'id,name')
  114. .and_return([])
  115. end
  116.  
  117. conf.after :each do
  118. Timecop.return
  119. Event.destroy_all
  120. # GeoInfo.reset_instance
  121. end
  122. end
  123.  
  124. def app(app = nil, &blk)
  125. @app ||= block_given? ? app.instance_eval(&blk) : app
  126. @app ||= Padrino.application
  127. end
  128.  
  129. Fabrication.configure do |config|
  130. config.fabricator_path = 'spec/fabricators'
  131. end
  132.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement