summaryrefslogtreecommitdiff
path: root/qa/qa/scenario/gitlab/project/create.rb
blob: bb3b9e19c0f7da53caabb17cb12c691918c908ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require 'securerandom'

module QA
  module Scenario
    module Gitlab
      module Project
        class Create < Scenario::Template
          attr_writer :description

          def name=(name)
            @name = "#{name}-#{SecureRandom.hex(8)}"
          end

          def perform
            Scenario::Gitlab::Sandbox::Prepare.perform

            Page::Group::Show.perform do |page|
              if page.has_subgroup?(Runtime::Namespace.name)
                page.go_to_subgroup(Runtime::Namespace.name)
              else
                page.go_to_new_subgroup

                Scenario::Gitlab::Group::Create.perform do |group|
                  group.path = Runtime::Namespace.name
                end
              end

              page.go_to_new_project
            end

            Page::Project::New.perform do |page|
              page.choose_test_namespace
              page.choose_name(@name)
              page.add_description(@description)
              page.create_new_project
            end
          end
        end
      end
    end
  end
end