summaryrefslogtreecommitdiff
path: root/qa/qa/page/dashboard/todos.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/page/dashboard/todos.rb')
-rw-r--r--qa/qa/page/dashboard/todos.rb40
1 files changed, 38 insertions, 2 deletions
diff --git a/qa/qa/page/dashboard/todos.rb b/qa/qa/page/dashboard/todos.rb
index d5660823118..a65bba9ac39 100644
--- a/qa/qa/page/dashboard/todos.rb
+++ b/qa/qa/page/dashboard/todos.rb
@@ -8,12 +8,19 @@ module QA
view 'app/views/dashboard/todos/index.html.haml' do
element :todos_list_container, required: true
+ element :group_dropdown
end
view 'app/views/dashboard/todos/_todo.html.haml' do
element :todo_item_container
element :todo_action_name_content
element :todo_target_title_content
+ element :todo_author_name_content
+ end
+
+ view 'app/helpers/dropdowns_helper.rb' do
+ element :dropdown_input_field
+ element :dropdown_list_content
end
def has_todo_list?
@@ -24,10 +31,39 @@ module QA
has_no_element?(:todo_item_container)
end
- def has_latest_todo_item_with_content?(action, title)
+ def filter_todos_by_group(group)
+ click_element :group_dropdown
+
+ fill_element(:dropdown_input_field, group.path)
+
+ within_element(:dropdown_list_content) do
+ click_on group.path
+ end
+
+ wait_for_requests
+ end
+
+ def has_latest_todo_with_author?(author:, action:)
+ content = { selector: :todo_author_name_content, text: author }
+ has_latest_todo_with_content?(action, **content)
+ end
+
+ def has_latest_todo_with_title?(title:, action:)
+ content = { selector: :todo_target_title_content, text: title }
+ has_latest_todo_with_content?(action, **content)
+ end
+
+ def click_todo_with_content(content)
+ click_element(:todo_item_container, text: content)
+ end
+
+ private
+
+ def has_latest_todo_with_content?(action, **kwargs)
within_element(:todos_list_container) do
within_element_by_index(:todo_item_container, 0) do
- has_element?(:todo_action_name_content, text: action) && has_element?(:todo_target_title_content, text: title)
+ has_element?(:todo_action_name_content, text: action) &&
+ has_element?(kwargs[:selector], text: kwargs[:text])
end
end
end