UNPKG

chrome-devtools-frontend

Version:
81 lines (66 loc) 3.39 kB
// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import type * as SDK from '../../../core/sdk/sdk.js'; import * as Protocol from '../../../generated/protocol.js'; import { getElementsWithinComponent, getElementWithinComponent, renderElementIntoDOM, } from '../../../testing/DOMHelpers.js'; import {describeWithLocale} from '../../../testing/EnvironmentHelpers.js'; import * as NetworkComponents from './components.js'; describeWithLocale('RequestTrustTokensView', () => { const mockId = 'mockId' as Protocol.Network.RequestId; const makeRequest = (params?: Protocol.Network.TrustTokenParams, result?: Protocol.Network.TrustTokenOperationDoneEvent) => { return {trustTokenParams: () => params, trustTokenOperationDoneEvent: () => result} as SDK.NetworkRequest.NetworkRequest; }; const renderRequestTrustTokensView = (request: SDK.NetworkRequest.NetworkRequest) => { const component = new NetworkComponents.RequestTrustTokensView.RequestTrustTokensView(request); renderElementIntoDOM(component); void component.render(); return component; }; it('renders the RefreshPolicy for redemptions', () => { const component = renderRequestTrustTokensView(makeRequest({ operation: Protocol.Network.TrustTokenOperationType.Redemption, refreshPolicy: Protocol.Network.TrustTokenParamsRefreshPolicy.UseCached, })); const [typeSpan, refreshPolicySpan] = getElementsWithinComponent(component, 'devtools-report-value.code', HTMLElement); assert.strictEqual(typeSpan.textContent, 'Redemption'); assert.strictEqual(refreshPolicySpan.textContent, 'UseCached'); }); it('renders all issuers as a list', () => { const expectedIssuers = ['example.org', 'foo.dev', 'bar.com']; const component = renderRequestTrustTokensView(makeRequest({ operation: Protocol.Network.TrustTokenOperationType.Signing, issuers: expectedIssuers, } as Protocol.Network.TrustTokenParams)); const issuerElements = getElementsWithinComponent(component, 'ul.issuers-list > li', HTMLElement); const actualIssuers = [...issuerElements].map(e => e.textContent); assert.deepEqual(actualIssuers.sort(), expectedIssuers.sort()); }); it('renders a result section with success status for successful requests', () => { const component = renderRequestTrustTokensView(makeRequest(undefined, { status: Protocol.Network.TrustTokenOperationDoneEventStatus.Ok, type: Protocol.Network.TrustTokenOperationType.Issuance, requestId: mockId, })); const simpleText = getElementWithinComponent(component, 'span > strong', HTMLElement); assert.exists(simpleText); assert.strictEqual(simpleText.textContent, 'Success'); }); it('renders a result section with failure status for failed requests', () => { const component = renderRequestTrustTokensView(makeRequest(undefined, { status: Protocol.Network.TrustTokenOperationDoneEventStatus.BadResponse, type: Protocol.Network.TrustTokenOperationType.Issuance, requestId: mockId, })); const simpleText = getElementWithinComponent(component, 'span > strong', HTMLElement); assert.exists(simpleText); assert.strictEqual(simpleText.textContent, 'Failure'); }); });