blob: aa7f21fc45ac810c223c0117c0a88b9fcd0ee6fc [file] [log] [blame]
Copybara854996b2021-09-07 19:36:02 +00001// Copyright 2019 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5import {assert} from 'chai';
6import {MrCrbugLink} from './mr-crbug-link.js';
7
8
9let element;
10
11describe('mr-crbug-link', () => {
12 beforeEach(() => {
13 element = document.createElement('mr-crbug-link');
14 document.body.appendChild(element);
15 });
16
17 afterEach(() => {
18 document.body.removeChild(element);
19 });
20
21 it('initializes', () => {
22 assert.instanceOf(element, MrCrbugLink);
23 });
24
25 it('In prod, link to crbug.com with project name specified', async () => {
26 element._getHost = () => 'bugs.chromium.org';
27 element.issue = {
28 projectName: 'test',
29 localId: 11,
30 };
31
32 await element.updateComplete;
33
34 const link = element.shadowRoot.querySelector('#bugLink');
35 assert.equal(link.href, 'https://crbug.com/test/11');
36 });
37
38 it('In prod, link to crbug.com with implicit project name', async () => {
39 element._getHost = () => 'bugs.chromium.org';
40 element.issue = {
41 projectName: 'chromium',
42 localId: 11,
43 };
44
45 await element.updateComplete;
46
47 const link = element.shadowRoot.querySelector('#bugLink');
48 assert.equal(link.href, 'https://crbug.com/11');
49 });
50
51 it('does not redirects to approval page for regular issues', async () => {
52 element.issue = {
53 projectName: 'test',
54 localId: 11,
55 };
56
57 await element.updateComplete;
58
59 const link = element.shadowRoot.querySelector('#bugLink');
60 assert.include(link.href.trim(), '/p/test/issues/detail?id=11');
61 });
62});