aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-12-23 11:38:39 +0000
committerMichael Williamson <mike@zwobble.org>2024-12-23 11:38:39 +0000
commit1d0a52cfbb17d77eef8d89be7762203f7286e92f (patch)
treeea6cf68094d5c7a058143348a551bb3664e19f77 /src/test/java
parentac56c2e61c8d4c9af26d49f419b2193a798ae68f (diff)
Check type of string in config
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/config/BinConfigTests.java32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/test/java/org/shedlang/compiler/config/BinConfigTests.java b/src/test/java/org/shedlang/compiler/config/BinConfigTests.java
index cbe8ee01..dc61f023 100644
--- a/src/test/java/org/shedlang/compiler/config/BinConfigTests.java
+++ b/src/test/java/org/shedlang/compiler/config/BinConfigTests.java
@@ -39,6 +39,31 @@ public class BinConfigTests {
}
@Test
+ public void whenBinConfigIsNotStringThenErrorIsThrown() {
+ var source = Sources.string("""
+ [[shed.bins]]
+ name = "one"
+ main-namespace = "One"
+
+ [[shed.bins]]
+ name = true
+ main-namespace = "Two"
+ """);
+
+ var error = assertThrows(
+ ConfigError.class,
+ () -> ProjectConfig.fromToml(PROJECT_PATH, TomlTableWithSource.parse(source))
+ );
+
+ assertThat(error.getMessage(), equalTo("Expected shed.bins[1].name to be a string, but was Boolean"));
+ assertThat(error.source().describe(), equalTo("""
+ <string>:6:1
+ name = true
+ ^"""
+ ));
+ }
+
+ @Test
public void whenBinConfigIsMissingMainNamespaceThenErrorIsThrown() {
var source = Sources.string("""
[[shed.bins]]
@@ -47,6 +72,7 @@ public class BinConfigTests {
[[shed.bins]]
name = "two"
+ main-namespace = true
""");
var error = assertThrows(
@@ -54,10 +80,10 @@ public class BinConfigTests {
() -> ProjectConfig.fromToml(PROJECT_PATH, TomlTableWithSource.parse(source))
);
- assertThat(error.getMessage(), equalTo("shed.bins[1] is missing main-namespace"));
+ assertThat(error.getMessage(), equalTo("Expected shed.bins[1].main-namespace to be a string, but was Boolean"));
assertThat(error.source().describe(), equalTo("""
- <string>:5:1
- [[shed.bins]]
+ <string>:7:1
+ main-namespace = true
^"""
));
}