blob: 6481c26861fd9f230b4e870386036ea15e5ecc38 [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 {
createCommit,
createServerInfo,
} from '../../../test/test-data-generators';
import {CommitId} from '../../../types/common';
import {fixture, html, assert} from '@open-wc/testing';
import {queryAndAssert} from '../../../utils/common-util';
suite('gr-commit-info tests', () => {
let element: GrCommitInfo;
setup(async () => {
element = await fixture(html`<gr-commit-info></gr-commit-info>`);
element.serverConfig = createServerInfo();
});
test('render nothing', async () => {
element.commitInfo = createCommit();
await element.updateComplete;
assert.shadowDom.equal(element, '');
});
test('web link from commit info', async () => {
element.commitInfo = {
...createCommit(),
commit: 'sha45678901234567890' as CommitId,
web_links: [{name: 'gitweb', url: 'link-url'}],
};
await element.updateComplete;
assert.shadowDom.equal(
element,
/* HTML */ `
<div class="container">
<gr-weblink imageandtext=""> </gr-weblink>
<gr-copy-clipboard hastooltip="" hideinput=""> </gr-copy-clipboard>
</div>
`
);
const weblink = queryAndAssert(element, 'gr-weblink');
assert.shadowDom.equal(
weblink,
/* HTML */ `
<a href="link-url" rel="noopener" target="_blank">
<gr-tooltip-content>
<span> sha4567 </span>
</gr-tooltip-content>
</a>
`
);
});
test('web link fall back to search query', async () => {
element.commitInfo = {
...createCommit(),
commit: 'sha45678901234567890' as CommitId,
};
await element.updateComplete;
assert.shadowDom.equal(
element,
/* HTML */ `
<div class="container">
<gr-weblink imageandtext=""> </gr-weblink>
<gr-copy-clipboard hastooltip="" hideinput=""> </gr-copy-clipboard>
</div>
`
);
const weblink = queryAndAssert(element, 'gr-weblink');
assert.shadowDom.equal(
weblink,
/* HTML */ `
<a href="/q/sha4567" rel="noopener" target="_blank">
<gr-tooltip-content>
<span> sha4567 </span>
</gr-tooltip-content>
</a>
`
);
});
});