summaryrefslogtreecommitdiff
path: root/qa/qa/factory/resource/project.rb
blob: 64fcfb084bbaef65fd5ec19ec9e25d6e76fc014d (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
require 'securerandom'

module QA
  module Factory
    module Resource
      class Project < Factory::Base
        attr_writer :description

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

        def fabricate!
          Factory::Resource::Sandbox.fabricate!

          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

              Factory::Resource::Group.fabricate! 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