discourse/spec/lib/validators/url_validator_spec.rb
Jarek Radosz 45cc16098d
DEV: Move spec/components to spec/lib (#15987)
Lib specs were inexplicably split into two directories (`lib` and `components`)

This moves them all into `lib`.
2022-02-18 19:41:54 +01:00

38 lines
1021 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
require 'validators/topic_title_length_validator'
RSpec.describe UrlValidator do
let(:record) { Fabricate.build(:user_profile, user: Fabricate.build(:user)) }
let(:validator) { described_class.new(attributes: :website) }
subject(:validate) { validator.validate_each(record, :website, record.website) }
[
"http://https://google.com",
"http://google/",
"ftp://ftp.google.com",
"http:///what.is.this",
'http://meta.discourse.org TEST'
].each do |invalid_url|
it "#{invalid_url} should not be valid" do
record.website = invalid_url
validate
expect(record.errors[:website]).to be_present
end
end
[
"http://discourse.productions",
"https://google.com",
'http://xn--nw2a.xn--j6w193g/',
"http://見.香港/",
].each do |valid_url|
it "#{valid_url} should be valid" do
record.website = valid_url
validate
expect(record.errors[:website]).to_not be_present
end
end
end