summaryrefslogtreecommitdiff
path: root/qa/qa/resource/group_deploy_token.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/resource/group_deploy_token.rb')
-rw-r--r--qa/qa/resource/group_deploy_token.rb51
1 files changed, 51 insertions, 0 deletions
diff --git a/qa/qa/resource/group_deploy_token.rb b/qa/qa/resource/group_deploy_token.rb
new file mode 100644
index 00000000000..410a7e6253f
--- /dev/null
+++ b/qa/qa/resource/group_deploy_token.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+module QA
+ module Resource
+ class GroupDeployToken < Base
+ attr_accessor :name, :expires_at
+
+ attribute :username do
+ Page::Group::Settings::Repository.perform do |repository_page|
+ repository_page.expand_deploy_tokens(&:token_username)
+ end
+ end
+
+ attribute :password do
+ Page::Group::Settings::Repository.perform do |repository_page|
+ repository_page.expand_deploy_tokens(&:token_password)
+ end
+ end
+
+ attribute :group do
+ Group.fabricate! do |resource|
+ resource.name = 'group-with-deploy-token'
+ resource.description = 'group for adding deploy token test'
+ end
+ end
+
+ attribute :project do
+ Project.fabricate! do |resource|
+ resource.name = 'project-to-deploy'
+ resource.description = 'project for adding deploy token test'
+ end
+ end
+
+ def fabricate!
+ group.visit!
+
+ Page::Group::Menu.perform(&:go_to_repository_settings)
+
+ Page::Group::Settings::Repository.perform do |setting|
+ setting.expand_deploy_tokens do |page|
+ page.fill_token_name(name)
+ page.fill_token_expires_at(expires_at)
+ page.fill_scopes(read_repository: true, read_package_registry: true, write_package_registry: true)
+
+ page.add_token
+ end
+ end
+ end
+ end
+ end
+end