summaryrefslogtreecommitdiff
path: root/qa/qa/page/component/design_management.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/component/design_management.rb')
-rw-r--r--qa/qa/page/component/design_management.rb43
1 files changed, 41 insertions, 2 deletions
diff --git a/qa/qa/page/component/design_management.rb b/qa/qa/page/component/design_management.rb
index a8a24bd3949..fafbda58b07 100644
--- a/qa/qa/page/component/design_management.rb
+++ b/qa/qa/page/component/design_management.rb
@@ -30,6 +30,17 @@ module QA
view 'app/assets/javascripts/design_management/components/list/item.vue' do
element :design_file_name
element :design_image
+ element :design_status_icon
+ end
+
+ view 'app/assets/javascripts/design_management/pages/index.vue' do
+ element :archive_button
+ element :design_checkbox
+ element :design_dropzone_content
+ end
+
+ view 'app/assets/javascripts/design_management/components/delete_button.vue' do
+ element :confirm_archiving_button
end
end
end
@@ -52,12 +63,14 @@ module QA
# It accepts a `class:` option, but that only works for class attributes
# It doesn't work as a CSS selector.
# So instead we use the name attribute as a locator
- page.attach_file("design_file", design_file_path, make_visible: { display: 'block' })
+ within_element(:design_dropzone_content) do
+ page.attach_file("design_file", design_file_path, make_visible: { display: 'block' })
+ end
filename = ::File.basename(design_file_path)
found = wait_until(reload: false, sleep_interval: 1) do
- image = find_element(:design_image)
+ image = find_element(:design_image, filename: filename)
has_element?(:design_file_name, text: filename) &&
image["complete"] &&
@@ -67,15 +80,41 @@ module QA
raise ElementNotFound, %Q(Attempted to attach design "#{filename}" but it did not appear) unless found
end
+ def update_design(filename)
+ filepath = ::File.join('qa', 'fixtures', 'designs', 'update', filename)
+ add_design(filepath)
+ end
+
def click_design(filename)
click_element(:design_file_name, text: filename)
end
+ def select_design(filename)
+ click_element(:design_checkbox, design: filename)
+ end
+
+ def archive_selected_designs
+ click_element(:archive_button)
+ click_element(:confirm_archiving_button)
+ end
+
def has_annotation?(note)
within_element_by_index(:design_discussion_content, 0) do
has_element?(:note_content, text: note)
end
end
+
+ def has_design?(filename)
+ has_element?(:design_file_name, text: filename)
+ end
+
+ def has_created_icon?
+ has_element?(:design_status_icon, status: 'file-addition-solid')
+ end
+
+ def has_modified_icon?
+ has_element?(:design_status_icon, status: 'file-modified-solid')
+ end
end
end
end