blob: 92fc2bb397f48a30e975dc22d837109cd2edd2eb [file] [log] [blame]
/**
* @license
* Copyright 2015 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import '../../../test/common-test-setup';
import './gr-commit-info';
import {GrCommitInfo} from './gr-commit-info';
import {GerritNav} from '../../core/gr-navigation/gr-navigation';
import {
createChange,
createCommit,
createServerInfo,
} from '../../../test/test-data-generators';
import {CommitId, RepoName} from '../../../types/common';
import {fixture, html, assert} from '@open-wc/testing';
import {waitEventLoop} from '../../../test/test-utils';
suite('gr-commit-info tests', () => {
let element: GrCommitInfo;
setup(async () => {
element = await fixture(html`<gr-commit-info></gr-commit-info>`);
});
test('render', async () => {
element.change = createChange();
element.commitInfo = createCommit();
element.serverConfig = createServerInfo();
await element.updateComplete;
assert.shadowDom.equal(
element,
/* HTML */ `
<div class="container">
<a href="/q/" rel="noopener" target="_blank"> </a>
<gr-copy-clipboard hastooltip="" hideinput=""> </gr-copy-clipboard>
</div>
`
);
});
test('weblinks use GerritNav interface', async () => {
const weblinksStub = sinon
.stub(GerritNav, '_generateWeblinks')
.returns([{name: 'stubb', url: '#s'}]);
element.change = createChange();
element.commitInfo = createCommit();
element.serverConfig = createServerInfo();
await waitEventLoop();
assert.isTrue(weblinksStub.called);
});
test('no web link when unavailable', () => {
element.commitInfo = createCommit();
element.serverConfig = createServerInfo();
element.change = {...createChange(), labels: {}, project: '' as RepoName};
assert.isNotOk(element._showWebLink);
});
test('use web link when available', () => {
sinon.stub(GerritNav, 'getPatchSetWeblink').callsFake(() => {
return {name: 'test-name', url: 'test-url'};
});
element.change = {...createChange(), labels: {}, project: '' as RepoName};
element.commitInfo = {
...createCommit(),
commit: 'commitsha' as CommitId,
web_links: [{name: 'gitweb', url: 'link-url'}],
};
element.serverConfig = createServerInfo();
assert.isOk(element._showWebLink);
assert.equal(element._webLink, 'test-url');
});
});