blob: 826f99d31ef89ab67c631052071db786170ec2e9 [file] [log] [blame]
<!DOCTYPE html>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<script src="../../../bower_components/webcomponentsjs/webcomponents.js"></script>
<script src="/bower_components/web-component-tester/browser.js"></script>
<script src="../../../bower_components/moment/min/moment.min.js"></script>
<link rel="import" href="/bower_components/polymer/polymer.html">
<title>gr-checks-item</title>
<link rel="import" href="gr-checks-item.html">
<test-fixture id="basic">
<template is="dom-template">
<gr-checks-item
check="{{check}}"
retry-check="[[retryCheck]]">
</gr-checks-item>
</template>
</test-fixture>
<script>
suite('gr-checks-item tests', () => {
let element;
let sandbox;
let retryCheckSpy;
setup((done) => {
sandbox = sinon.sandbox.create();
retryCheckSpy = sinon.stub();
retryCheckSpy.returns(Promise.resolve());
element = fixture('basic', {
retryCheck: retryCheckSpy,
check: {
checkId: 'test-check-id',
url: 'http://example.com/test-log-url',
started: "2019-02-06T22:25:19.269Z",
finished: "2019-02-06T22:25:44.574Z",
},
});
flush(done);
});
teardown(() => { sandbox.restore(); });
test('renders the status', () => {
const status = element.$$('td:nth-child(4) > gr-checks-status');
assert.exists(status);
});
test('renders the run time', () => {
const name = element.$$('td:nth-child(6)');
assert.equal(name .textContent.trim(), "11:25:19 PM");
});
suite('duration', () => {
test('renders the run duration', () => {
const name = element.$$('td:nth-child(7)');
assert.equal(name .textContent.trim(), "25 sec");
});
test('renders 0 sec when the start and end time are the same', () => {
element.check = {
checkId: 'test-check-id',
url: 'http://example.com/test-log-url',
started: "2019-02-06T22:25:19.269Z",
finished: "2019-02-06T22:25:19.269Z",
};
const name = element.$$('td:nth-child(7)');
assert.equal(name .textContent.trim(), "0 sec");
});
});
test('renders a link to the log', () => {
const logLink = element.$$('td:nth-child(8) > a');
assert.equal(logLink.getAttribute('href'), "http://example.com/test-log-url");
assert.equal(logLink.textContent.trim(), "View log");
});
// pausing this check until retry api is available from backend
// suite('retryCheck', () => {
// let retryCheckLink;
// setup(() => {
// retryCheckLink = element.$$('td:nth-child(7) > gr-button');
// });
// test('shows a link to the retry button', () => {
// assert.equal(retryCheckLink.textContent.trim(), "Re-run");
// });
// test('clicking on the link calls the retryCheck property', () => {
// assert.isFalse(retryCheckSpy.called);
// retryCheckLink.click();
// assert.isTrue(retryCheckSpy.called);
// });
// });
});
</script>