Adding qa-selectors for e2e tests
This commit is contained in:
parent
ce2207b718
commit
637df35f08
8 changed files with 58 additions and 9 deletions
|
@ -66,7 +66,7 @@
|
|||
<button
|
||||
:class="{ disabled: formState.updateLoading || !isSubmitEnabled }"
|
||||
:disabled="formState.updateLoading || !isSubmitEnabled"
|
||||
class="btn btn-success float-left"
|
||||
class="btn btn-success float-left qa-save-button"
|
||||
type="submit"
|
||||
@click.prevent="updateIssuable">
|
||||
Save changes
|
||||
|
@ -86,7 +86,7 @@
|
|||
v-if="shouldShowDeleteButton"
|
||||
:class="{ disabled: deleteLoading }"
|
||||
:disabled="deleteLoading"
|
||||
class="btn btn-danger float-right append-right-default"
|
||||
class="btn btn-danger float-right append-right-default qa-delete-button"
|
||||
type="button"
|
||||
@click="deleteIssuable">
|
||||
Delete
|
||||
|
|
|
@ -61,7 +61,8 @@
|
|||
ref="textarea"
|
||||
slot="textarea"
|
||||
v-model="formState.description"
|
||||
class="note-textarea js-gfm-input js-autosize markdown-area"
|
||||
class="note-textarea js-gfm-input js-autosize markdown-area
|
||||
qa-description-textarea"
|
||||
data-supports-quick-actions="false"
|
||||
aria-label="Description"
|
||||
placeholder="Write a comment or drag your files here…"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<input
|
||||
id="issuable-title"
|
||||
v-model="formState.title"
|
||||
class="form-control"
|
||||
class="form-control qa-title-input"
|
||||
type="text"
|
||||
placeholder="Title"
|
||||
aria-label="Title"
|
||||
|
|
|
@ -79,7 +79,8 @@ export default {
|
|||
v-if="showInlineEditButton && canUpdate"
|
||||
v-tooltip
|
||||
type="button"
|
||||
class="btn btn-default btn-edit btn-svg js-issuable-edit"
|
||||
class="btn btn-default btn-edit btn-svg js-issuable-edit
|
||||
qa-edit-button"
|
||||
title="Edit title and description"
|
||||
data-placement="bottom"
|
||||
data-container="body"
|
||||
|
|
|
@ -7,7 +7,11 @@ import { __, sprintf } from '~/locale';
|
|||
import Flash from '../../flash';
|
||||
import Autosave from '../../autosave';
|
||||
import TaskList from '../../task_list';
|
||||
import { capitalizeFirstCharacter, convertToCamelCase, splitCamelCase } from '../../lib/utils/text_utility';
|
||||
import {
|
||||
capitalizeFirstCharacter,
|
||||
convertToCamelCase,
|
||||
splitCamelCase,
|
||||
} from '../../lib/utils/text_utility';
|
||||
import * as constants from '../constants';
|
||||
import eventHub from '../event_hub';
|
||||
import issueWarning from '../../vue_shared/components/issue/issue_warning.vue';
|
||||
|
@ -122,7 +126,9 @@ export default {
|
|||
return this.getNoteableData.create_note_path;
|
||||
},
|
||||
issuableTypeTitle() {
|
||||
return this.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE ? 'merge request' : 'issue';
|
||||
return this.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE
|
||||
? 'merge request'
|
||||
: 'issue';
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
|
@ -359,7 +365,7 @@ Please check your network connection and try again.`;
|
|||
:disabled="isSubmitting"
|
||||
name="note[note]"
|
||||
class="note-textarea js-vue-comment-form js-note-text
|
||||
js-gfm-input js-autosize markdown-area js-vue-textarea"
|
||||
js-gfm-input js-autosize markdown-area js-vue-textarea qa-comment-input"
|
||||
data-supports-quick-actions="true"
|
||||
aria-label="Description"
|
||||
placeholder="Write a comment or drag your files here…"
|
||||
|
@ -374,7 +380,8 @@ js-gfm-input js-autosize markdown-area js-vue-textarea"
|
|||
append-right-10 comment-type-dropdown js-comment-type-dropdown droplab-dropdown">
|
||||
<button
|
||||
:disabled="isSubmitButtonDisabled"
|
||||
class="btn btn-success comment-btn js-comment-button js-comment-submit-button"
|
||||
class="btn btn-create comment-btn js-comment-button js-comment-submit-button
|
||||
qa-comment-button"
|
||||
type="submit"
|
||||
@click.prevent="handleSave()">
|
||||
{{ __(commentButtonTitle) }}
|
||||
|
|
3
qa/qa.rb
3
qa/qa.rb
|
@ -257,6 +257,9 @@ module QA
|
|||
autoload :Dropzone, 'qa/page/component/dropzone'
|
||||
autoload :GroupsFilter, 'qa/page/component/groups_filter'
|
||||
autoload :Select2, 'qa/page/component/select2'
|
||||
module Issuable
|
||||
autoload :Common, 'qa/page/component/issuable/common'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
35
qa/qa/page/component/issuable/common.rb
Normal file
35
qa/qa/page/component/issuable/common.rb
Normal file
|
@ -0,0 +1,35 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
module Page
|
||||
module Component
|
||||
module Issuable
|
||||
module Common
|
||||
def self.included(base)
|
||||
base.view 'app/assets/javascripts/issue_show/components/title.vue' do
|
||||
element :edit_button
|
||||
end
|
||||
|
||||
base.view 'app/assets/javascripts/issue_show/components/fields/title.vue' do
|
||||
element :title_input
|
||||
end
|
||||
|
||||
base.view 'app/assets/javascripts/issue_show/components/fields/description.vue' do
|
||||
element :description_textarea
|
||||
end
|
||||
|
||||
base.view 'app/assets/javascripts/issue_show/components/edit_actions.vue' do
|
||||
element :save_button
|
||||
element :delete_button
|
||||
end
|
||||
|
||||
base.view 'app/assets/javascripts/issue_show/components/edit_actions.vue' do
|
||||
element :save_button
|
||||
element :delete_button
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -5,6 +5,8 @@ module QA
|
|||
module Project
|
||||
module Issue
|
||||
class Show < Page::Base
|
||||
include Page::Component::Issuable::Common
|
||||
|
||||
view 'app/views/projects/issues/show.html.haml' do
|
||||
element :issue_details, '.issue-details'
|
||||
element :title, '.title'
|
||||
|
|
Loading…
Reference in a new issue