blob: 8e99c3cb7d3113ecfafd0c2f08562f78bd374535 [file] [log] [blame]
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as sinon from 'sinon';
import '../../test/common-test-setup';
import './gr-hovercard-run';
import {fixture, html, assert} from '@open-wc/testing';
import {GrHovercardRun} from './gr-hovercard-run';
import {fakeRun4Att, fakeRun4_4} from '../../models/checks/checks-fakes';
import {createAttemptMap} from '../../models/checks/checks-util';
import {CheckRun} from '../../models/checks/checks-model';
suite('gr-hovercard-run tests', () => {
let element: GrHovercardRun;
setup(async () => {
const fakeNow = new Date('Sep 26 2022 12:00:00');
sinon.useFakeTimers(fakeNow);
element = await fixture<GrHovercardRun>(html`
<gr-hovercard-run class="hovered"></gr-hovercard-run>
`);
});
teardown(() => {
element.mouseHide(new MouseEvent('click'));
});
test('render fakeRun4', async () => {
const attemptMap = createAttemptMap(fakeRun4Att);
const attemptDetails = attemptMap.get(fakeRun4_4.checkName)!.attempts;
const run: CheckRun = {...fakeRun4_4, attemptDetails};
element.run = run;
await element.updateComplete;
assert.shadowDom.equal(
element,
/* HTML */ `
<div id="container" role="tooltip" tabindex="-1">
<div class="section">
<div class="chipRow">
<div class="chip">
<gr-icon icon="check"></gr-icon>
<span> COMPLETED </span>
</div>
</div>
</div>
<div class="section">
<div class="sectionIcon">
<gr-icon class="info" icon="info"></gr-icon>
</div>
<div class="sectionContent">
<h3 class="heading-3 name">
<span> FAKE Elimination Long Long Long Long Long </span>
</h3>
</div>
</div>
<div class="section">
<div class="sectionIcon">
<gr-icon class="small" icon="info"> </gr-icon>
</div>
<div class="sectionContent">
<div class="row">
<div class="title">Status</div>
<div>
<a
href="https://www.google.com"
target="_blank"
rel="noopener noreferrer"
>
<gr-icon
aria-label="external link to check status"
class="link small"
icon="open_in_new"
>
</gr-icon>
www.google.com
</a>
</div>
</div>
<div class="row">
<div class="title">Message</div>
<div>Everything was eliminated already.</div>
</div>
</div>
</div>
<div class="section">
<div class="sectionIcon">
<gr-icon class="small" icon="arrow_forward"> </gr-icon>
</div>
<div class="sectionContent">
<div class="attempts row">
<div class="title">Attempt</div>
<div>
<div class="attemptIcon">
<gr-icon class="more_horiz" icon="more_horiz"> </gr-icon>
</div>
<div class="attemptNumber"></div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="error" filled="" icon="error"> </gr-icon>
</div>
<div class="attemptNumber">34th</div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="check_circle" icon="check_circle">
</gr-icon>
</div>
<div class="attemptNumber">35th</div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="error" filled="" icon="error"> </gr-icon>
</div>
<div class="attemptNumber">36th</div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="check_circle" icon="check_circle">
</gr-icon>
</div>
<div class="attemptNumber">37th</div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="error" filled="" icon="error"> </gr-icon>
</div>
<div class="attemptNumber">38th</div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="check_circle" icon="check_circle">
</gr-icon>
</div>
<div class="attemptNumber">39th</div>
</div>
<div>
<div class="attemptIcon">
<gr-icon class="info" icon="info"> </gr-icon>
</div>
<div class="attemptNumber">40th</div>
</div>
</div>
</div>
</div>
<div class="section">
<div class="sectionIcon">
<gr-icon class="small" icon="schedule"> </gr-icon>
</div>
<div class="sectionContent">
<div class="row">
<div class="title">Started</div>
<div>1 year 6 m ago</div>
</div>
<div class="row">
<div class="title">Ended</div>
<div>1 year 6 m ago</div>
</div>
<div class="row">
<div class="title">Completion</div>
<div>1 minute</div>
</div>
</div>
</div>
<div class="section">
<div class="sectionIcon">
<gr-icon class="small" icon="link"> </gr-icon>
</div>
<div class="sectionContent">
<div class="row">
<div class="title">Description</div>
<div>Shows you the possible eliminations.</div>
</div>
<div class="row">
<div class="title">Documentation</div>
<div>
<a
href="https://www.google.com"
target="_blank"
rel="noopener noreferrer"
>
<gr-icon
aria-label="external link to check documentation"
class="link small"
icon="open_in_new"
>
</gr-icon>
www.google.com
</a>
</div>
</div>
</div>
</div>
<div class="action">
<gr-checks-action context="hovercard"> </gr-checks-action>
</div>
</div>
`
);
});
});