Welcome to mirror list, hosted at ThFree Co, Russian Federation.

usage_quotas.rb « settings « group « page « gitlab « lib « qa - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8ae9e8fd25a4e3c9e30c43eb289af11d7fe5aa62 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# frozen_string_literal: true

module Gitlab
  module Page
    module Group
      module Settings
        class UsageQuotas < Chemlab::Page
          # Seats section
          div :seats_in_use
          p :seats_used
          p :seats_owed
          table :subscription_users

          # Pipelines section
          link :pipelines_tab
          link :buy_ci_minutes
          div :plan_ci_minutes
          div :additional_ci_minutes
          div :ci_purchase_successful_alert, text: /You have successfully purchased CI minutes/

          # Storage section
          link :storage_tab
          link :purchase_more_storage
          div :namespace_usage_total
          div :group_usage_message
          span :dependency_proxy_size
          div :storage_purchased
          div :storage_purchase_successful_alert, text: /You have successfully purchased a storage/
          span :project_repository_size
          span :project_wiki_size
          span :project_snippets_size
          span :project_containers_registry_size

          # Pending members
          button :view_pending_approvals, text: /View pending approvals/
          div :pending_members_alert
          div :pending_members
          button :approve_member
          button :confirm_member_approval, text: /^OK$/

          def plan_ci_limits
            plan_ci_minutes[/(\d+){2}/]
          end

          def additional_ci_limits
            additional_ci_minutes[/(\d+){2}/]
          end

          def additional_ci_minutes_added?
            #  When opening the Usage quotas page, Seats quota tab is opened briefly even when url is to a different tab
            ::QA::Support::WaitForRequests.wait_for_requests
            additional_ci_minutes?
          end

          # Returns total purchased storage value once it's ready on page
          #
          # @return [Float] Total purchased storage value in GiB
          def total_purchased_storage
            ::QA::Support::WaitForRequests.wait_for_requests

            storage_purchased[/(\d+){2}.\d+/].to_f
          end

          # Waits for additional CI minutes to be available on the page
          def wait_for_additional_ci_minutes_available
            ::QA::Support::Waiter.wait_until(
              max_duration: ::QA::Support::Helpers::Zuora::ZUORA_TIMEOUT,
              sleep_interval: 2,
              reload_page: Chemlab.configuration.browser.session,
              message: 'Expected additional CI minutes but they did not appear.'
            ) do
              additional_ci_minutes_added?
            end
          end

          # Waits for additional CI minutes amount to match the expected number of minutes
          #
          # @param [String] minutes
          def wait_for_additional_ci_minute_limits(minutes)
            wait_for_additional_ci_minutes_available

            ::QA::Support::Waiter.wait_until(
              max_duration: ::QA::Support::Helpers::Zuora::ZUORA_TIMEOUT,
              sleep_interval: 2,
              reload_page: Chemlab.configuration.browser.session,
              message: "Expected additional CI minutes to equal #{minutes}"
            ) do
              additional_ci_limits == minutes
            end
          end
        end
      end
    end
  end
end