Skip to content

Commit 08e47db

Browse files
committed
chore: merge with main properly
1 parent ef863ca commit 08e47db

File tree

15 files changed

+40
-18
lines changed

15 files changed

+40
-18
lines changed

src/common/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,10 +318,10 @@ function commaSeparatedToArray<T extends string[]>(str: string | string[] | unde
318318
return str as T;
319319
}
320320

321-
export function registerKnownSecretsInRootKeychain(userConfig: UserConfig): void {
321+
export function registerKnownSecretsInRootKeychain(userConfig: Partial<UserConfig>): void {
322322
const keychain = Keychain.root;
323323

324-
const maybeRegister = (value: string | undefined, kind: Secret["kind"]) => {
324+
const maybeRegister = (value: string | undefined, kind: Secret["kind"]): void => {
325325
if (value) {
326326
keychain.register(value, kind);
327327
}

src/common/keychain.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class Keychain {
1414
private secrets: Secret[];
1515
private static rootKeychain: Keychain = new Keychain();
1616

17-
private constructor() {
17+
constructor() {
1818
this.secrets = [];
1919
}
2020

src/common/logger.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,10 @@ export class CompositeLogger extends LoggerBase {
341341
export class NullLogger extends LoggerBase {
342342
protected type?: LoggerType;
343343

344+
constructor() {
345+
super(undefined);
346+
}
347+
344348
protected logCore(): void {
345349
// No-op logger, does not log anything
346350
}

src/common/session.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import type {
1515
import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
1616
import { ErrorCodes, MongoDBError } from "./errors.js";
1717
import type { ExportsManager } from "./exportsManager.js";
18-
import { Keychain } from "./keychain.js";
18+
import type { Keychain } from "./keychain.js";
1919

2020
export interface SessionOptions {
2121
apiBaseUrl: string;

src/transports/base.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import type { LoggerBase } from "../common/logger.js";
88
import { CompositeLogger, ConsoleLogger, DiskLogger, McpLogger } from "../common/logger.js";
99
import { ExportsManager } from "../common/exportsManager.js";
1010
import { DeviceId } from "../helpers/deviceId.js";
11-
import { type ConnectionManagerFactoryFn } from "../common/connectionManager.js";
1211
import { Keychain } from "../common/keychain.js";
1312
import { createMCPConnectionManager, type ConnectionManagerFactoryFn } from "../common/connectionManager.js";
1413
import {

tests/integration/helpers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import type { ConnectionManager, ConnectionState } from "../../src/common/connec
1414
import { MCPConnectionManager } from "../../src/common/connectionManager.js";
1515
import { DeviceId } from "../../src/helpers/deviceId.js";
1616
import { connectionErrorHandler } from "../../src/common/connectionErrorHandler.js";
17+
import { Keychain } from "../../src/common/keychain.js";
1718

1819
interface ParameterInfo {
1920
name: string;
@@ -82,6 +83,7 @@ export function setupIntegrationTest(
8283
logger,
8384
exportsManager,
8485
connectionManager,
86+
keychain: new Keychain(),
8587
});
8688

8789
// Mock hasValidAccessToken for tests

tests/integration/telemetry.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { describe, expect, it } from "vitest";
66
import { CompositeLogger } from "../../src/common/logger.js";
77
import { MCPConnectionManager } from "../../src/common/connectionManager.js";
88
import { ExportsManager } from "../../src/common/exportsManager.js";
9+
import { Keychain } from "../../src/common/keychain.js";
910

1011
describe("Telemetry", () => {
1112
it("should resolve the actual device ID", async () => {
@@ -20,6 +21,7 @@ describe("Telemetry", () => {
2021
logger,
2122
exportsManager: ExportsManager.init(config, logger),
2223
connectionManager: new MCPConnectionManager(config, driverOptions, logger, deviceId),
24+
keychain: new Keychain(),
2325
}),
2426
config,
2527
deviceId

tests/integration/tools/atlas/dbUsers.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ describeWithAtlas("db users", (integration) => {
7474
expect(elements[0]?.text).toContain("created successfully");
7575
expect(elements[0]?.text).toContain(userName);
7676
expect(elements[0]?.text).not.toContain("testpassword");
77-
expect(integration.mcpServer().session.keychain.allSecrets).to.deep.equal([
77+
expect(integration.mcpServer().session.keychain.allSecrets).toEqual([
7878
{
7979
value: userName,
8080
kind: "user",
@@ -98,7 +98,7 @@ describeWithAtlas("db users", (integration) => {
9898
const passwordEnd = elements[0]?.text.length ?? 1 - 1;
9999

100100
const password = elements[0]?.text.substring(passwordStart).substring(0, passwordEnd).trim();
101-
expect(integration.mcpServer().session.keychain.allSecrets).to.deep.equal([
101+
expect(integration.mcpServer().session.keychain.allSecrets).toEqual([
102102
{
103103
value: userName,
104104
kind: "user",

tests/integration/tools/mongodb/mongodbTool.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { type ConnectionErrorHandler, connectionErrorHandler } from "../../../..
1717
import { defaultTestConfig } from "../../helpers.js";
1818
import { setupMongoDBIntegrationTest } from "./mongodbHelpers.js";
1919
import { ErrorCodes } from "../../../../src/common/errors.js";
20+
import { Keychain } from "../../../../src/common/keychain.js";
2021

2122
const injectedErrorHandler: ConnectionErrorHandler = (error) => {
2223
switch (error.code) {
@@ -88,6 +89,7 @@ describe("MongoDBTool implementations", () => {
8889
logger,
8990
exportsManager,
9091
connectionManager,
92+
keychain: new Keychain(),
9193
});
9294
const telemetry = Telemetry.create(session, userConfig, deviceId);
9395

tests/integration/transports/streamableHttp.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { config } from "../../../src/common/config.js";
66
import type { LoggerType, LogLevel, LogPayload } from "../../../src/common/logger.js";
77
import { LoggerBase, LogId } from "../../../src/common/logger.js";
88
import { createMCPConnectionManager } from "../../../src/common/connectionManager.js";
9+
import { Keychain } from "../../../src/common/keychain.js";
910

1011
describe("StreamableHttpRunner", () => {
1112
let runner: StreamableHttpRunner;
@@ -138,7 +139,7 @@ describe("StreamableHttpRunner", () => {
138139
}
139140

140141
it("can provide custom logger", async () => {
141-
const logger = new CustomLogger();
142+
const logger = new CustomLogger(new Keychain());
142143
const runner = new StreamableHttpRunner({
143144
userConfig: config,
144145
createConnectionManager: createMCPConnectionManager,

0 commit comments

Comments
 (0)