Skip to content

Commit 87f05c1

Browse files
committed
test: also test with preexisting
1 parent 06d5955 commit 87f05c1

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

Diff for: cli-impl/src/main/java/org/aya/cli/utils/LiterateData.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,10 @@ public record InjectedFrontMatter(
121121
var frontMatter = literate.findFrontMatter();
122122
var label = new Literate.Raw(Doc.plain(injected.datetimeKey + ": " + injected.datetimeValue));
123123
if (frontMatter != null) {
124-
frontMatter.children().append(label);
124+
// They must be non-empty because the front matter starts with a ---
125+
var secondLast = frontMatter.children().size() - 2;
126+
frontMatter.children().insert(secondLast, label);
127+
frontMatter.children().insert(secondLast, Literate.EOL);
125128
} else {
126129
var delimiter = new Literate.Raw(Doc.plain("---"));
127130
frontMatter = new Literate.FrontMatter(MutableList.of(

Diff for: cli-impl/src/test/java/org/aya/test/literate/AyaMdParserTest.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.aya.cli.utils.LiterateData;
1212
import org.aya.generic.Constants;
1313
import org.aya.prettier.AyaPrettierOptions;
14+
import org.aya.pretty.doc.Doc;
1415
import org.aya.primitive.PrimFactory;
1516
import org.aya.producer.AyaParserImpl;
1617
import org.aya.resolve.context.EmptyContext;
@@ -144,12 +145,18 @@ public void testHighlight(String caseName) throws IOException {
144145
}
145146

146147
@Test public void testTime() throws IOException {
147-
var oneCase = new Case("heading");
148+
var doc = lastUpdatedTest("heading");
149+
assertTrue(doc.renderToMd().startsWith("---\nlastUpdated: "));
150+
doc = lastUpdatedTest("frontmatter");
151+
assertTrue(doc.renderToMd().startsWith("---\ntitle: Twitter\nlastUpdated: "));
152+
}
153+
154+
private static @NotNull Doc lastUpdatedTest(String caseName) throws IOException {
155+
var oneCase = new Case(caseName);
148156
var data = initLiterateTestCase(oneCase);
149157
var defaultFM = new LiterateData.InjectedFrontMatter("lastUpdated", StringUtil.timeInGitFormat());
150-
var doc = data.literate().toDoc(data.stmts(), data.reporter().problems().toImmutableSeq(),
158+
return data.literate().toDoc(data.stmts(), data.reporter().problems().toImmutableSeq(),
151159
defaultFM, AyaPrettierOptions.pretty()).toDoc();
152-
assertTrue(doc.renderToMd().startsWith("---\nlastUpdated: "));
153160
}
154161

155162
private @NotNull String trim(@NotNull String input) {
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: Twitter
3+
---
4+
# Hello, world!

0 commit comments

Comments
 (0)