blob: c02e28945027c1cbe07d02553bd862364363106b [file] [log] [blame]
// Copyright 2026 The Chromium Authors
// 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 {setupLocaleHooks} from '../../testing/LocaleHelpers.js';
import {MockIssuesModel} from '../../testing/MockIssuesModel.js';
import * as IssuesManager from '../issues_manager/issues_manager.js';
describe('ConnectionAllowlistIssue', () => {
setupLocaleHooks();
const mockModel = new MockIssuesModel([]) as unknown as SDK.IssuesModel.IssuesModel;
it('can be created from an inspector issue', () => {
const details: Protocol.Audits.ConnectionAllowlistIssueDetails = {
error: Protocol.Audits.ConnectionAllowlistError.InvalidHeader,
request: {
requestId: 'n1' as Protocol.Network.RequestId,
url: 'https://example.com',
},
};
const inspectorIssue: Protocol.Audits.InspectorIssue = {
code: Protocol.Audits.InspectorIssueCode.ConnectionAllowlistIssue,
details: {
connectionAllowlistIssueDetails: details,
},
};
const issues =
IssuesManager.ConnectionAllowlistIssue.ConnectionAllowlistIssue.fromInspectorIssue(mockModel, inspectorIssue);
assert.lengthOf(issues, 1);
assert.strictEqual(issues[0].code(), 'ConnectionAllowlistIssue::InvalidHeader');
});
it('correctly creates descriptions for all error types', () => {
const errors = [
Protocol.Audits.ConnectionAllowlistError.InvalidHeader,
Protocol.Audits.ConnectionAllowlistError.MoreThanOneList,
Protocol.Audits.ConnectionAllowlistError.ItemNotInnerList,
Protocol.Audits.ConnectionAllowlistError.InvalidAllowlistItemType,
Protocol.Audits.ConnectionAllowlistError.ReportingEndpointNotToken,
Protocol.Audits.ConnectionAllowlistError.InvalidUrlPattern,
];
for (const error of errors) {
const details: Protocol.Audits.ConnectionAllowlistIssueDetails = {
error,
request: {
requestId: 'n1' as Protocol.Network.RequestId,
url: 'https://example.com',
},
};
const issue = new IssuesManager.ConnectionAllowlistIssue.ConnectionAllowlistIssue(details, mockModel);
const description = issue.getDescription();
assert.exists(description, `Description for ${error} should exist`);
assert.strictEqual(description?.file, `connectionAllowlist${error}.md`);
}
});
});