diff --git a/app/models/tenant.rb b/app/models/tenant.rb index 5d8068cfc..ebfe0fdb4 100644 --- a/app/models/tenant.rb +++ b/app/models/tenant.rb @@ -2,7 +2,8 @@ class Tenant < ApplicationRecord validates :schema, presence: true, uniqueness: true, - exclusion: { in: ->(*) { excluded_subdomains }} + exclusion: { in: ->(*) { excluded_subdomains }}, + format: { with: URI::DEFAULT_PARSER.regexp[:HOST] } validates :name, presence: true, uniqueness: true after_create :create_schema diff --git a/spec/models/tenant_spec.rb b/spec/models/tenant_spec.rb index 497ba4b5f..f22ef0d46 100644 --- a/spec/models/tenant_spec.rb +++ b/spec/models/tenant_spec.rb @@ -25,6 +25,16 @@ describe Tenant do end end + it "is valid with nested subdomains" do + tenant.schema = "multiple.sub.domains" + expect(tenant).to be_valid + end + + it "is not valid with an invalid subdomain" do + tenant.schema = "my sub domain" + expect(tenant).not_to be_valid + end + it "is not valid without a name" do tenant.name = "" expect(tenant).not_to be_valid