# 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
