@fern-api/fdr-sdk 1.2.44-345d4ef0ea → 1.2.44-dd364964d5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/js/navigation/ledger-root-builder.js +25 -3
  2. package/dist/js/navigation/ledger-root-builder.js.map +1 -1
  3. package/dist/js/navigation/ledger-root-builder.mjs +25 -3
  4. package/dist/js/navigation/ledger-root-builder.mjs.map +1 -1
  5. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.d.ts +2 -0
  6. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.d.ts.map +1 -0
  7. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.js +308 -0
  8. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.js.map +1 -0
  9. package/dist/navigation/__test__/ledger-root-builder.rootChildOrder.test.js +5 -5
  10. package/dist/navigation/__test__/ledger-root-builder.rootChildOrder.test.js.map +1 -1
  11. package/dist/navigation/__test__/ledger-root-builder.sidebarDepth.test.js +194 -0
  12. package/dist/navigation/__test__/ledger-root-builder.sidebarDepth.test.js.map +1 -1
  13. package/dist/navigation/__test__/ledger-root-builder.skipSlugSiblingSection.test.js +86 -0
  14. package/dist/navigation/__test__/ledger-root-builder.skipSlugSiblingSection.test.js.map +1 -1
  15. package/dist/navigation/ledger-root-builder.d.ts.map +1 -1
  16. package/dist/navigation/ledger-root-builder.js +45 -5
  17. package/dist/navigation/ledger-root-builder.js.map +1 -1
  18. package/dist/tsconfig.tsbuildinfo +1 -1
  19. package/dist/types/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.d.ts +2 -0
  20. package/dist/types/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.d.ts.map +1 -0
  21. package/dist/types/navigation/ledger-root-builder.d.ts.map +1 -1
  22. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ledger-root-builder.contentfulRedirectRepro.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-root-builder.contentfulRedirectRepro.test.d.ts","sourceRoot":"","sources":["../../../src/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,308 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { FernNavigation } from "../../index.js";
3
+ import { buildFullRootFromSegments } from "../ledger-root-builder.js";
4
+ /**
5
+ * Reproduction test for the contentful extensibility redirect regression.
6
+ *
7
+ * The extensibility product has this V1 sidebar structure:
8
+ * SidebarGroup:
9
+ * [0] Section "App Framework" (collapsed: true) -> contains "Overview" page
10
+ * [1] Section "Field Editors" (collapsed: true) -> contains pages
11
+ * [2] Page "OAuth"
12
+ * [3] Section "Webhooks" (collapsed: true) -> contains pages
13
+ *
14
+ * V2 (reads V1 tree directly) redirects /extensibility -> first child of
15
+ * first section -> app-framework/overview.
16
+ *
17
+ * Ledger (reconstructs from segments) should produce the same redirect target.
18
+ *
19
+ * ROOT CAUSE: The publisher's hashSegment uses sequential order (not
20
+ * childPosition) for displaySortOrder in the hash. When childPosition was
21
+ * added, the tabRoot segment hash didn't change, so old nav entries with
22
+ * display_sort_order=0 persisted (INSERT ON CONFLICT DO NOTHING). The reader
23
+ * then sorts OAuth(pos=0) before AppFramework(childIndex=0) due to the seq
24
+ * tiebreaker (tabRoot items have lower seq).
25
+ *
26
+ * FIX: The reader's sort tiebreaker now prefers sections over pages at equal
27
+ * positions. Additionally, the publisher hash now includes childPosition so
28
+ * republishing produces a new segment hash and correct nav entries.
29
+ */
30
+ function pageRoute(opts) {
31
+ return {
32
+ type: "markdown",
33
+ fullPath: opts.fullPath,
34
+ hidden: false,
35
+ metadata: { title: opts.title, pageId: `pg-${opts.title.toLowerCase().replace(/ /g, "-")}` },
36
+ ...(opts.displaySortOrder != null ? { displaySortOrder: opts.displaySortOrder } : {})
37
+ };
38
+ }
39
+ function segment(opts) {
40
+ return {
41
+ segmentId: opts.segmentHash,
42
+ segmentHash: opts.segmentHash,
43
+ section: opts.section,
44
+ locale: "en",
45
+ sortOrder: opts.sortOrder,
46
+ hidden: false,
47
+ metadata: opts.metadata,
48
+ product: opts.product
49
+ ? {
50
+ id: opts.product.id,
51
+ displayName: opts.product.displayName,
52
+ icon: null,
53
+ sortOrder: 0,
54
+ hidden: false,
55
+ viewers: [],
56
+ orphaned: false,
57
+ featureFlags: [],
58
+ metadata: { slug: opts.product.slug, default: opts.product.isDefault ?? false }
59
+ }
60
+ : null,
61
+ version: null,
62
+ variant: null,
63
+ tab: null
64
+ };
65
+ }
66
+ const PRODUCT = {
67
+ id: "product:extensibility",
68
+ displayName: "Extensibility",
69
+ slug: "extensibility",
70
+ isDefault: false
71
+ };
72
+ describe("contentful extensibility redirect regression", () => {
73
+ /**
74
+ * Ideal case: sections have childIndex=0,1,3 and OAuth has
75
+ * displaySortOrder=2 (its correct global position).
76
+ * The sort correctly interleaves them.
77
+ */
78
+ it("correct data: redirects to first section's first page (app-framework/overview)", () => {
79
+ const root = buildFullRootFromSegments({
80
+ basePath: "developers/docs",
81
+ title: "Contentful",
82
+ segments: [
83
+ segment({
84
+ segmentHash: "seg-root",
85
+ section: "",
86
+ sortOrder: 0,
87
+ metadata: { type: "tabRoot" },
88
+ product: PRODUCT
89
+ }),
90
+ segment({
91
+ segmentHash: "seg-app-framework",
92
+ section: "app-framework",
93
+ sortOrder: 1,
94
+ metadata: {
95
+ type: "section",
96
+ title: "App Framework",
97
+ childIndex: 0,
98
+ collapsed: true,
99
+ sidebarDepth: 0
100
+ },
101
+ product: PRODUCT
102
+ }),
103
+ segment({
104
+ segmentHash: "seg-field-editors",
105
+ section: "field-editors",
106
+ sortOrder: 2,
107
+ metadata: {
108
+ type: "section",
109
+ title: "Field Editors",
110
+ childIndex: 1,
111
+ collapsed: true,
112
+ sidebarDepth: 0
113
+ },
114
+ product: PRODUCT
115
+ }),
116
+ segment({
117
+ segmentHash: "seg-webhooks",
118
+ section: "webhooks",
119
+ sortOrder: 3,
120
+ metadata: { type: "section", title: "Webhooks", childIndex: 3, collapsed: true, sidebarDepth: 0 },
121
+ product: PRODUCT
122
+ })
123
+ ],
124
+ navBySegment: new Map([
125
+ [
126
+ "seg-root",
127
+ [pageRoute({ fullPath: "extensibility/oauth", title: "OAuth", displaySortOrder: 2 })]
128
+ ],
129
+ [
130
+ "seg-app-framework",
131
+ [pageRoute({ fullPath: "extensibility/app-framework/overview", title: "Overview" })]
132
+ ],
133
+ [
134
+ "seg-field-editors",
135
+ [
136
+ pageRoute({ fullPath: "extensibility/field-editors/overview", title: "Field Editors Overview" })
137
+ ]
138
+ ],
139
+ [
140
+ "seg-webhooks",
141
+ [pageRoute({ fullPath: "extensibility/webhooks/overview", title: "Webhooks Overview" })]
142
+ ]
143
+ ])
144
+ });
145
+ FernNavigation.utils.mutableUpdatePointsTo(root);
146
+ const productGroup = root.child;
147
+ expect(productGroup.type).toBe("productgroup");
148
+ const product = productGroup.children[0];
149
+ expect(product.type).toBe("product");
150
+ expect(product.pointsTo).toBe("developers/docs/extensibility/app-framework/overview");
151
+ });
152
+ /**
153
+ * THE BUG: Sections have childIndex (republished with new publisher code)
154
+ * but the tabRoot segment hash didn't change, so the old nav entry with
155
+ * display_sort_order=0 persists. Sort fires (both have positions), but
156
+ * OAuth(pos=0) ties with AppFramework(childIndex=0). The fix's tiebreaker
157
+ * prefers sections over pages at equal positions.
158
+ */
159
+ it("stale tabRoot data: sections have childIndex but OAuth stuck at displaySortOrder=0", () => {
160
+ const root = buildFullRootFromSegments({
161
+ basePath: "developers/docs",
162
+ title: "Contentful",
163
+ segments: [
164
+ segment({
165
+ segmentHash: "seg-root",
166
+ section: "",
167
+ sortOrder: 0,
168
+ metadata: { type: "tabRoot" },
169
+ product: PRODUCT
170
+ }),
171
+ segment({
172
+ segmentHash: "seg-app-framework",
173
+ section: "app-framework",
174
+ sortOrder: 1,
175
+ metadata: {
176
+ type: "section",
177
+ title: "App Framework",
178
+ childIndex: 0,
179
+ collapsed: true,
180
+ sidebarDepth: 0
181
+ },
182
+ product: PRODUCT
183
+ }),
184
+ segment({
185
+ segmentHash: "seg-field-editors",
186
+ section: "field-editors",
187
+ sortOrder: 2,
188
+ metadata: {
189
+ type: "section",
190
+ title: "Field Editors",
191
+ childIndex: 1,
192
+ collapsed: true,
193
+ sidebarDepth: 0
194
+ },
195
+ product: PRODUCT
196
+ }),
197
+ segment({
198
+ segmentHash: "seg-webhooks",
199
+ section: "webhooks",
200
+ sortOrder: 3,
201
+ metadata: { type: "section", title: "Webhooks", childIndex: 3, collapsed: true, sidebarDepth: 0 },
202
+ product: PRODUCT
203
+ })
204
+ ],
205
+ navBySegment: new Map([
206
+ // STALE: displaySortOrder=0 (sequential index) instead of 2 (childPosition)
207
+ [
208
+ "seg-root",
209
+ [pageRoute({ fullPath: "extensibility/oauth", title: "OAuth", displaySortOrder: 0 })]
210
+ ],
211
+ [
212
+ "seg-app-framework",
213
+ [pageRoute({ fullPath: "extensibility/app-framework/overview", title: "Overview" })]
214
+ ],
215
+ [
216
+ "seg-field-editors",
217
+ [
218
+ pageRoute({ fullPath: "extensibility/field-editors/overview", title: "Field Editors Overview" })
219
+ ]
220
+ ],
221
+ [
222
+ "seg-webhooks",
223
+ [pageRoute({ fullPath: "extensibility/webhooks/overview", title: "Webhooks Overview" })]
224
+ ]
225
+ ])
226
+ });
227
+ FernNavigation.utils.mutableUpdatePointsTo(root);
228
+ const productGroup = root.child;
229
+ expect(productGroup.type).toBe("productgroup");
230
+ const product = productGroup.children[0];
231
+ expect(product.type).toBe("product");
232
+ // FIX: tiebreaker prefers sections over pages at equal positions
233
+ expect(product.pointsTo).toBe("developers/docs/extensibility/app-framework/overview");
234
+ });
235
+ /**
236
+ * Fully old data: sections have NO childIndex at all. The sort condition
237
+ * (hasLeafPos && hasSegmentPos) is not met, so iteration order is used.
238
+ * Without childIndex, the reader can't know the V1 order, so it falls back
239
+ * to segment sortOrder which puts tabRoot first -> OAuth appears first.
240
+ * This case requires a republish with the fixed publisher to resolve.
241
+ */
242
+ it("fully old data (no childIndex): falls back to iteration order", () => {
243
+ const root = buildFullRootFromSegments({
244
+ basePath: "developers/docs",
245
+ title: "Contentful",
246
+ segments: [
247
+ segment({
248
+ segmentHash: "seg-root",
249
+ section: "",
250
+ sortOrder: 0,
251
+ metadata: { type: "tabRoot" },
252
+ product: PRODUCT
253
+ }),
254
+ segment({
255
+ segmentHash: "seg-app-framework",
256
+ section: "app-framework",
257
+ sortOrder: 1,
258
+ metadata: { type: "section", title: "App Framework", collapsed: true },
259
+ product: PRODUCT
260
+ }),
261
+ segment({
262
+ segmentHash: "seg-field-editors",
263
+ section: "field-editors",
264
+ sortOrder: 2,
265
+ metadata: { type: "section", title: "Field Editors", collapsed: true },
266
+ product: PRODUCT
267
+ }),
268
+ segment({
269
+ segmentHash: "seg-webhooks",
270
+ section: "webhooks",
271
+ sortOrder: 3,
272
+ metadata: { type: "section", title: "Webhooks", collapsed: true },
273
+ product: PRODUCT
274
+ })
275
+ ],
276
+ navBySegment: new Map([
277
+ [
278
+ "seg-root",
279
+ [pageRoute({ fullPath: "extensibility/oauth", title: "OAuth", displaySortOrder: 0 })]
280
+ ],
281
+ [
282
+ "seg-app-framework",
283
+ [pageRoute({ fullPath: "extensibility/app-framework/overview", title: "Overview" })]
284
+ ],
285
+ [
286
+ "seg-field-editors",
287
+ [
288
+ pageRoute({ fullPath: "extensibility/field-editors/overview", title: "Field Editors Overview" })
289
+ ]
290
+ ],
291
+ [
292
+ "seg-webhooks",
293
+ [pageRoute({ fullPath: "extensibility/webhooks/overview", title: "Webhooks Overview" })]
294
+ ]
295
+ ])
296
+ });
297
+ FernNavigation.utils.mutableUpdatePointsTo(root);
298
+ const productGroup = root.child;
299
+ expect(productGroup.type).toBe("productgroup");
300
+ const product = productGroup.children[0];
301
+ expect(product.type).toBe("product");
302
+ // Without childIndex, hasSegmentPos=false, so the sort doesn't fire.
303
+ // Iteration order puts OAuth first (tabRoot processed before sections).
304
+ // This is a known limitation — requires republish with fixed publisher.
305
+ expect(product.pointsTo).toBe("developers/docs/extensibility/oauth");
306
+ });
307
+ });
308
+ //# sourceMappingURL=ledger-root-builder.contentfulRedirectRepro.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-root-builder.contentfulRedirectRepro.test.js","sourceRoot":"","sources":["../../../src/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.ts"],"names":[],"mappings":"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"}
@@ -222,35 +222,35 @@ describe("buildFullRootFromSegments — multiple skip-slug sections share sec=''
222
222
  segmentHash: "seg-getting-started",
223
223
  section: "",
224
224
  sortOrder: 1,
225
- metadata: { type: "section", title: "Getting Started", childIndex: 0 }
225
+ metadata: { type: "section", title: "Getting Started", childIndex: 0, sidebarDepth: 0 }
226
226
  }),
227
227
  // Dev Tools section (skip-slug: sec="")
228
228
  segment({
229
229
  segmentHash: "seg-dev-tools",
230
230
  section: "",
231
231
  sortOrder: 5,
232
- metadata: { type: "section", title: "Dev Tools", childIndex: 1 }
232
+ metadata: { type: "section", title: "Dev Tools", childIndex: 1, sidebarDepth: 0 }
233
233
  }),
234
234
  // Capabilities section (skip-slug: sec="")
235
235
  segment({
236
236
  segmentHash: "seg-capabilities",
237
237
  section: "",
238
238
  sortOrder: 10,
239
- metadata: { type: "section", title: "Capabilities", childIndex: 2 }
239
+ metadata: { type: "section", title: "Capabilities", childIndex: 2, sidebarDepth: 0 }
240
240
  }),
241
241
  // Parsing — child of Capabilities (parent section path = "")
242
242
  segment({
243
243
  segmentHash: "seg-parsing",
244
244
  section: "parsing",
245
245
  sortOrder: 11,
246
- metadata: { type: "section", title: "Parsing", childIndex: 0 }
246
+ metadata: { type: "section", title: "Parsing", childIndex: 0, sidebarDepth: 1 }
247
247
  }),
248
248
  // Extraction — child of Capabilities
249
249
  segment({
250
250
  segmentHash: "seg-extraction",
251
251
  section: "extraction",
252
252
  sortOrder: 12,
253
- metadata: { type: "section", title: "Extraction", childIndex: 1 }
253
+ metadata: { type: "section", title: "Extraction", childIndex: 1, sidebarDepth: 1 }
254
254
  })
255
255
  ],
256
256
  navBySegment: new Map([
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-root-builder.rootChildOrder.test.js","sourceRoot":"","sources":["../../../src/navigation/__test__/ledger-root-builder.rootChildOrder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger-root-builder.rootChildOrder.test.js","sourceRoot":"","sources":["../../../src/navigation/__test__/ledger-root-builder.rootChildOrder.test.ts"],"names":[],"mappings":"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"}
@@ -437,4 +437,198 @@ describe("buildFullRootFromSegments — depth-1 siblings not falsely nested", ()
437
437
  expect(titles).not.toContain("Server-side SDKs");
438
438
  });
439
439
  });
440
+ describe("buildFullRootFromSegments — skip-slug sentinel siblings not orphaned", () => {
441
+ /**
442
+ * Reproduces the ACTUAL MangoPay structure where a skip-slug parent uses
443
+ * a sentinel path (__skip-url-slug-N__) rather than sharing its child's
444
+ * section path. This creates an intermediate path level that prevented
445
+ * sibling adoption in the original PR #12543 fix:
446
+ *
447
+ * V1 config:
448
+ * Integration options (skip-slug: true → sec="~0", depth=0)
449
+ * Server-side SDKs (slug: sdks → sec="~0/sdks", depth=1)
450
+ * Checkout SDK (slug: sdks/checkout → sec="~0/sdks/checkout", depth=1)
451
+ * Vault SDK (slug: sdks/vault → sec="~0/sdks/vault", depth=1)
452
+ * Profiler SDK (slug: sdks/profiler → sec="~0/sdks/profiler", depth=1)
453
+ *
454
+ * Without the fix, "Checkout SDK" etc. are orphaned because:
455
+ * 1. Their slug-derived parent ("~0/sdks") rejects them due to same
456
+ * depth (1 <= 1)
457
+ * 2. Their grandparent ("~0") delegates to that parent because it
458
+ * exists in sectionPaths
459
+ *
460
+ * With the fix, siblings walk up past the rejecting parent.
461
+ */
462
+ function buildSentinelSkipSlugSiblings() {
463
+ return buildFullRootFromSegments({
464
+ basePath: "docs",
465
+ title: "Test",
466
+ segments: [
467
+ segment({
468
+ segmentHash: "seg-root",
469
+ section: "",
470
+ sortOrder: 0,
471
+ metadata: { type: "tabRoot" }
472
+ }),
473
+ // Integration options — skip-slug parent with synthetic path
474
+ segment({
475
+ segmentHash: "seg-integration",
476
+ section: "~0",
477
+ sortOrder: 1,
478
+ metadata: {
479
+ type: "section",
480
+ title: "Integration options",
481
+ sidebarDepth: 0,
482
+ childIndex: 0,
483
+ pointsTo: "docs/sdks/nodejs"
484
+ }
485
+ }),
486
+ // Server-side SDKs — nested under synthetic path
487
+ segment({
488
+ segmentHash: "seg-server",
489
+ section: "~0/sdks",
490
+ sortOrder: 2,
491
+ metadata: {
492
+ type: "section",
493
+ title: "Server-side SDKs",
494
+ sidebarDepth: 1,
495
+ childIndex: 0,
496
+ pointsTo: "docs/sdks/nodejs"
497
+ }
498
+ }),
499
+ // Checkout SDK — sibling of Server-side SDKs (same depth),
500
+ // but slug path makes it look like a child
501
+ segment({
502
+ segmentHash: "seg-checkout",
503
+ section: "~0/sdks/checkout",
504
+ sortOrder: 3,
505
+ metadata: {
506
+ type: "section",
507
+ title: "Checkout SDK",
508
+ sidebarDepth: 1,
509
+ childIndex: 1,
510
+ pointsTo: "docs/sdks/checkout"
511
+ }
512
+ }),
513
+ // Vault SDK — another sibling
514
+ segment({
515
+ segmentHash: "seg-vault",
516
+ section: "~0/sdks/vault",
517
+ sortOrder: 4,
518
+ metadata: {
519
+ type: "section",
520
+ title: "Vault SDK",
521
+ sidebarDepth: 1,
522
+ childIndex: 2,
523
+ pointsTo: "docs/sdks/vault/web"
524
+ }
525
+ }),
526
+ // Profiler SDK — another sibling
527
+ segment({
528
+ segmentHash: "seg-profiler",
529
+ section: "~0/sdks/profiler",
530
+ sortOrder: 5,
531
+ metadata: {
532
+ type: "section",
533
+ title: "Profiler SDK",
534
+ sidebarDepth: 1,
535
+ childIndex: 3,
536
+ pointsTo: "docs/sdks/profiler"
537
+ }
538
+ })
539
+ ],
540
+ navBySegment: new Map([
541
+ ["seg-root", []],
542
+ ["seg-integration", []],
543
+ [
544
+ "seg-server",
545
+ [
546
+ pageRoute({ fullPath: "sdks/nodejs", title: "Node.js", displaySortOrder: 0 }),
547
+ pageRoute({ fullPath: "sdks/php", title: "PHP", displaySortOrder: 1 })
548
+ ]
549
+ ],
550
+ [
551
+ "seg-checkout",
552
+ [
553
+ pageRoute({ fullPath: "sdks/checkout", title: "Checkout Overview", displaySortOrder: 0 }),
554
+ pageRoute({ fullPath: "sdks/checkout/web", title: "Checkout Web", displaySortOrder: 1 })
555
+ ]
556
+ ],
557
+ ["seg-vault", [pageRoute({ fullPath: "sdks/vault/web", title: "Vault Web", displaySortOrder: 0 })]],
558
+ [
559
+ "seg-profiler",
560
+ [
561
+ pageRoute({ fullPath: "sdks/profiler", title: "Profiler Overview", displaySortOrder: 0 }),
562
+ pageRoute({
563
+ fullPath: "sdks/profiler/web",
564
+ title: "Profiler Web",
565
+ displaySortOrder: 1
566
+ }),
567
+ pageRoute({
568
+ fullPath: "sdks/profiler/ios",
569
+ title: "Profiler iOS",
570
+ displaySortOrder: 2
571
+ }),
572
+ pageRoute({
573
+ fullPath: "sdks/profiler/android",
574
+ title: "Profiler Android",
575
+ displaySortOrder: 3
576
+ })
577
+ ]
578
+ ]
579
+ ])
580
+ });
581
+ }
582
+ it("keeps all depth-1 siblings as children of the sentinel skip-slug parent", () => {
583
+ const root = buildSentinelSkipSlugSiblings();
584
+ // Find "Integration options" and verify all four SDKs are direct children
585
+ let integration;
586
+ FernNavigation.traverseDF(root, (node) => {
587
+ if (node.type === "section" && node.title === "Integration options") {
588
+ integration = node;
589
+ }
590
+ });
591
+ expect(integration).toBeDefined();
592
+ const childTitles = (integration.children ?? []).map((c) => c.title ?? "");
593
+ expect(childTitles).toContain("Server-side SDKs");
594
+ expect(childTitles).toContain("Checkout SDK");
595
+ expect(childTitles).toContain("Vault SDK");
596
+ expect(childTitles).toContain("Profiler SDK");
597
+ });
598
+ it("does not nest Checkout/Vault/Profiler inside Server-side SDKs", () => {
599
+ const root = buildSentinelSkipSlugSiblings();
600
+ let serverSdks;
601
+ FernNavigation.traverseDF(root, (node) => {
602
+ if (node.type === "section" && node.title === "Server-side SDKs") {
603
+ serverSdks = node;
604
+ }
605
+ });
606
+ expect(serverSdks).toBeDefined();
607
+ const childTitles = (serverSdks.children ?? []).map((c) => c.title ?? "");
608
+ expect(childTitles).not.toContain("Checkout SDK");
609
+ expect(childTitles).not.toContain("Vault SDK");
610
+ expect(childTitles).not.toContain("Profiler SDK");
611
+ });
612
+ it("includes all 7 SDK pages in the navigation tree", () => {
613
+ const root = buildSentinelSkipSlugSiblings();
614
+ const collector = FernNavigation.NodeCollector.collect(root);
615
+ const slugMap = collector.getSlugMapWithParents();
616
+ // These are the 7 pages that were missing from MangoPay ledger
617
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/checkout"))).toBe(true);
618
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/checkout/web"))).toBe(true);
619
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/vault/web"))).toBe(true);
620
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/profiler"))).toBe(true);
621
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/profiler/web"))).toBe(true);
622
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/profiler/ios"))).toBe(true);
623
+ expect(slugMap.has(FernNavigation.Slug("docs/sdks/profiler/android"))).toBe(true);
624
+ });
625
+ it("produces correct breadcrumb for Checkout page (no Server-side SDKs ancestor)", () => {
626
+ const root = buildSentinelSkipSlugSiblings();
627
+ const bc = breadcrumbForSlug(root, "docs/sdks/checkout");
628
+ const titles = bc.map((item) => item.title);
629
+ expect(titles).toContain("Integration options");
630
+ expect(titles).toContain("Checkout SDK");
631
+ expect(titles).not.toContain("Server-side SDKs");
632
+ });
633
+ });
440
634
  //# sourceMappingURL=ledger-root-builder.sidebarDepth.test.js.map