| <!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> |