151 lines
3.6 KiB
Ruby
151 lines
3.6 KiB
Ruby
require "rails_helper"
|
|
|
|
describe AppHost do
|
|
describe "#domain" do
|
|
it "returns the domain set in the environment" do
|
|
env = { "DOMAIN" => "test-domain.com" }
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain.domain).to eq("test-domain.com")
|
|
end
|
|
|
|
context "when domain is not set in the environment" do
|
|
it "returns the default domain for the development environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain.domain).to eq("localhost")
|
|
end
|
|
|
|
it "returns the default domain for the test environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "test")
|
|
|
|
expect(app_domain.domain).to eq("localhost")
|
|
end
|
|
|
|
it "returns the default domain for the production environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "production")
|
|
|
|
expect(app_domain.domain).to eq("mesuite.ai")
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#port" do
|
|
it "returns the port set in the environment" do
|
|
env = { "WEB_PORT" => 4000 }
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain.port).to eq(4000)
|
|
end
|
|
|
|
context "when port is not set in the environment" do
|
|
it "returns the port domain for the development environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain.port).to eq(3000)
|
|
end
|
|
|
|
it "returns the default port for the test environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "test")
|
|
|
|
expect(app_domain.port).to eq(31337)
|
|
end
|
|
|
|
it "returns the default port for the production environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "production")
|
|
|
|
expect(app_domain.port).to eq(nil)
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#domain_with_port" do
|
|
it "returns the combination of domain with the port" do
|
|
env = { "DOMAIN" => "test-domain.com", "WEB_PORT" => 4000 }
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain.domain_with_port).to eq("test-domain.com:4000")
|
|
end
|
|
|
|
context "when port is not specified at all" do
|
|
it "omits the port portion of the URL" do
|
|
env = { "DOMAIN" => "test-domain.com" }
|
|
|
|
app_domain = AppHost.new(env, "production")
|
|
|
|
expect(app_domain.domain_with_port).to eq("test-domain.com")
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#use_ssl" do
|
|
it "returns true if the value set in the environment" do
|
|
env = { "USE_SSL" => "true" }
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain).to be_using_ssl
|
|
end
|
|
|
|
context "when the value is not set in the environment" do
|
|
it "returns the default value for the development environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "development")
|
|
|
|
expect(app_domain).not_to be_using_ssl
|
|
end
|
|
|
|
it "returns the default value for the test environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "test")
|
|
|
|
expect(app_domain).not_to be_using_ssl
|
|
end
|
|
|
|
it "returns the default value for the production environment" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env, "production")
|
|
|
|
expect(app_domain).to be_using_ssl
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
describe "#protocol" do
|
|
it "returns 'https' when using SSL" do
|
|
env = { "USE_SSL" => true }
|
|
|
|
app_domain = AppHost.new(env)
|
|
|
|
expect(app_domain.protocol).to eq :https
|
|
end
|
|
|
|
it "returns 'http's when not using SSL" do
|
|
env = {}
|
|
|
|
app_domain = AppHost.new(env)
|
|
|
|
expect(app_domain.protocol).to eq :http
|
|
end
|
|
end
|
|
end
|