diff options
author | Mike Greiling <mike@pixelcog.com> | 2017-10-23 10:32:14 +0300 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2017-10-23 10:32:14 +0300 |
commit | 519ffa1ebf6eff8c7fee1e7aa919b44c1acfeb36 (patch) | |
tree | e2a96f675fbf8fed86568b64723b856ebd5012d9 /qa | |
parent | 1e78c627d4c6630df3bbfd4e905018314d692b6d (diff) | |
parent | 5d74973d8148548f505478ed773795d377e6f0d6 (diff) | |
download | gitlab-ce-519ffa1ebf6eff8c7fee1e7aa919b44c1acfeb36.tar.gz |
Merge branch 'master' into sh-headless-chrome-support
* master: (297 commits)
Fix deletion of container registry or images returning an error
The fog-aliyun gem had a bug in v0.1.0 for file storage creation/update. This merge requests update the gem to v0.2.0 which contains the fix:
Decrease ABC threshold to 54.28
Update VERSION to 10.2.0-pre
Update CHANGELOG.md for 10.1.0
Document `CI_SHARED_ENVIRONMENT` and `CI_DISPOSABLE_ENVIRONMENT`
Fix the external URLs generated for online view of HTML artifacts
Use title as placeholder instead of issue title for reusability
Fix failure in current_settings_spec.rb
Clarify the difference between project_update and project_rename
URI decode Page-Title header to preserve UTF-8 characters
Update Gitaly version to v0.49.0
Decrease Perceived Complexity threshold to 14
Resolve "Remove help text regarding group issues on group issues page (and group merge requests page)"
Force non diff resolved discussion to display when collapse toggled
Added submodule support in multi-file editor
add note about after_script being run separately
Check for element before evaluate_script
Merge branch 'master-i18n' into 'master'
Update Prometheus gem to fix problems with other files overwriting current file
...
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa.rb | 5 | ||||
-rw-r--r-- | qa/qa/scenario/entrypoint.rb | 36 | ||||
-rw-r--r-- | qa/qa/scenario/test/instance.rb | 17 | ||||
-rw-r--r-- | qa/qa/scenario/test/integration/mattermost.rb | 15 | ||||
-rw-r--r-- | qa/qa/specs/features/login/standard_spec.rb | 2 | ||||
-rw-r--r-- | qa/qa/specs/features/mattermost/group_create_spec.rb | 16 | ||||
-rw-r--r-- | qa/qa/specs/features/project/create_spec.rb | 2 | ||||
-rw-r--r-- | qa/qa/specs/features/repository/clone_spec.rb | 2 | ||||
-rw-r--r-- | qa/qa/specs/features/repository/push_spec.rb | 4 | ||||
-rw-r--r-- | qa/qa/specs/runner.rb | 9 |
10 files changed, 87 insertions, 21 deletions
@@ -18,6 +18,7 @@ module QA # Support files # autoload :Actable, 'qa/scenario/actable' + autoload :Entrypoint, 'qa/scenario/entrypoint' autoload :Template, 'qa/scenario/template' ## @@ -25,6 +26,10 @@ module QA # module Test autoload :Instance, 'qa/scenario/test/instance' + + module Integration + autoload :Mattermost, 'qa/scenario/test/integration/mattermost' + end end ## diff --git a/qa/qa/scenario/entrypoint.rb b/qa/qa/scenario/entrypoint.rb new file mode 100644 index 00000000000..33cb2696f8f --- /dev/null +++ b/qa/qa/scenario/entrypoint.rb @@ -0,0 +1,36 @@ +module QA + module Scenario + ## + # Base class for running the suite against any GitLab instance, + # including staging and on-premises installation. + # + class Entrypoint < Template + def self.tags(*tags) + @tags = tags + end + + def self.get_tags + @tags + end + + def perform(address, *files) + Specs::Config.perform do |specs| + specs.address = address + end + + ## + # Perform before hooks, which are different for CE and EE + # + Runtime::Release.perform_before_hooks + + Specs::Runner.perform do |specs| + specs.rspec( + tty: true, + tags: self.class.get_tags, + files: files.any? ? files : 'qa/specs/features' + ) + end + end + end + end +end diff --git a/qa/qa/scenario/test/instance.rb b/qa/qa/scenario/test/instance.rb index 689292bc60b..e2a1f6bf2bd 100644 --- a/qa/qa/scenario/test/instance.rb +++ b/qa/qa/scenario/test/instance.rb @@ -5,21 +5,8 @@ module QA # Run test suite against any GitLab instance, # including staging and on-premises installation. # - class Instance < Scenario::Template - def perform(address, *files) - Specs::Config.perform do |specs| - specs.address = address - end - - ## - # Perform before hooks, which are different for CE and EE - # - Runtime::Release.perform_before_hooks - - Specs::Runner.perform do |specs| - specs.rspec('--tty', files.any? ? files : 'qa/specs/features') - end - end + class Instance < Entrypoint + tags :core end end end diff --git a/qa/qa/scenario/test/integration/mattermost.rb b/qa/qa/scenario/test/integration/mattermost.rb new file mode 100644 index 00000000000..4732f2b635b --- /dev/null +++ b/qa/qa/scenario/test/integration/mattermost.rb @@ -0,0 +1,15 @@ +module QA + module Scenario + module Test + module Integration + ## + # Run test suite against any GitLab instance where mattermost is enabled, + # including staging and on-premises installation. + # + class Mattermost < Scenario::Entrypoint + tags :core, :mattermost + end + end + end + end +end diff --git a/qa/qa/specs/features/login/standard_spec.rb b/qa/qa/specs/features/login/standard_spec.rb index 8e1ae6efa47..ba19ce17ee5 100644 --- a/qa/qa/specs/features/login/standard_spec.rb +++ b/qa/qa/specs/features/login/standard_spec.rb @@ -1,5 +1,5 @@ module QA - feature 'standard root login' do + feature 'standard root login', :core do scenario 'user logs in using credentials' do Page::Main::Entry.act { sign_in_using_credentials } diff --git a/qa/qa/specs/features/mattermost/group_create_spec.rb b/qa/qa/specs/features/mattermost/group_create_spec.rb new file mode 100644 index 00000000000..c4afd83c8e4 --- /dev/null +++ b/qa/qa/specs/features/mattermost/group_create_spec.rb @@ -0,0 +1,16 @@ +module QA + feature 'create a new group', :mattermost do + scenario 'creating a group with a mattermost team' do + Page::Main::Entry.act { sign_in_using_credentials } + Page::Main::Menu.act { go_to_groups } + + Page::Dashboard::Groups.perform do |page| + page.go_to_new_group + + expect(page).to have_content( + /Create a Mattermost team for this group/ + ) + end + end + end +end diff --git a/qa/qa/specs/features/project/create_spec.rb b/qa/qa/specs/features/project/create_spec.rb index 610492b9717..27eb22f15a6 100644 --- a/qa/qa/specs/features/project/create_spec.rb +++ b/qa/qa/specs/features/project/create_spec.rb @@ -1,5 +1,5 @@ module QA - feature 'create a new project' do + feature 'create a new project', :core do scenario 'user creates a new project' do Page::Main::Entry.act { sign_in_using_credentials } diff --git a/qa/qa/specs/features/repository/clone_spec.rb b/qa/qa/specs/features/repository/clone_spec.rb index 521bd955857..3571173783d 100644 --- a/qa/qa/specs/features/repository/clone_spec.rb +++ b/qa/qa/specs/features/repository/clone_spec.rb @@ -1,5 +1,5 @@ module QA - feature 'clone code from the repository' do + feature 'clone code from the repository', :core do context 'with regular account over http' do given(:location) do Page::Project::Show.act do diff --git a/qa/qa/specs/features/repository/push_spec.rb b/qa/qa/specs/features/repository/push_spec.rb index 5fe45d63d37..0e691fb0d75 100644 --- a/qa/qa/specs/features/repository/push_spec.rb +++ b/qa/qa/specs/features/repository/push_spec.rb @@ -1,7 +1,7 @@ module QA - feature 'push code to repository' do + feature 'push code to repository', :core do context 'with regular account over http' do - scenario 'user pushes code to the repository' do + scenario 'user pushes code to the repository' do Page::Main::Entry.act { sign_in_using_credentials } Scenario::Gitlab::Project::Create.perform do |scenario| diff --git a/qa/qa/specs/runner.rb b/qa/qa/specs/runner.rb index 83ae15d0995..2aa18d5d3a1 100644 --- a/qa/qa/specs/runner.rb +++ b/qa/qa/specs/runner.rb @@ -5,7 +5,14 @@ module QA class Runner include Scenario::Actable - def rspec(*args) + def rspec(tty: false, tags: [], files: ['qa/specs/features']) + args = [] + args << '--tty' if tty + tags.to_a.each do |tag| + args << ['-t', tag.to_s] + end + args << files + RSpec::Core::Runner.run(args.flatten, $stderr, $stdout).tap do |status| abort if status.nonzero? end |