Test typed embedded rules client generation

ober

52324c657da2d63566fa4fd566e828b7c6e4c0d2

diff --git a/Makefile b/Makefile
index c16ed24..a115d44 100644
--- a/Makefile
+++ b/Makefile
@@ -64,6 +64,8 @@ test: check-no-raw-kotlin clean generate
 	grep -q 'android:extractNativeLibs="true"' build/native-packaging/app/src/main/AndroidManifest.xml
 	grep -q 'useLegacyPackaging = true' build/native-packaging/app/build.gradle.kts
 	grep -q 'keepDebugSymbols += "\*\*/libembedded_program.so"' build/native-packaging/app/build.gradle.kts
+	$(JERBOA) jandroid.ss generate tests/fixtures/rules-client-app.ss build/rules-client
+	grep -q 'external fun nativeLastError(): String' build/rules-client/app/src/main/java/com/jerboa/originaltactics/RulesClient.kt # gitsafe:ignore
 	$(JERBOA) jandroid.ss generate $(ORIGINAL_TACTICS_EXAMPLE) $(ORIGINAL_TACTICS_BUILD_DIR)
 	test -f $(ORIGINAL_TACTICS_BUILD_DIR)/app/src/main/java/com/jerboa/originaltactics/ShipUiNames.kt
 	grep -q 'label.length <= maxChars' $(ORIGINAL_TACTICS_BUILD_DIR)/app/src/main/java/com/jerboa/originaltactics/ShipUiNames.kt
diff --git a/templates/rules-client-test.ss b/templates/rules-client-test.ss
new file mode 100644
index 0000000..bb42a89
--- /dev/null
+++ b/templates/rules-client-test.ss
@@ -0,0 +1,4 @@
+(import (jerboa prelude))
+
+(def fragment
+  '((include-fragment "original-tactics-parts/RulesClient.ss")))
diff --git a/tests/fixtures/rules-client-app.ss b/tests/fixtures/rules-client-app.ss
new file mode 100644
index 0000000..83f1943
--- /dev/null
+++ b/tests/fixtures/rules-client-app.ss
@@ -0,0 +1,8 @@
+(import (jerboa prelude))
+
+(def app
+  '(android-app
+     (id "com.jerboa.originaltactics")
+     (name "Rules Client")
+     (client rules-client-test)
+     (screen Main (text "Rules Client"))))