Created a refreshed create merge request suite
Created a refreshed test suite using api to improve speed. This was done by adding qa tags to the merge request view.
This commit is contained in:
parent
5eff8dd1e7
commit
103a631b8d
5 changed files with 72 additions and 59 deletions
|
@ -1,10 +1,10 @@
|
|||
.detail-page-description
|
||||
%h2.title
|
||||
%h2.title.qa-title
|
||||
= markdown_field(@merge_request, :title)
|
||||
|
||||
%div
|
||||
- if @merge_request.description.present?
|
||||
.description{ class: can?(current_user, :update_merge_request, @merge_request) ? 'js-task-list-container' : '' }
|
||||
.description.qa-description{ class: can?(current_user, :update_merge_request, @merge_request) ? 'js-task-list-container' : '' }
|
||||
.md
|
||||
= markdown_field(@merge_request, :description)
|
||||
%textarea.hidden.js-task-list-field
|
||||
|
|
|
@ -111,6 +111,14 @@ module QA
|
|||
end
|
||||
end
|
||||
|
||||
def has_title?(title)
|
||||
has_element?(:title, text: title)
|
||||
end
|
||||
|
||||
def has_description?(description)
|
||||
has_element?(:description, text: description)
|
||||
end
|
||||
|
||||
def merge!
|
||||
# The merge button is disabled on load
|
||||
wait do
|
||||
|
|
|
@ -46,7 +46,7 @@ module QA
|
|||
end
|
||||
|
||||
def api_post_path
|
||||
"/projects/#{project}/labels"
|
||||
"/projects/#{project.id}/labels"
|
||||
end
|
||||
|
||||
def api_post_body
|
||||
|
|
|
@ -31,6 +31,21 @@ module QA
|
|||
milestone_new.click_milestone_create_button
|
||||
end
|
||||
end
|
||||
|
||||
def api_get_path
|
||||
"/projects/#{project.id}/milestones/#{id}"
|
||||
end
|
||||
|
||||
def api_post_path
|
||||
"/projects/#{project.id}/milestones"
|
||||
end
|
||||
|
||||
def api_post_body
|
||||
{
|
||||
description: @description,
|
||||
title: @title
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,76 +1,66 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module QA
|
||||
# Failure issue: https://gitlab.com/gitlab-org/quality/staging/issues/50
|
||||
context 'Create', :quarantine do
|
||||
describe 'Merge request creation' do
|
||||
it 'user creates a new merge request', :smoke do
|
||||
context 'Create' do
|
||||
describe 'Create a new merge request' do
|
||||
before do
|
||||
Runtime::Browser.visit(:gitlab, Page::Main::Login)
|
||||
Page::Main::Login.act { sign_in_using_credentials }
|
||||
Page::Main::Login.perform(&:sign_in_using_credentials)
|
||||
|
||||
current_project = Resource::Project.fabricate! do |project|
|
||||
project.name = 'project-with-merge-request'
|
||||
@project = Resource::Project.fabricate_via_api! do |project|
|
||||
project.name = 'project'
|
||||
end
|
||||
|
||||
merge_request_title = 'This is a merge request'
|
||||
merge_request_description = 'Great feature'
|
||||
|
||||
Resource::MergeRequest.fabricate! do |merge_request|
|
||||
merge_request.title = merge_request_title
|
||||
merge_request.description = merge_request_description
|
||||
merge_request.project = current_project
|
||||
end
|
||||
|
||||
expect(page).to have_content(merge_request_title)
|
||||
expect(page).to have_content(merge_request_description)
|
||||
expect(page).to have_content('Opened just now')
|
||||
@merge_request_title = 'One merge request to rule them all'
|
||||
@merge_request_description = '... to find them, to bring them all, and in the darkness bind them'
|
||||
end
|
||||
|
||||
it 'user creates a new merge request with a milestone and label' do
|
||||
gitlab_account_username = "@#{Runtime::User.username}"
|
||||
|
||||
Runtime::Browser.visit(:gitlab, Page::Main::Login)
|
||||
Page::Main::Login.act { sign_in_using_credentials }
|
||||
|
||||
current_project = Resource::Project.fabricate! do |project|
|
||||
project.name = 'project-with-merge-request-and-milestone'
|
||||
end
|
||||
|
||||
current_milestone = Resource::ProjectMilestone.fabricate! do |milestone|
|
||||
milestone.title = 'unique-milestone'
|
||||
milestone.project = current_project
|
||||
end
|
||||
|
||||
new_label = Resource::Label.fabricate_via_browser_ui! do |label|
|
||||
label.project = current_project
|
||||
label.title = 'qa-mr-test-label'
|
||||
label.description = 'Merge Request label'
|
||||
end
|
||||
|
||||
merge_request_title = 'This is a merge request with a milestone and a label'
|
||||
merge_request_description = 'Great feature with milestone'
|
||||
|
||||
Resource::MergeRequest.fabricate! do |merge_request|
|
||||
merge_request.title = merge_request_title
|
||||
merge_request.description = merge_request_description
|
||||
merge_request.project = current_project
|
||||
merge_request.milestone = current_milestone
|
||||
merge_request.assignee = 'me'
|
||||
merge_request.labels.push(new_label)
|
||||
it 'creates a basic merge request', :smoke do
|
||||
Resource::MergeRequest.fabricate_via_browser_ui! do |merge_request|
|
||||
merge_request.project = @project
|
||||
merge_request.title = @merge_request_title
|
||||
merge_request.description = @merge_request_description
|
||||
end
|
||||
|
||||
Page::MergeRequest::Show.perform do |merge_request|
|
||||
expect(merge_request).to have_content(merge_request_title)
|
||||
expect(merge_request).to have_content(merge_request_description)
|
||||
expect(merge_request).to have_content('Opened just now')
|
||||
expect(merge_request).to have_title(@merge_request_title)
|
||||
expect(merge_request).to have_description(@merge_request_description)
|
||||
end
|
||||
end
|
||||
|
||||
it 'creates a merge request with a milestone and label' do
|
||||
gitlab_account_username = "@#{Runtime::User.username}"
|
||||
|
||||
milestone = Resource::ProjectMilestone.fabricate_via_api! do |milestone|
|
||||
milestone.project = @project
|
||||
milestone.title = 'milestone'
|
||||
end
|
||||
|
||||
label = Resource::Label.fabricate_via_api! do |label|
|
||||
label.project = @project
|
||||
label.title = 'label'
|
||||
end
|
||||
|
||||
Resource::MergeRequest.fabricate_via_browser_ui! do |merge_request|
|
||||
merge_request.title = @merge_request_title
|
||||
merge_request.description = @merge_request_description
|
||||
merge_request.project = @project
|
||||
merge_request.milestone = milestone
|
||||
merge_request.assignee = 'me'
|
||||
merge_request.labels.push(label)
|
||||
end
|
||||
|
||||
Page::MergeRequest::Show.perform do |merge_request|
|
||||
expect(merge_request).to have_title(@merge_request_title)
|
||||
expect(merge_request).to have_description(@merge_request_description)
|
||||
expect(merge_request).to have_assignee(gitlab_account_username)
|
||||
expect(merge_request).to have_label(new_label.title)
|
||||
expect(merge_request).to have_label(label.title)
|
||||
end
|
||||
|
||||
Page::Issuable::Sidebar.perform do |sidebar|
|
||||
expect(sidebar).to have_milestone(current_milestone.title)
|
||||
expect(sidebar).to have_milestone(milestone.title)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue