1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
# frozen_string_literal: true
# rubocop:todo all
require 'lite_spec_helper'
class ValidatorHost
include Mongo::Address::Validator
end
describe Mongo::Address::Validator do
let(:host) { ValidatorHost.new }
describe '#validate_address_str!' do
shared_examples_for 'raises InvalidAddress' do
it 'raises InvalidAddress' do
expect do
host.validate_address_str!(address_str)
end.to raise_error(Mongo::Error::InvalidAddress)
end
end
shared_examples_for 'passes validation' do
it 'passes validation' do
expect do
host.validate_address_str!(address_str)
end.not_to raise_error
end
end
context 'leading dots' do
let(:address_str) { '.foo.bar.com' }
it_behaves_like 'raises InvalidAddress'
end
context 'trailing dots' do
let(:address_str) { 'foo.bar.com.' }
it_behaves_like 'raises InvalidAddress'
end
context 'runs of multiple dots' do
let(:address_str) { 'foo..bar.com' }
it_behaves_like 'raises InvalidAddress'
end
context 'no dots' do
let(:address_str) { 'foo' }
it_behaves_like 'passes validation'
end
end
end
|