// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import { assert } from 'chai';
import sinon from 'sinon';
import * as Host from '../../../core/host/host.js';
import * as Platform from '../../../core/platform/platform.js';
import { dispatchClickEvent, renderElementIntoDOM, } from '../../../testing/DOMHelpers.js';
import { setupLocaleHooks } from '../../../testing/LocaleHelpers.js';
import * as RenderCoordinator from '../render_coordinator/render_coordinator.js';
import * as PanelFeedback from './panel_feedback.js';
const { urlString } = Platform.DevToolsPath;
describe('Feedback button', () => {
    setupLocaleHooks();
    it('calls out to the Host API to open the link in a new tab', async () => {
        const openInNewTabStub = sinon.stub(Host.InspectorFrontendHost.InspectorFrontendHostInstance, 'openInNewTab');
        const component = new PanelFeedback.FeedbackButton.FeedbackButton();
        component.data = {
            feedbackUrl: urlString `https://feedbackurl.com`,
        };
        renderElementIntoDOM(component);
        await RenderCoordinator.done();
        const button = component.shadowRoot.querySelector('devtools-button');
        assert.instanceOf(button, HTMLElement);
        dispatchClickEvent(button);
        sinon.assert.callCount(openInNewTabStub, 1);
        assert.isTrue(openInNewTabStub.firstCall.calledWith(urlString `https://feedbackurl.com`), 'openInNewTab was not called with the expected URL.');
    });
});
//# sourceMappingURL=FeedbackButton.test.js.map