page.myBuilds.builds[0].as(build => { assert.ok(build.isPublic); assert.ok(build.isPassed); assert.equal(build.owner.text, 'travis-ci'); assert.ok(build.owner.href.endsWith('/travis-ci')); assert.equal(build.repo.text, 'travis-lol-a-very-long-repository'); assert.ok(build.repo.href.endsWith('/travis-ci/travis-lol-a-very-long-repository')); assert.equal(build.branch.text, 'another-branch'); assert.ok(build.branch.href.endsWith('travis-ci/travis-lol-a-very-long-repository/tree/another-branch')); assert.equal(build.message.text, 'get used to it'); assert.equal(build.message.title, 'get used to it'); assert.equal(build.stateAndNumber.text, '#44 passed'); assert.ok(build.stateAndNumber.href.endsWith('/travis-ci/travis-lol-a-very-long-repository/builds/1919')); assert.equal(build.sha.text, 'acab'); assert.ok(build.sha.href.endsWith('/travis-ci/travis-lol-a-very-long-repository/commit/acab')); assert.equal(build.duration.text, '19 min 19 sec'); assert.equal(build.duration.title, `Started ${prettyDate([this.permissionBuild.started_at])}`); assert.equal(build.finished.text, 'about a year ago'); assert.equal(build.finished.title, this.permissionBuild.finished_at.toISOString()); });
buildPage.stages[1].as(stage => { assert.equal(stage.name, 'second'); assert.ok(stage.isFailed); assert.equal(stage.stateTitle, 'Stage failed'); assert.equal(stage.duration.text, '11 sec'); assert.equal(stage.duration.title, `Started ${prettyDate([jobTime])}`); assert.equal(stage.jobs[0].number, '1234.999'); assert.ok(stage.allowFailures.isHidden, 'expected no allowed failures text'); });
buildPage.stages[0].as(stage => { assert.equal(stage.name, 'first', 'expected the stages to be numerically sorted'); assert.equal(stage.nameEmojiTitle, 'two_men_holding_hands'); assert.ok(stage.isPassed); assert.equal(stage.stateTitle, 'Stage passed'); assert.equal(stage.duration.text, '1 min 11 sec'); assert.equal(stage.duration.title, `Started ${prettyDate([jobTime])}`); assert.equal(stage.jobs[0].number, '1234.1'); assert.equal(stage.jobs[1].number, '1234.2'); assert.equal(stage.allowFailures.text, 'Your build matrix was set to allow the failure of job 1234.2 so we continued this build to the next stage.'); });
requestsPage.requests[0].as(request => { assert.ok(request.isApproved); assert.ok(request.isHighlighted, 'expected the request to be highlighted because of the query param'); assert.equal(request.commitLink.text, 'abc123'); assert.equal(request.commitMessage.text, 'A commit message'); assert.equal(request.createdAt.text, 'about a year ago'); assert.equal(request.createdAt.title, prettyDate([this.approvedRequest.created_at])); assert.equal(request.buildNumber.text, '1919'); assert.equal(request.requestMessage.text, 'A request message'); assert.equal(request.requestMessage.title, 'A request message'); });
test('we query the API for all the jobs', async function (assert) { enableFeature('show-running-jobs-in-sidebar'); let startedAt = new Date(); // the default mirage limit is 10, so if we create 15 jobs for each queued and // started lists, the app code will have to do 2 queries server.createList('job', 15, { state: 'created', repository: this.repo, commit: this.commit, build: this.build }); server.createList('job', 15, { state: 'started', repository: this.repo, commit: this.commit, build: this.build, started_at: startedAt }); await visit('/'); await click('[data-test-sidebar-running-tab] a'); assert.dom('[data-test-sidebar-running-tab]').hasText('Running (15/31)', 'running tab correctly shows number of started/queued jobs'); assert.dom('[data-test-sidebar-running-job]').exists({ count: 15 }); assert.dom('[data-test-sidebar-running-job]:first-of-type time.duration').hasAttribute('title', `Started ${prettyDate([startedAt])}`); assert.dom('[data-test-sidebar-queued-job]').exists({ count: 16 }); });