summaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-09-27 10:50:05 +0100
committerMichael Williamson <mike@zwobble.org>2026-09-27 10:50:05 +0100
commitbfc98eb886211cbe7be00cee8db8e7ca1e6e13f5 (patch)
tree0bab5de1ba74b2c57708cf4bf671525f7d6edc8d /src/test/java
parent44bc89a7d3c587d26110983a806f933ac3de4333 (diff)
Support type-only exports in TypeScript AST
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java7
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java6
2 files changed, 12 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java
index 8e7daa4..4963e09 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java
@@ -223,11 +223,12 @@ public class TypescriptWriterTests {
var typescript = TypescriptExportNamesStatement.arbitrary()
.addExport(export(id("x")))
.addExport(export(id("y")))
+ .addExport(exportType(id("z")))
.build();
var string = write(writer -> writer.writeStatement(typescript));
- assertThat(string, equalTo("export {x, y};"));
+ assertThat(string, equalTo("export {x, y, type z};"));
}
// === Expression statements ===
@@ -600,6 +601,10 @@ public class TypescriptWriterTests {
return TypescriptNamedExport.arbitrary().withExportName(name).build();
}
+ private static TypescriptNamedExport exportType(TypescriptIdentifier name) {
+ return TypescriptNamedExport.arbitrary().withExportName(name).withTypeOnly(true).build();
+ }
+
private static TypescriptIdentifier id(String name) {
return TypescriptIdentifier.of(name);
}
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java
index b5d514e..93612fe 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java
@@ -36,6 +36,12 @@ public final class TypescriptNamedExportMatcher implements org.zwobble.precisely
return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher(submatchers);
}
+ public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher withTypeOnly(org.zwobble.precisely.Matcher<? super java.lang.Boolean> typeOnly) {
+ var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExport>>(this.submatchers);
+ submatchers.add(org.zwobble.precisely.Matchers.has("typeOnly", org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExport::typeOnly, (org.zwobble.precisely.Matcher) typeOnly));
+ return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher(submatchers);
+ }
+
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher body
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher body
}