tests for success and failure of deleting branch from MR page
This commit is contained in:
parent
81c920f13a
commit
3cc806ee13
|
@ -1,5 +1,7 @@
|
||||||
/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, max-len */
|
/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, max-len */
|
||||||
|
|
||||||
|
import '~/lib/utils/url_utility';
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
this.MergedButtons = (function() {
|
this.MergedButtons = (function() {
|
||||||
function MergedButtons() {
|
function MergedButtons() {
|
||||||
|
@ -31,7 +33,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
MergedButtons.prototype.removeBranchSuccess = function() {
|
MergedButtons.prototype.removeBranchSuccess = function() {
|
||||||
return location.reload();
|
gl.utils.refreshCurrentPage();
|
||||||
};
|
};
|
||||||
|
|
||||||
MergedButtons.prototype.removeBranchError = function() {
|
MergedButtons.prototype.removeBranchError = function() {
|
||||||
|
|
|
@ -7,6 +7,7 @@ describe Projects::MergeRequestsController, '(JavaScript fixtures)', type: :cont
|
||||||
let(:namespace) { create(:namespace, name: 'frontend-fixtures' )}
|
let(:namespace) { create(:namespace, name: 'frontend-fixtures' )}
|
||||||
let(:project) { create(:project, namespace: namespace, path: 'merge-requests-project') }
|
let(:project) { create(:project, namespace: namespace, path: 'merge-requests-project') }
|
||||||
let(:merge_request) { create(:merge_request, :with_diffs, source_project: project, target_project: project, description: '- [ ] Task List Item') }
|
let(:merge_request) { create(:merge_request, :with_diffs, source_project: project, target_project: project, description: '- [ ] Task List Item') }
|
||||||
|
let(:merged_merge_request) { create(:merge_request, :merged, source_project: project, target_project: project) }
|
||||||
let(:pipeline) do
|
let(:pipeline) do
|
||||||
create(
|
create(
|
||||||
:ci_pipeline,
|
:ci_pipeline,
|
||||||
|
@ -32,6 +33,12 @@ describe Projects::MergeRequestsController, '(JavaScript fixtures)', type: :cont
|
||||||
render_merge_request(example.description, merge_request)
|
render_merge_request(example.description, merge_request)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'merge_requests/merged_merge_request.html.raw' do |example|
|
||||||
|
allow_any_instance_of(MergeRequest).to receive(:source_branch_exists?).and_return(true)
|
||||||
|
allow_any_instance_of(MergeRequest).to receive(:can_remove_source_branch?).and_return(true)
|
||||||
|
render_merge_request(example.description, merged_merge_request)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def render_merge_request(fixture_file_name, merge_request)
|
def render_merge_request(fixture_file_name, merge_request)
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* global MergedButtons */
|
||||||
|
|
||||||
|
import '~/merged_buttons';
|
||||||
|
|
||||||
|
describe('MergedButtons', () => {
|
||||||
|
const fixturesPath = 'merge_requests/merged_merge_request.html.raw';
|
||||||
|
preloadFixtures(fixturesPath);
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
loadFixtures(fixturesPath);
|
||||||
|
this.mergedButtons = new MergedButtons();
|
||||||
|
this.$removeBranchWidget = $('.remove_source_branch_widget:not(.failed)');
|
||||||
|
this.$removeBranchProgress = $('.remove_source_branch_in_progress');
|
||||||
|
this.$removeBranchFailed = $('.remove_source_branch_widget.failed');
|
||||||
|
this.$removeBranchButton = $('.remove_source_branch');
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('removeSourceBranch', () => {
|
||||||
|
it('shows loader', () => {
|
||||||
|
$('.remove_source_branch').trigger('click');
|
||||||
|
expect(this.$removeBranchProgress).toBeVisible();
|
||||||
|
expect(this.$removeBranchWidget).not.toBeVisible();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('removeBranchSuccess', () => {
|
||||||
|
it('refreshes page when branch removed', () => {
|
||||||
|
spyOn(gl.utils, 'refreshCurrentPage').and.stub();
|
||||||
|
const response = { status: 200 };
|
||||||
|
this.$removeBranchButton.trigger('ajax:success', response, 'xhr');
|
||||||
|
expect(gl.utils.refreshCurrentPage).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('removeBranchError', () => {
|
||||||
|
it('shows error message', () => {
|
||||||
|
const response = { status: 500 };
|
||||||
|
this.$removeBranchButton.trigger('ajax:error', response, 'xhr');
|
||||||
|
expect(this.$removeBranchFailed).toBeVisible();
|
||||||
|
expect(this.$removeBranchProgress).not.toBeVisible();
|
||||||
|
expect(this.$removeBranchWidget).not.toBeVisible();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue