/**
 * @license
 * Copyright 2021 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
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">
                    <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">
                    <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>
      `
    );
  });
});
