Commit f7164201 authored by Jacob Schatz's avatar Jacob Schatz

adds tests (and passes them) for ajax open and close merge requests.

parent cbdc8dd4
%a.btn-close :css
.hidden { display: none !important }
.flash-container
.flash-alert
.flash-notice
.status-box.status-box-open Open
.status-box.status-box-closed.hidden Closed
%a.btn-close{"href" => "http://gitlab.com/merge_requests/6/close"} Close
%a.btn-reopen.hidden{"href" => "http://gitlab.com/merge_requests/6/reopen"} Reopen
.detail-page-description .detail-page-description
.description.js-task-list-container .description.js-task-list-container
......
...@@ -44,7 +44,7 @@ describe 'reopen/close issue', -> ...@@ -44,7 +44,7 @@ describe 'reopen/close issue', ->
expect($('div.status-box-closed')).toBeVisible() expect($('div.status-box-closed')).toBeVisible()
expect($('div.status-box-open')).toBeHidden() expect($('div.status-box-open')).toBeHidden()
it 'fails to closes an issue with success:false', -> it 'fails to close an issue with success:false', ->
$.ajax = (obj) -> $.ajax = (obj) ->
expect(obj.type).toBe('PUT') expect(obj.type).toBe('PUT')
......
...@@ -21,3 +21,91 @@ describe 'MergeRequest', -> ...@@ -21,3 +21,91 @@ describe 'MergeRequest', ->
expect(req.data.merge_request.description).not.toBe(null) expect(req.data.merge_request.description).not.toBe(null)
$('.js-task-list-field').trigger('tasklist:changed') $('.js-task-list-field').trigger('tasklist:changed')
describe 'reopen/close merge request', ->
fixture.preload('merge_requests_show.html')
beforeEach ->
fixture.load('merge_requests_show.html')
@merge_request = new MergeRequest({})
it 'closes a merge request', ->
$.ajax = (obj) ->
expect(obj.type).toBe('PUT')
expect(obj.url).toBe('http://gitlab.com/merge_requests/6/close')
obj.success saved:true
$btnClose = $('a.btn-close')
$btnReopen = $('a.btn-reopen')
expect($btnReopen).toBeHidden()
expect($btnClose.text()).toBe('Close')
expect(typeof $btnClose.prop('disabled')).toBe('undefined')
$btnClose.trigger('click')
expect($btnReopen).toBeVisible()
expect($btnClose).toBeHidden()
expect($('div.status-box-closed')).toBeVisible()
expect($('div.status-box-open')).toBeHidden()
it 'fails to close a merge request with success:false', ->
$.ajax = (obj) ->
expect(obj.type).toBe('PUT')
expect(obj.url).toBe('http://goesnowhere.nothing/whereami')
obj.success saved:false
$btnClose = $('a.btn-close')
$btnReopen = $('a.btn-reopen')
$btnClose.attr('href','http://goesnowhere.nothing/whereami')
expect($btnReopen).toBeHidden()
expect($btnClose.text()).toBe('Close')
expect(typeof $btnClose.prop('disabled')).toBe('undefined')
$btnClose.trigger('click')
expect($btnReopen).toBeHidden()
expect($btnClose).toBeVisible()
expect($('div.status-box-closed')).toBeHidden()
expect($('div.status-box-open')).toBeVisible()
expect($('div.flash-alert')).toBeVisible()
expect($('div.flash-alert').text()).toBe('Unable to update this merge request at this time.')
it 'fails to closes an issue with HTTP error', ->
$.ajax = (obj) ->
expect(obj.type).toBe('PUT')
expect(obj.url).toBe('http://goesnowhere.nothing/whereami')
obj.error()
$btnClose = $('a.btn-close')
$btnReopen = $('a.btn-reopen')
$btnClose.attr('href','http://goesnowhere.nothing/whereami')
expect($btnReopen).toBeHidden()
expect($btnClose.text()).toBe('Close')
expect(typeof $btnClose.prop('disabled')).toBe('undefined')
$btnClose.trigger('click')
expect($btnReopen).toBeHidden()
expect($btnClose).toBeVisible()
expect($('div.status-box-closed')).toBeHidden()
expect($('div.status-box-open')).toBeVisible()
expect($('div.flash-alert')).toBeVisible()
expect($('div.flash-alert').text()).toBe('Unable to update this merge request at this time.')
it 'reopens a merge request', ->
$.ajax = (obj) ->
expect(obj.type).toBe('PUT')
expect(obj.url).toBe('http://gitlab.com/merge_requests/6/reopen')
obj.success saved: true
$btnClose = $('a.btn-close')
$btnReopen = $('a.btn-reopen')
expect($btnReopen.text()).toBe('Reopen')
$btnReopen.trigger('click')
expect($btnReopen).toBeHidden()
expect($btnClose).toBeVisible()
expect($('div.status-box-open')).toBeVisible()
expect($('div.status-box-closed')).toBeHidden()
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment