gitlab-org--gitlab-foss/qa/qa.rb
Richard Clamp ce3b81b953 Add tests for mattermost login via oauth
* Adds Runtime::Scenario as a place to record the properties of the
  Scenario we're interested in.

* Adds a positional argument to Test::Integration::Mattermost to specify
  Runtime::Scenario.mattermost

* Adds Page::Mattermost::{Main,Login} to model the mattermost pages we
  need to interact with.

* Adds qa/features/mattermost/login_spec to perform a login via oauth
  and ensure we are logged in.
2017-10-30 14:48:40 +00:00

107 lines
2.2 KiB
Ruby

$: << File.expand_path(File.dirname(__FILE__))
module QA
##
# GitLab QA runtime classes, mostly singletons.
#
module Runtime
autoload :Release, 'qa/runtime/release'
autoload :User, 'qa/runtime/user'
autoload :Namespace, 'qa/runtime/namespace'
autoload :Scenario, 'qa/runtime/scenario'
end
##
# GitLab QA Scenarios
#
module Scenario
##
# Support files
#
autoload :Actable, 'qa/scenario/actable'
autoload :Entrypoint, 'qa/scenario/entrypoint'
autoload :Template, 'qa/scenario/template'
##
# Test scenario entrypoints.
#
module Test
autoload :Instance, 'qa/scenario/test/instance'
module Integration
autoload :Mattermost, 'qa/scenario/test/integration/mattermost'
end
end
##
# GitLab instance scenarios.
#
module Gitlab
module Group
autoload :Create, 'qa/scenario/gitlab/group/create'
end
module Project
autoload :Create, 'qa/scenario/gitlab/project/create'
end
module Sandbox
autoload :Prepare, 'qa/scenario/gitlab/sandbox/prepare'
end
end
end
##
# Classes describing structure of GitLab, pages, menus etc.
#
# Needed to execute click-driven-only black-box tests.
#
module Page
autoload :Base, 'qa/page/base'
module Main
autoload :Entry, 'qa/page/main/entry'
autoload :Menu, 'qa/page/main/menu'
end
module Dashboard
autoload :Groups, 'qa/page/dashboard/groups'
end
module Group
autoload :New, 'qa/page/group/new'
autoload :Show, 'qa/page/group/show'
end
module Project
autoload :New, 'qa/page/project/new'
autoload :Show, 'qa/page/project/show'
end
module Admin
autoload :Menu, 'qa/page/admin/menu'
end
module Mattermost
autoload :Main, 'qa/page/mattermost/main'
autoload :Login, 'qa/page/mattermost/login'
end
end
##
# Classes describing operations on Git repositories.
#
module Git
autoload :Repository, 'qa/git/repository'
end
##
# Classes that make it possible to execute features tests.
#
module Specs
autoload :Config, 'qa/specs/config'
autoload :Runner, 'qa/specs/runner'
end
end
QA::Runtime::Release.extend_autoloads!