diff options
author | Rémy Coutable <remy@rymai.me> | 2019-01-21 19:24:56 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-01-23 15:17:05 +0300 |
commit | cbc3d1f9115d58ee590d84dac52f4b1ddd9dd7a3 (patch) | |
tree | e9ebbb2811609c00a5a657c64b8e123c4892aae7 /qa/spec/resource | |
parent | cae2330b54eb572edbc84bfd6bacb5408534a61b (diff) |
[QA] Use public_email instead of email since it's available
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'qa/spec/resource')
-rw-r--r-- | qa/spec/resource/user_spec.rb | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/qa/spec/resource/user_spec.rb b/qa/spec/resource/user_spec.rb new file mode 100644 index 00000000000..d612dfc530e --- /dev/null +++ b/qa/spec/resource/user_spec.rb @@ -0,0 +1,118 @@ +# frozen_string_literal: true + +describe QA::Resource::User do + let(:api_resource) do + { + name: "GitLab QA", + username: "gitlab-qa", + web_url: "https://staging.gitlab.com/gitlab-qa", + public_email: "1614863-gitlab-qa@users.noreply.staging.gitlab.com" + } + end + + describe '#username' do + it 'generates a default username' do + expect(subject.username).to match(/qa-user-\w+/) + end + + it 'is possible to set the username' do + subject.username = 'johndoe' + + expect(subject.username).to eq('johndoe') + end + end + + describe '#password' do + it 'generates a default password' do + expect(subject.password).to eq('password') + end + + it 'is possible to set the password' do + subject.password = 'secret' + + expect(subject.password).to eq('secret') + end + end + + describe '#name' do + it 'defaults to the username' do + expect(subject.name).to eq(subject.username) + end + + it 'retrieves the name from the api_resource if present' do + subject.__send__(:api_resource=, api_resource) + + expect(subject.name).to eq(api_resource[:name]) + end + + it 'is possible to set the name' do + subject.name = 'John Doe' + + expect(subject.name).to eq('John Doe') + end + end + + describe '#email' do + it 'defaults to the <username>@example.com' do + expect(subject.email).to eq("#{subject.username}@example.com") + end + + it 'is possible to set the email' do + subject.email = 'johndoe@example.org' + + expect(subject.email).to eq('johndoe@example.org') + end + end + + describe '#public_email' do + it 'defaults to QA::Runtime::User.default_email' do + expect(subject.public_email).to eq(QA::Runtime::User.default_email) + end + + it 'retrieves the public_email from the api_resource if present' do + subject.__send__(:api_resource=, api_resource) + + expect(subject.public_email).to eq(api_resource[:public_email]) + end + + it 'defaults to QA::Runtime::User.default_email if the public_email from the api_resource is blank' do + subject.__send__(:api_resource=, api_resource.merge(public_email: '')) + + expect(subject.public_email).to eq(QA::Runtime::User.default_email) + end + end + + describe '#credentials_given?' do + it 'returns false when username and email have not been overridden' do + expect(subject).not_to be_credentials_given + end + + it 'returns false even after username and email have been called' do + # Call #username and #password to ensure this doesn't set their respective + # instance variable. + subject.username + subject.password + + expect(subject).not_to be_credentials_given + end + + it 'returns false if only the username has been overridden' do + subject.username = 'johndoe' + + expect(subject).not_to be_credentials_given + end + + it 'returns false if only the password has been overridden' do + subject.password = 'secret' + + expect(subject).not_to be_credentials_given + end + + it 'returns true if both the username and password have been overridden' do + subject.username = 'johndoe' + subject.password = 'secret' + + expect(subject).to be_credentials_given + end + end +end |