From 1fd045904e94d68878b3a5f748bf20f7c61a1cf7 Mon Sep 17 00:00:00 2001 From: ilya-g Date: Fri, 17 Feb 2023 16:42:28 +0100 Subject: Consistent alphabetical order of element groups in index and navigation (#2861) * Sort groups of divergent elements by their key first ignoring case, then preserving it * Add tests for sorting groups and navigation --- .../test/kotlin/pageMerger/PageNodeMergerTest.kt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'plugins/base/src/test/kotlin/pageMerger') diff --git a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt index 05ff55ee..01fefd3c 100644 --- a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt +++ b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt @@ -381,6 +381,46 @@ class PageNodeMergerTest : BaseAbstractTest() { } } + @Test + fun `should sort groups alphabetically ignoring case`() { + testInline( + """ + |/src/main/kotlin/test/Test.kt + |package test + | + |/** Sequence builder */ + |fun sequence(): Sequence + | + |/** Sequence SAM constructor */ + |fun Sequence(): Sequence + | + |/** Sequence.any() */ + |fun Sequence.any() {} + | + |/** Sequence interface */ + |interface Sequence + """.trimMargin(), + defaultConfiguration + ) { + renderingStage = { rootPageNode, _ -> + val packageFunctionBlocks = rootPageNode.findPackageFunctionBlocks(packageName = "test") + assertEquals(3, packageFunctionBlocks.size, "Expected 3 separate function groups") + + packageFunctionBlocks[0].assertContainsKDocsInOrder( + "Sequence.any()", + ) + + packageFunctionBlocks[1].assertContainsKDocsInOrder( + "Sequence SAM constructor", + ) + + packageFunctionBlocks[2].assertContainsKDocsInOrder( + "Sequence builder", + ) + } + } + } + private fun RootPageNode.findExtensionsOfClass(name: String): ContentDivergentGroup { val extensionReceiverPage = this.dfs { it is ClasslikePageNode && it.name == name } as ClasslikePageNode return extensionReceiverPage.content -- cgit