diff --git a/ee/app/assets/javascripts/epic/components/epic_form.vue b/ee/app/assets/javascripts/epic/components/epic_form.vue index eb621f29ff8fa2b62807d9e211102e2b01a9cd16..df5e1923a3fc37d0000da5c9c38dbec22c56b148 100644 --- a/ee/app/assets/javascripts/epic/components/epic_form.vue +++ b/ee/app/assets/javascripts/epic/components/epic_form.vue @@ -124,6 +124,7 @@ export default { id="epic-title" v-model="title" data-testid="epic-title" + data-qa-selector="epic_title_field" :placeholder="s__('Epics|Enter a title for your epic')" autocomplete="off" autofocus @@ -162,6 +163,7 @@ export default { id="epic-confidentiality" v-model="confidential" data-testid="epic-confidentiality" + data-qa-selector="confidential_epic_checkbox" > {{ $options.i18n.confidentialityLabel }} </gl-form-checkbox> @@ -226,6 +228,7 @@ export default { :loading="loading" :disabled="!title" data-testid="save-epic" + data-qa-selector="create_epic_button" > {{ __('Create epic') }} </gl-button> diff --git a/ee/app/views/groups/epics/index.html.haml b/ee/app/views/groups/epics/index.html.haml index 9cb9f27109c25c68d1e761c40755b4f3d63abd90..72449f829e44a268a7ac1d07f45432361bd1fb75 100644 --- a/ee/app/views/groups/epics/index.html.haml +++ b/ee/app/views/groups/epics/index.html.haml @@ -8,7 +8,7 @@ - if @can_bulk_update = render_if_exists 'shared/issuable/bulk_update_button', type: :epics - if can?(current_user, :create_epic, @group) - = link_to _('New epic'), new_group_epic_path(@group), class: 'btn btn-success gl-button' + = link_to _('New epic'), new_group_epic_path(@group), class: 'btn btn-success gl-button', data: { qa_selector: 'new_epic_button' } = render 'shared/epic/search_bar', type: :epics diff --git a/qa/qa/ee.rb b/qa/qa/ee.rb index 94b73753902c3c7a0b100502838558c7994f6077..aaccd24e4983b08388b8b1f3d55031d535037911 100644 --- a/qa/qa/ee.rb +++ b/qa/qa/ee.rb @@ -192,6 +192,7 @@ module QA module Epic autoload :Index, 'qa/ee/page/group/epic/index' + autoload :New, 'qa/ee/page/group/epic/new' autoload :Show, 'qa/ee/page/group/epic/show' end diff --git a/qa/qa/ee/page/group/epic/index.rb b/qa/qa/ee/page/group/epic/index.rb index c20acd3ee4067babb8f34dae3ec324500c352803..f4f68001014f5737b23feeb0b2161ce2c8db9307 100644 --- a/qa/qa/ee/page/group/epic/index.rb +++ b/qa/qa/ee/page/group/epic/index.rb @@ -6,23 +6,16 @@ module QA module Group module Epic class Index < QA::Page::Base - view 'ee/app/assets/javascripts/epic/components/epic_create.vue' do - element :confidential_epic_checkbox - element :create_epic_button - element :epic_title_field - element :new_epic_button - end - view 'ee/app/views/groups/epics/_epic.html.haml' do element :epic_title_text end - def click_new_epic - click_element :new_epic_button + view 'ee/app/views/groups/epics/index.html.haml' do + element :new_epic_button end - def create_new_epic - click_element :create_epic_button + def click_new_epic + click_element :new_epic_button, EE::Page::Group::Epic::New end def click_first_epic(page = nil) @@ -30,19 +23,11 @@ module QA page.validate_elements_present! if page end - def enable_confidential_epic - click_element :confidential_epic_checkbox - end - def has_epic_title?(title) wait_until do has_element?(:epic_title_text, text: title) end end - - def set_title(title) - fill_element :epic_title_field, title - end end end end diff --git a/qa/qa/ee/page/group/epic/new.rb b/qa/qa/ee/page/group/epic/new.rb new file mode 100644 index 0000000000000000000000000000000000000000..88a35524fb35abb90e98e46cf396b691fab0557b --- /dev/null +++ b/qa/qa/ee/page/group/epic/new.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module QA + module EE + module Page + module Group + module Epic + class New < QA::Page::Base + view 'ee/app/assets/javascripts/epic/components/epic_form.vue' do + element :confidential_epic_checkbox + element :create_epic_button + element :epic_title_field, required: true + end + + def create_new_epic + click_element :create_epic_button, EE::Page::Group::Epic::Show + end + + def enable_confidential_epic + click_element :confidential_epic_checkbox + end + + def set_title(title) + fill_element :epic_title_field, title + end + end + end + end + end + end +end diff --git a/qa/qa/ee/resource/epic.rb b/qa/qa/ee/resource/epic.rb index 6a177a3dca9ec42892c1595fbc161de3e8ca0a22..f9a2d2bc29c46b4c8fd0af902bc3fe5fc2e1802c 100644 --- a/qa/qa/ee/resource/epic.rb +++ b/qa/qa/ee/resource/epic.rb @@ -31,12 +31,12 @@ module QA QA::Page::Group::Menu.perform(&:click_group_epics_link) - QA::EE::Page::Group::Epic::Index.perform do |index| - index.click_new_epic - index.set_title(@title) - index.enable_confidential_epic if @confidential - index.create_new_epic - index.has_text?(@title, wait: QA::Support::Repeater::DEFAULT_MAX_WAIT_TIME) + QA::EE::Page::Group::Epic::Index.perform(&:click_new_epic) + + QA::EE::Page::Group::Epic::New.perform do |new| + new.set_title(@title) + new.enable_confidential_epic if @confidential + new.create_new_epic end end