diff options
Diffstat (limited to 'qa/qa/page/dashboard/todos.rb')
-rw-r--r-- | qa/qa/page/dashboard/todos.rb | 40 |
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 |