Access Sinatra settings from Minitest test_helper

336 Views Asked by At

I am trying to access a variable defined in Sinatra settings from my test helper with no luck. This is my code:

Main app:

require 'sinatra'

set :foo, 'bar'

# use settings.foo in the routes

tests/test_helper.rb

ENV['RACK_ENV'] = 'test'

require 'minitest/autorun'
require 'rack/test'

module Minitest
  class Spec
    include Rack::Test::Methods

    def app
      Sinatra::Application
    end

    before do
      # do something with settings.foo
    end
  end
end

I have tried Sinatra::Application.settings.foo and also app.settings.foo but none work.

I have also tried adding a helper method like the one below:

lib/helpers/settings_helper.rb

module SettingsHelper
  def foo
    settings.foo
  end
end

helpers SettingsHelper

This works inside app, but again doesn't work inside test_helper. I tried requiring settings_helper.rb in test_helper. Also added an include. None of this worked.

Does anybody know what am I doing wrong?

Happy holidays

1

There are 1 best solutions below

0
On

Not sure if this will work with a classic style app. But with a modular app you can do MyApp.set :foo, 'bar'. So you could try Sinatra::Application.set :foo, 'bar'

Hope this helps.