diff options
| author | Ash McKenzie <amckenzie@gitlab.com> | 2018-07-26 17:47:13 +1000 |
|---|---|---|
| committer | Ash McKenzie <amckenzie@gitlab.com> | 2018-07-30 14:13:42 +1000 |
| commit | 28ff59405111209bbf5cd6cb59b4ffd648922a74 (patch) | |
| tree | 0b8dc539f2d5b8e304a2d9d744cd2774753d438b /spec | |
| parent | 5ef06ac7eaf91c7ee4c32ed63c389b87aece5de8 (diff) | |
| download | gitlab-shell-28ff59405111209bbf5cd6cb59b4ffd648922a74.tar.gz | |
New User class
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/user_spec.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/user_spec.rb b/spec/user_spec.rb new file mode 100644 index 0000000..5677aec --- /dev/null +++ b/spec/user_spec.rb @@ -0,0 +1,52 @@ +require_relative 'spec_helper' +require_relative '../lib/user' + +describe User, vcr: true do + let(:key_id) { 'key-1' } + let(:username) { 'testuser' } + let(:api) { double(GitlabNet) } + + let(:discover_payload) { { 'username' => username } } + let(:audit_usernames) { nil } + + before do + allow(GitlabNet).to receive(:new).and_return(api) + allow(api).to receive(:discover).with(key_id).and_return(discover_payload) + end + + subject { described_class.new(key_id, audit_usernames: audit_usernames) } + + describe '#username' do + context 'with a valid user' do + it "returns '@testuser'" do + expect(subject.username).to eql '@testuser' + end + end + + context 'without a valid user' do + let(:discover_payload) { nil } + + it "returns 'Anonymous'" do + expect(subject.username).to eql 'Anonymous' + end + end + end + + describe '#log_username' do + context 'when audit_usernames is true' do + let(:audit_usernames) { true } + + it "returns 'testuser'" do + expect(subject.log_username).to eql '@testuser' + end + end + + context 'when audit_usernames is false' do + let(:audit_usernames) { false } + + it "returns 'user with key key-1'" do + expect(subject.log_username).to eql 'user with key key-1' + end + end + end +end |
