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.');
    });
Example #4
0
    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 });
  });