Skip to content

Commit e042911

Browse files
committed
Merge branch 'ml-qa-skip-signup-disabled' into 'master'
QA: Allow the registration e2e test to be skipped See merge request gitlab-org/gitlab-ce!22205
2 parents c90d340 + 03ee488 commit e042911

File tree

5 files changed

+55
-19
lines changed

5 files changed

+55
-19
lines changed

qa/qa/runtime/env.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ module Env
55

66
# set to 'false' to have Chrome run visibly instead of headless
77
def chrome_headless?
8-
(ENV['CHROME_HEADLESS'] =~ /^(false|no|0)$/i) != 0
8+
enabled?(ENV['CHROME_HEADLESS'])
99
end
1010

1111
def running_in_ci?
1212
ENV['CI'] || ENV['CI_SERVER']
1313
end
1414

15+
def signup_disabled?
16+
enabled?(ENV['SIGNUP_DISABLED'], default: false)
17+
end
18+
1519
# specifies token that can be used for the api
1620
def personal_access_token
1721
ENV['PERSONAL_ACCESS_TOKEN']
@@ -83,6 +87,14 @@ def require_github_access_token!
8387

8488
raise ArgumentError, "Please provide GITHUB_ACCESS_TOKEN"
8589
end
90+
91+
private
92+
93+
def enabled?(value, default: true)
94+
return default if value.nil?
95+
96+
(value =~ /^(false|no|0)$/i) != 0
97+
end
8698
end
8799
end
88100
end

qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ module QA
1616
end
1717
end
1818

19-
context :manage do
19+
context :manage, :skip_signup_disabled do
2020
describe 'standard' do
2121
it_behaves_like 'registration and login'
2222
end
2323
end
2424

25-
context :manage, :orchestrated, :ldap do
25+
context :manage, :orchestrated, :ldap, :skip_signup_disabled do
2626
describe 'while LDAP is enabled' do
2727
it_behaves_like 'registration and login'
2828
end

qa/qa/specs/runner.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ def perform
2323
args.push(%w[--tag ~orchestrated]) unless (%w[-t --tag] & options).any?
2424
end
2525

26+
args.push(%w[--tag ~skip_signup_disabled]) if QA::Runtime::Env.signup_disabled?
27+
2628
args.push(options)
2729
args.push(DEFAULT_TEST_PATH_ARGS) unless options.any? { |opt| opt =~ %r{/features/} }
2830

qa/spec/runtime/env_spec.rb

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,47 @@
11
describe QA::Runtime::Env do
22
include Support::StubENV
33

4-
describe '.chrome_headless?' do
4+
shared_examples 'boolean method' do |method, env_key, default|
55
context 'when there is an env variable set' do
66
it 'returns false when falsey values specified' do
7-
stub_env('CHROME_HEADLESS', 'false')
8-
expect(described_class.chrome_headless?).to be_falsey
7+
stub_env(env_key, 'false')
8+
expect(described_class.public_send(method)).to be_falsey
99

10-
stub_env('CHROME_HEADLESS', 'no')
11-
expect(described_class.chrome_headless?).to be_falsey
10+
stub_env(env_key, 'no')
11+
expect(described_class.public_send(method)).to be_falsey
1212

13-
stub_env('CHROME_HEADLESS', '0')
14-
expect(described_class.chrome_headless?).to be_falsey
13+
stub_env(env_key, '0')
14+
expect(described_class.public_send(method)).to be_falsey
1515
end
1616

1717
it 'returns true when anything else specified' do
18-
stub_env('CHROME_HEADLESS', 'true')
19-
expect(described_class.chrome_headless?).to be_truthy
18+
stub_env(env_key, 'true')
19+
expect(described_class.public_send(method)).to be_truthy
2020

21-
stub_env('CHROME_HEADLESS', '1')
22-
expect(described_class.chrome_headless?).to be_truthy
21+
stub_env(env_key, '1')
22+
expect(described_class.public_send(method)).to be_truthy
2323

24-
stub_env('CHROME_HEADLESS', 'anything')
25-
expect(described_class.chrome_headless?).to be_truthy
24+
stub_env(env_key, 'anything')
25+
expect(described_class.public_send(method)).to be_truthy
2626
end
2727
end
2828

2929
context 'when there is no env variable set' do
30-
it 'returns the default, true' do
31-
stub_env('CHROME_HEADLESS', nil)
32-
expect(described_class.chrome_headless?).to be_truthy
30+
it "returns the default, #{default}" do
31+
stub_env(env_key, nil)
32+
expect(described_class.public_send(method)).to be(default)
3333
end
3434
end
3535
end
3636

37+
describe '.signup_disabled?' do
38+
it_behaves_like 'boolean method', :signup_disabled?, 'SIGNUP_DISABLED', false
39+
end
40+
41+
describe '.chrome_headless?' do
42+
it_behaves_like 'boolean method', :chrome_headless?, 'CHROME_HEADLESS', true
43+
end
44+
3745
describe '.running_in_ci?' do
3846
context 'when there is an env variable set' do
3947
it 'returns true if CI' do

qa/spec/specs/runner_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@
6262
end
6363
end
6464

65+
context 'when SIGNUP_DISABLED is true' do
66+
before do
67+
allow(QA::Runtime::Env).to receive(:signup_disabled?).and_return(true)
68+
end
69+
70+
subject { described_class.new }
71+
72+
it 'it includes default args and excludes the skip_signup_disabled tag' do
73+
expect_rspec_runner_arguments(['--tag', '~orchestrated', '--tag', '~skip_signup_disabled', *described_class::DEFAULT_TEST_PATH_ARGS])
74+
75+
subject.perform
76+
end
77+
end
78+
6579
def expect_rspec_runner_arguments(arguments)
6680
expect(RSpec::Core::Runner).to receive(:run)
6781
.with(arguments, $stderr, $stdout)

0 commit comments

Comments
 (0)