Skip to content

Commit

Permalink
refactor(telemetry-utils): Merge MockLogger2 into MockLogger (#23526)
Browse files Browse the repository at this point in the history
## Description

Merges the MockLogger2 and MockLogger classes now that MockLogger has
been made `@internal`. Just one method needed to be moved over since
MockLogger2 already extended MockLogger.
  • Loading branch information
alexvy86 authored Jan 13, 2025
1 parent 52b1bed commit d58210c
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
MessageType,
ISequencedDocumentMessage,
} from "@fluidframework/driver-definitions/internal";
import { MockLogger2, createChildLogger } from "@fluidframework/telemetry-utils/internal";
import { MockLogger, createChildLogger } from "@fluidframework/telemetry-utils/internal";
import Deque from "double-ended-queue";

import type { InboundSequencedContainerRuntimeMessage } from "../messageTypes.js";
Expand All @@ -30,7 +30,7 @@ type PendingStateManager_WithPrivates = Omit<PendingStateManager, "initialMessag
};

describe("Pending State Manager", () => {
const mockLogger = new MockLogger2();
const mockLogger = new MockLogger();
const logger = createChildLogger({ logger: mockLogger });

afterEach("ThrowOnErrorLogs", () => {
Expand Down
6 changes: 5 additions & 1 deletion packages/utils/telemetry-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,11 @@
"typescript": "~5.4.5"
},
"typeValidation": {
"broken": {},
"broken": {
"Class_MockLogger": {
"forwardCompat": false
}
},
"entrypoint": "legacy"
}
}
1 change: 0 additions & 1 deletion packages/utils/telemetry-utils/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ export {
createMockLoggerExt,
type IMockLoggerExt,
MockLogger,
MockLogger2,
} from "./mockLogger.js";
export { ThresholdCounter } from "./thresholdCounter.js";
export {
Expand Down
42 changes: 17 additions & 25 deletions packages/utils/telemetry-utils/src/mockLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,23 @@ ${JSON.stringify(actualEvents)}`);
}
return matchObjects(actual, expected);
}

/**
* Throws if any errors were logged
*/
public assertNoErrors(message?: string, clearEventsAfterCheck: boolean = true): void {
const actualEvents = this.events;
const errors = actualEvents.filter((event) => event.category === "error");
if (clearEventsAfterCheck) {
this.clear();
}
if (errors.length > 0) {
throw new Error(`${message ?? "Errors found in logs"}
error logs:
${JSON.stringify(errors)}`);
}
}
}

function matchObjects(
Expand Down Expand Up @@ -370,28 +387,3 @@ export function createMockLoggerExt(minLogLevel?: LogLevel): IMockLoggerExt {
});
return childLogger as IMockLoggerExt;
}

/**
* Temporary extension to add new functionality during breaking change freeze,
* since MockLogger wasn't able to be made internal yet.
*
* @internal
*/
export class MockLogger2 extends MockLogger {
/**
* Throws if any errors were logged
*/
public assertNoErrors(message?: string, clearEventsAfterCheck: boolean = true): void {
const actualEvents = this.events;
const errors = actualEvents.filter((event) => event.category === "error");
if (clearEventsAfterCheck) {
this.clear();
}
if (errors.length > 0) {
throw new Error(`${message ?? "Errors found in logs"}
error logs:
${JSON.stringify(errors)}`);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ declare type current_as_old_for_Class_EventEmitterWithErrorHandling = requireAss
* typeValidation.broken:
* "Class_MockLogger": {"forwardCompat": false}
*/
// @ts-expect-error compatibility expected to be broken
declare type old_as_current_for_Class_MockLogger = requireAssignableTo<TypeOnly<old.MockLogger>, TypeOnly<current.MockLogger>>

/*
Expand Down

0 comments on commit d58210c

Please sign in to comment.