mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-09-28 21:24:26 +08:00
Not only this is shorter, it also allows having a side-effect import in addition to the type-only import and is properly understood by lit-analyzer. No-Presubmit: true Bug: 370734442 Change-Id: I32f0a6198e8de8175201d8ce576a63a9ce25806f Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5921081 Commit-Queue: Danil Somsikov <dsv@chromium.org> Reviewed-by: Paul Irish <paulirish@chromium.org> Commit-Queue: Paul Irish <paulirish@chromium.org> Auto-Submit: Danil Somsikov <dsv@chromium.org>
65 lines
2.2 KiB
TypeScript
65 lines
2.2 KiB
TypeScript
// Copyright 2021 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 * as Common from '../core/common/common.js';
|
|
import type * as SDK from '../core/sdk/sdk.js';
|
|
import * as IssuesManager from '../models/issues_manager/issues_manager.js';
|
|
|
|
import {MockIssuesModel} from './MockIssuesModel.js';
|
|
import type {StubIssue} from './StubIssue.js';
|
|
|
|
export class MockIssuesManager extends Common.ObjectWrapper.ObjectWrapper<IssuesManager.IssuesManager.EventTypes> {
|
|
private mockIssues: IssuesManager.Issue.Issue[];
|
|
private issueCounts = new Map<IssuesManager.Issue.IssueKind, number>([
|
|
[IssuesManager.Issue.IssueKind.IMPROVEMENT, 0],
|
|
[IssuesManager.Issue.IssueKind.BREAKING_CHANGE, 1],
|
|
[IssuesManager.Issue.IssueKind.PAGE_ERROR, 2],
|
|
]);
|
|
|
|
// An empty model to pass along for the IssuesManager.Events.IssueAdded event.
|
|
private mockModel = new MockIssuesModel([]) as unknown as SDK.IssuesModel.IssuesModel;
|
|
|
|
constructor(issues: Iterable<IssuesManager.Issue.Issue>) {
|
|
super();
|
|
this.mockIssues = Array.from(issues);
|
|
}
|
|
|
|
issues() {
|
|
return this.mockIssues;
|
|
}
|
|
|
|
getIssueById(id: string): IssuesManager.Issue.Issue|null {
|
|
for (const issue of this.mockIssues) {
|
|
if (issue.getIssueId() === id) {
|
|
return issue;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
numberOfIssues(kind?: IssuesManager.Issue.IssueKind): number {
|
|
if (kind) {
|
|
return this.issueCounts.get(kind) ?? 0;
|
|
}
|
|
return Array.from(this.issueCounts.values()).reduce((sum, v) => sum + v, 0);
|
|
}
|
|
|
|
setNumberOfIssues(counts: Map<IssuesManager.Issue.IssueKind, number>): void {
|
|
this.issueCounts = counts;
|
|
}
|
|
|
|
incrementIssueCountsOfAllKinds() {
|
|
for (const [key, value] of this.issueCounts) {
|
|
this.issueCounts.set(key, value + 1);
|
|
}
|
|
this.dispatchEventToListeners(IssuesManager.IssuesManager.Events.ISSUES_COUNT_UPDATED);
|
|
}
|
|
|
|
addIssue(mockIssue: StubIssue) {
|
|
this.mockIssues.push(mockIssue as IssuesManager.Issue.Issue);
|
|
this.dispatchEventToListeners(
|
|
IssuesManager.IssuesManager.Events.ISSUE_ADDED, {issue: mockIssue, issuesModel: this.mockModel});
|
|
}
|
|
}
|