34 lines
680 B
Ruby
34 lines
680 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe Gitlab::RackAttack::UserAllowlist do
|
|
using RSpec::Parameterized::TableSyntax
|
|
|
|
subject { described_class.new(input) }
|
|
|
|
where(:input, :elements) do
|
|
nil | []
|
|
'' | []
|
|
'123' | [123]
|
|
'123,456' | [123, 456]
|
|
'123,foobar, 456,' | [123, 456]
|
|
end
|
|
|
|
with_them do
|
|
it 'has the expected elements' do
|
|
expect(subject).to contain_exactly(*elements)
|
|
end
|
|
|
|
it 'implements empty?' do
|
|
expect(subject.empty?).to eq(elements.empty?)
|
|
end
|
|
|
|
it 'implements include?' do
|
|
unless elements.empty?
|
|
expect(subject).to include(elements.first)
|
|
end
|
|
end
|
|
end
|
|
end
|