# require 'rails_helper' # # describe 'multisite' do # # class DBNameMiddleware # def initialize(app, config = {}) # @app = app # end # # def call(env) # # note current_db is already being ruined on boot cause its not multisite # [200, {}, [RailsMultisite::ConnectionManagement.current_hostname]] # end # end # # let :session do # RailsMultisite::ConnectionManagement.config_filename = "spec/fixtures/multisite/two_dbs.yml" # RailsMultisite::ConnectionManagement.load_settings! # # stack = ActionDispatch::MiddlewareStack.new # stack.use RailsMultisite::ConnectionManagement, RailsMultisite::DiscoursePatches.config # stack.use DBNameMiddleware # # routes = ActionDispatch::Routing::RouteSet.new # stack.build(routes) # end # # it "should always allow /srv/status through" do # headers = { # "HTTP_HOST" => "unknown.com", # "REQUEST_METHOD" => "GET", # "PATH_INFO" => "/srv/status", # "rack.input" => StringIO.new # } # # code, _, body = session.call(headers) # expect(code).to eq(200) # expect(body.join).to eq("test.localhost") # end # # it "should 404 on unknown routes" do # headers = { # "HTTP_HOST" => "unknown.com", # "REQUEST_METHOD" => "GET", # "PATH_INFO" => "/topics", # "rack.input" => StringIO.new # } # # code, _ = session.call(headers) # expect(code).to eq(404) # end # # it "should hit correct site elsewise" do # # headers = { # "HTTP_HOST" => "test2.localhost", # "REQUEST_METHOD" => "GET", # "PATH_INFO" => "/topics", # "rack.input" => StringIO.new # } # # code, _, body = session.call(headers) # expect(code).to eq(200) # expect(body.join).to eq("test2.localhost") # end # # end