diff options
| author | Ash McKenzie <amckenzie@gitlab.com> | 2018-08-01 13:47:33 +1000 |
|---|---|---|
| committer | Ash McKenzie <amckenzie@gitlab.com> | 2018-08-01 15:08:45 +1000 |
| commit | 3f421a018e918865a3a36300a4dcefc5d1c8676a (patch) | |
| tree | 65c018b25b0c274b4911c0b754b3b5f1c2e3d59e /spec | |
| parent | 5663f7a16f210bdcd6f0f884c790670fd8a9549f (diff) | |
| download | gitlab-shell-3f421a018e918865a3a36300a4dcefc5d1c8676a.tar.gz | |
Update Actor::Username, add specs
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/actor/username_spec.rb | 79 | ||||
| -rw-r--r-- | spec/actor_spec.rb | 6 |
2 files changed, 85 insertions, 0 deletions
diff --git a/spec/actor/username_spec.rb b/spec/actor/username_spec.rb new file mode 100644 index 0000000..a02bf12 --- /dev/null +++ b/spec/actor/username_spec.rb @@ -0,0 +1,79 @@ +require_relative '../spec_helper' +require_relative '../../lib/actor/username' + +describe Actor::Username do + 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(subject).and_return(discover_payload) + end + + describe '.from' do + it 'returns an instance of Actor::Username' do + expect(described_class.from("username-#{username}")).to be_a(Actor::Username) + end + + it 'has an id == 1' do + expect(described_class.from('username-1').id).to eq '1' + end + end + + describe '.identifier_prefix' do + it "returns 'user'" do + expect(described_class.identifier_prefix).to eql 'username' + end + end + + describe '.identifier_key' do + it "returns 'username'" do + expect(described_class.identifier_key).to eql 'username' + end + end + + subject { described_class.new(username, audit_usernames: audit_usernames) } + + describe '#username' do + context 'without a valid user' do + it "returns '@testuser'" do + expect(subject.username).to eql "@#{username}" + 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 '#identifier' do + it "returns 'username-testuser'" do + expect(subject.identifier).to eql 'username-testuser' + 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 "@#{username}" + end + end + + context 'when audit_usernames is false' do + let(:audit_usernames) { false } + + it "returns 'user with identifier username-testuser'" do + expect(subject.log_username).to eql "user with identifier username-#{username}" + end + end + end +end diff --git a/spec/actor_spec.rb b/spec/actor_spec.rb index c88c405..57cc718 100644 --- a/spec/actor_spec.rb +++ b/spec/actor_spec.rb @@ -23,6 +23,12 @@ describe Actor do expect(described_class.new_from('user-1')).to be_a(Actor::User) end end + + context 'of Username' do + it 'returns an instance of Username' do + expect(described_class.new_from('username-john1')).to be_a(Actor::Username) + end + end end end end |
