133 lines
4.3 KiB
CoffeeScript
133 lines
4.3 KiB
CoffeeScript
@displaysRepository = (repo) ->
|
|
expect($('#repo h3 a').attr('href')).toEqual (repo.href)
|
|
|
|
@displaysTabs = (tabs) ->
|
|
for name, tab of tabs
|
|
expect($("#tab_#{name} a").attr('href')).toEqual tab.href unless tab.hidden
|
|
expect($("#tab_#{name}").hasClass('active')).toEqual !!tab.active
|
|
expect($("#tab_#{name}").hasClass('display-inline')).toEqual !tab.hidden if name in ['build', 'job']
|
|
|
|
@displaysSummaryBuildLink = (link, number) ->
|
|
element = $('#summary .number a')
|
|
expect( element.attr('href') ).toEqual link
|
|
expect( element.text().trim() ).toEqual "#{number}"
|
|
|
|
@displaysSummary = (data) ->
|
|
element = $('#summary .left:first-child dt:first-child')
|
|
expect(element.text()).toEqual $.camelize(data.type)
|
|
|
|
element = $('#summary .number a')
|
|
expect(element.attr('href')).toEqual "/#{data.repo}/#{data.type}s/#{data.id}"
|
|
|
|
element = $('#summary .finished_at')
|
|
expect(element.text()).toEqual data.finishedAt
|
|
|
|
element = $('#summary .duration')
|
|
expect(element.text()).toEqual data.duration
|
|
|
|
element = $('#summary .commit a')
|
|
expect(element.attr('href')).toEqual "http://github.com/#{data.repo}/commit/#{data.commit}"
|
|
|
|
element = $('#summary .commit a')
|
|
expect(element.text()).toEqual "#{data.commit} (#{data.branch})"
|
|
|
|
element = $('#summary .compare a')
|
|
expect(element.attr('href')).toEqual "http://github.com/compare/#{data.compare}"
|
|
|
|
element = $('#summary .compare a')
|
|
expect(element.text()).toEqual data.compare
|
|
|
|
element = $('#summary .message')
|
|
expect(element.text()).toEqual data.message
|
|
|
|
@displaysLog = (lines) ->
|
|
ix = 0
|
|
log = $.map(lines, (line) -> ix += 1; "#{ix}#{line}").join("\n")
|
|
expect($('#log p').text().trim()).toEqual log
|
|
|
|
@listsRepos = (items) ->
|
|
listsItems('repo', items)
|
|
|
|
@listsRepo = (data) ->
|
|
row = $('#repos li')[data.row - 1]
|
|
repo = data.item
|
|
|
|
expect($('a.slug', row).attr('href')).toEqual "/#{repo.slug}"
|
|
expect($('a.last_build', row).attr('href')).toEqual repo.build.url
|
|
expect($('.duration', row).text()).toEqual repo.build.duration
|
|
expect($('.finished_at', row).text()).toEqual repo.build.finishedAt
|
|
|
|
@listsBuilds = (builds) ->
|
|
listsItems('build', builds)
|
|
|
|
@listsBuild = (data) ->
|
|
row = $('#builds tbody tr')[data.row - 1]
|
|
build = data.item
|
|
|
|
expect($('.number a', row).attr('href')).toEqual "/#{build.slug}/builds/#{build.id}"
|
|
expect($('.number a', row).text().trim()).toEqual build.number
|
|
expect($('.message', row).text().trim()).toEqual build.message
|
|
expect($('.duration', row).text().trim()).toEqual build.duration
|
|
expect($('.finished_at', row).text().trim()).toEqual build.finishedAt
|
|
expect($(row).attr('class')).toMatch build.color
|
|
|
|
@listsJobs = (data) ->
|
|
table = $(data.table)
|
|
headers = ($(element).text() for element in $("thead th", table))
|
|
expect(headers).toEqual(data.headers)
|
|
|
|
$.each data.jobs, (row, job) -> listsJob(table: data.table, row: row + 1, item: job)
|
|
|
|
@listsJob = (data) ->
|
|
row = $('tbody tr', data.table)[data.row - 1]
|
|
job = data.item
|
|
|
|
element = $(row)
|
|
expect(element.attr('class')).toMatch job.color
|
|
|
|
element = $("td.number", row)
|
|
expect(element.text().trim()).toEqual job.number
|
|
|
|
element = $("td.number a", row)
|
|
expect(element.attr('href')).toEqual "/#{job.repo}/jobs/#{job.id}"
|
|
|
|
element = $("td.duration", row)
|
|
expect(element.text().trim()).toEqual job.duration
|
|
|
|
element = $("td.finished_at", row)
|
|
expect(element.text().trim()).toEqual job.finishedAt
|
|
|
|
element = $("td:nth-child(6)", row)
|
|
expect(element.text().trim()).toEqual job.rvm
|
|
|
|
@listsQueuedJobs = (jobs) ->
|
|
listsItems('queuedJob', jobs)
|
|
|
|
@listsQueuedJob = (data) ->
|
|
job = data.item
|
|
text = $($("#queue_#{data.name} li")[data.row - 1]).text()
|
|
expect(text).toContain job.repo
|
|
expect(text).toContain "##{job.number}"
|
|
|
|
@listsQueue = (data) ->
|
|
name = data.item.name
|
|
job = data.item.item
|
|
text = $($("#queue_#{name} li")[data.row - 1]).text()
|
|
expect(text).toContain job.repo
|
|
expect(text).toContain "##{job.number}"
|
|
|
|
@listsItems = (type, items) ->
|
|
$.each items, (row, item) =>
|
|
this["lists#{$.camelize(type)}"](item: item, row: row + 1)
|
|
|
|
@listsQueues = (queues) ->
|
|
listsItems('queue', queues)
|
|
|
|
@listsWorker = (data) ->
|
|
group = $("#workers li:contains('#{data.group}')")
|
|
element = $($('ul li', group)[data.row - 1])
|
|
worker = data.item
|
|
|
|
expect(element.text()).toContain worker.name
|
|
expect(element.text()).toContain worker.state
|