Allows Renderer Binary to output aspect information as a markdown output
Depends on CL 259570926.
Work toward https://github.com/bazelbuild/skydoc/issues/196
PiperOrigin-RevId: 260145437
diff --git a/src/test/java/com/google/devtools/build/skydoc/MarkdownRendererTest.java b/src/test/java/com/google/devtools/build/skydoc/MarkdownRendererTest.java
index 2bf849a..440d9c1 100644
--- a/src/test/java/com/google/devtools/build/skydoc/MarkdownRendererTest.java
+++ b/src/test/java/com/google/devtools/build/skydoc/MarkdownRendererTest.java
@@ -17,6 +17,7 @@
import static com.google.common.truth.Truth.assertThat;
import com.google.devtools.build.skydoc.rendering.MarkdownRenderer;
+import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AspectInfo;
import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeInfo;
import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeType;
import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.FunctionParamInfo;
@@ -39,9 +40,15 @@
private final String providerTemplatePath =
"com/google/devtools/build/skydoc/test_templates/provider.vm";
private final String funcTemplatePath = "com/google/devtools/build/skydoc/test_templates/func.vm";
+ private final String aspectTemplatePath =
+ "com/google/devtools/build/skydoc/test_templates/aspect.vm";
private final MarkdownRenderer renderer =
new MarkdownRenderer(
- headerTemplatePath, ruleTemplatePath, providerTemplatePath, funcTemplatePath);
+ headerTemplatePath,
+ ruleTemplatePath,
+ providerTemplatePath,
+ funcTemplatePath,
+ aspectTemplatePath);
@Test
public void testHeaderStrings() throws IOException {
@@ -150,4 +157,46 @@
+ " the first parameter\n"
+ " </p>\n");
}
+
+ @Test
+ public void testAspectStrings() throws IOException {
+ AttributeInfo attrInfo =
+ AttributeInfo.newBuilder()
+ .setName("first")
+ .setDocString("the first attribute")
+ .setTypeValue(AttributeType.STRING.getNumber())
+ .build();
+ AspectInfo aspectInfo =
+ AspectInfo.newBuilder()
+ .setAspectName("my_aspect")
+ .setDocString("This aspect does things.")
+ .addAttribute(attrInfo)
+ .addAspectAttribute("deps")
+ .build();
+
+ assertThat(renderer.render(aspectInfo.getAspectName(), aspectInfo))
+ .isEqualTo(
+ "<a name=\"#my_aspect\"></a>\n"
+ + "\n"
+ + "## my_aspect\n"
+ + "\n"
+ + "<pre>\n"
+ + "null(<a href=\"#null-first\">first</a>)\n"
+ + "</pre>\n"
+ + "\n"
+ + "This aspect does things.\n"
+ + "\n"
+ + "### Aspect Attributes\n"
+ + "\n"
+ + " <code>deps</code><\n"
+ + " String; required.\n"
+ + "\n"
+ + "### Attributes\n"
+ + "\n"
+ + " <code>first</code>\n"
+ + " String; optional\n"
+ + " <p>\n"
+ + " the first attribute\n"
+ + " </p>\n");
+ }
}