Skip to content

Commit 1383c8c

Browse files
authored
docs: organize test index into categories (#3055)
1 parent 9eeaa23 commit 1383c8c

File tree

1 file changed

+81
-17
lines changed

1 file changed

+81
-17
lines changed

test-index-processor/src/main/java/io/javaoperatorsdk/processor/SampleProcessor.java

Lines changed: 81 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,25 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
6363

6464
private void generateMarkdownFile() {
6565
try {
66-
// Sort samples by class name for consistent ordering
67-
samples.sort(Comparator.comparing(s -> s.className));
66+
// Categorize samples by package
67+
List<SampleInfo> baseApiSamples = new ArrayList<>();
68+
List<SampleInfo> dependentSamples = new ArrayList<>();
69+
List<SampleInfo> workflowSamples = new ArrayList<>();
70+
71+
for (SampleInfo sample : samples) {
72+
if (sample.className.contains(".baseapi.")) {
73+
baseApiSamples.add(sample);
74+
} else if (sample.className.contains(".dependent.")) {
75+
dependentSamples.add(sample);
76+
} else if (sample.className.contains(".workflow.")) {
77+
workflowSamples.add(sample);
78+
}
79+
}
80+
81+
// Sort each category by class name
82+
baseApiSamples.sort(Comparator.comparing(s -> s.className));
83+
dependentSamples.sort(Comparator.comparing(s -> s.className));
84+
workflowSamples.sort(Comparator.comparing(s -> s.className));
6885

6986
// Create the samples.md file in the source output location
7087
FileObject file =
@@ -73,28 +90,67 @@ private void generateMarkdownFile() {
7390
try (BufferedWriter writer = new BufferedWriter(file.openWriter())) {
7491
writer.write("---\n");
7592
writer.write("title: Integration Test Index\n");
76-
writer.write("weight: 105\n");
93+
writer.write("weight: 85\n");
7794
writer.write("---\n\n");
7895
writer.write(
7996
"This document provides an index of all integration tests annotated with @Sample.\n\n"
80-
+ "These server also as sample for various use cases. "
81-
+ "Your are encouraged to improve both the tests and/or descriptions.\n\n");
97+
+ "These serve also as samples for various use cases. "
98+
+ "You are encouraged to improve both the tests and/or descriptions.\n\n");
8299

83100
// Generate table of contents
84101
writer.write("## Contents\n\n");
85-
for (SampleInfo sample : samples) {
86-
String anchor = sample.simpleName.toLowerCase();
87-
writer.write("- [" + sample.tldr + "](#" + anchor + ")\n");
102+
103+
if (!baseApiSamples.isEmpty()) {
104+
writer.write("### Base API\n\n");
105+
for (SampleInfo sample : baseApiSamples) {
106+
String anchor = sample.simpleName.toLowerCase();
107+
writer.write("- [" + sample.tldr + "](#" + anchor + ")\n");
108+
}
109+
writer.write("\n");
88110
}
89-
writer.write("\n---\n\n");
90-
91-
// Generate individual test sections
92-
for (SampleInfo sample : samples) {
93-
writer.write("## " + sample.simpleName + "\n\n");
94-
writer.write("**" + sample.tldr + "**\n\n");
95-
writer.write(sample.description + "\n\n");
96-
writer.write("**Package:** " + getGitHubPackageLink(sample.className) + "\n\n");
97-
writer.write("---\n\n");
111+
112+
if (!dependentSamples.isEmpty()) {
113+
writer.write("### Dependent Resources\n\n");
114+
for (SampleInfo sample : dependentSamples) {
115+
String anchor = sample.simpleName.toLowerCase();
116+
writer.write("- [" + sample.tldr + "](#" + anchor + ")\n");
117+
}
118+
writer.write("\n");
119+
}
120+
121+
if (!workflowSamples.isEmpty()) {
122+
writer.write("### Workflows\n\n");
123+
for (SampleInfo sample : workflowSamples) {
124+
String anchor = sample.simpleName.toLowerCase();
125+
writer.write("- [" + sample.tldr + "](#" + anchor + ")\n");
126+
}
127+
writer.write("\n");
128+
}
129+
130+
writer.write("---\n\n");
131+
132+
// Generate Base API section
133+
if (!baseApiSamples.isEmpty()) {
134+
writer.write("# Base API\n\n");
135+
for (SampleInfo sample : baseApiSamples) {
136+
writeSampleSection(writer, sample);
137+
}
138+
}
139+
140+
// Generate Dependent Resources section
141+
if (!dependentSamples.isEmpty()) {
142+
writer.write("# Dependent Resources\n\n");
143+
for (SampleInfo sample : dependentSamples) {
144+
writeSampleSection(writer, sample);
145+
}
146+
}
147+
148+
// Generate Workflows section
149+
if (!workflowSamples.isEmpty()) {
150+
writer.write("# Workflows\n\n");
151+
for (SampleInfo sample : workflowSamples) {
152+
writeSampleSection(writer, sample);
153+
}
98154
}
99155
}
100156

@@ -109,6 +165,14 @@ private void generateMarkdownFile() {
109165
}
110166
}
111167

168+
private void writeSampleSection(BufferedWriter writer, SampleInfo sample) throws IOException {
169+
writer.write("## " + sample.simpleName + "\n\n");
170+
writer.write("**" + sample.tldr + "**\n\n");
171+
writer.write(sample.description + "\n\n");
172+
writer.write("**Package:** " + getGitHubPackageLink(sample.className) + "\n\n");
173+
writer.write("---\n\n");
174+
}
175+
112176
private String getGitHubPackageLink(String className) {
113177
// Extract package name by removing the simple class name
114178
int lastDot = className.lastIndexOf('.');

0 commit comments

Comments
 (0)