/** * Copyright (c) 2026, Salesforce, Inc., * All rights reserved. * For full license text, see the LICENSE.txt file */ import { describe, expect, it } from "vitest"; import { formatDirectoryListing, formatTypeInfo } from "../formatter.js"; import type { FieldInfo } from "../walker.js"; function mockField(name: string): FieldInfo { return { name, typeName: `${name}Connection`, typeKind: "OBJECT", isNonNull: false, isList: false, description: null, args: [], }; } describe("formatter", () => { describe("formatDirectoryListing", () => { it("hides Data Cloud fields and shows hint", () => { const result = { type: {} as never, typeName: "RecordQuery", kind: "OBJECT" as const, fields: [ mockField("Account"), mockField("ssot__Account__dlm"), mockField("ssot__Contact__dlm"), mockField("Case"), ], args: [], possibleTypes: [], isLeaf: false, inMutationRecord: false, mutationHiddenFields: [], }; const output = formatDirectoryListing(result, { all: true }); expect(output).not.toContain("ssot__Account__dlm"); expect(output).not.toContain("ssot__Contact__dlm"); expect(output).toContain("Account"); expect(output).toContain("Case"); expect(output).toContain("2 Data Cloud fields hidden"); }); it("shows Data Cloud fields with dataCloud opt", () => { const result = { type: {} as never, typeName: "RecordQuery", kind: "OBJECT" as const, fields: [mockField("Account"), mockField("ssot__Account__dlm"), mockField("Case")], args: [], possibleTypes: [], isLeaf: false, inMutationRecord: false, mutationHiddenFields: [], }; const output = formatDirectoryListing(result, { all: true, dataCloud: true }); expect(output).toContain("ssot__Account__dlm"); expect(output).not.toContain("Data Cloud fields hidden"); }); }); describe("formatTypeInfo", () => { it("hides Data Cloud fields and shows hint", () => { const info = { name: "RecordQuery", kind: "OBJECT" as const, description: null, fields: [mockField("Account"), mockField("ssot__Account__dlm"), mockField("Case")], inputFields: [], enumValues: [], possibleTypes: [], interfaces: [], }; const output = formatTypeInfo(info, undefined, {}); expect(output).not.toContain("ssot__Account__dlm"); expect(output).toContain("Account"); expect(output).toContain("1 Data Cloud fields hidden"); }); }); });