diff options
| author | ketsuban <ketsuban@kukuri.dev> | 2026-09-03 10:10:18 +0000 |
|---|---|---|
| committer | ketsuban <ketsuban@kukuri.dev> | 2026-09-03 10:10:18 +0000 |
| commit | 20fbdb7c15fd74efc62833d295373b0ce601e9e5 (patch) | |
| tree | 36fa734710c60f3f2a2ac3eac27daea3d604b885 /modules/zero-bridge-api/src/commonTest | |
| download | kukuri-20fbdb7c15fd74efc62833d295373b0ce601e9e5.tar.gz kukuri-20fbdb7c15fd74efc62833d295373b0ce601e9e5.tar.bz2 kukuri-20fbdb7c15fd74efc62833d295373b0ce601e9e5.zip | |
kukuri reset: welcome-only app shell + bridge/vendor modules + CI infra
Full pre-reset history preserved on branch backup/full-pre-reset (2ccab79).
Diffstat (limited to 'modules/zero-bridge-api/src/commonTest')
| -rw-r--r-- | modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/SlideSpecCodecTest.kt | 54 | ||||
| -rw-r--r-- | modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/ZeroBridgeApiTest.kt | 29 |
2 files changed, 83 insertions, 0 deletions
diff --git a/modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/SlideSpecCodecTest.kt b/modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/SlideSpecCodecTest.kt new file mode 100644 index 0000000..34f99f9 --- /dev/null +++ b/modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/SlideSpecCodecTest.kt @@ -0,0 +1,54 @@ +package jp.orgflow.bridge + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class SlideSpecCodecTest { + + @Test + fun codecRoundtripsSlidesWithImages() { + val slides = listOf( + SlideSpecData( + id = "s1", + title = "Codec", + backgroundArgb = 0xFFFFF8E1, + boxes = listOf( + SlideSpecBox( + kind = SlideSpecBoxKind.TEXT, + xPt = 54.0, + yPt = 40.0, + widthPt = 400.0, + heightPt = 60.0, + textRuns = listOf(SlideSpecTextRun("hi", bold = true, italic = true, sizePt = 24.0, colorArgb = 0xFF0000FF)), + ), + SlideSpecBox(kind = SlideSpecBoxKind.IMAGE, xPt = 5.0, yPt = 6.0, widthPt = 7.0, heightPt = 8.0, imageRef = "img1"), + SlideSpecBox( + kind = SlideSpecBoxKind.TABLE, + xPt = 9.0, + yPt = 10.0, + widthPt = 11.0, + heightPt = 12.0, + tableCells = listOf(listOf("a", "b"), listOf("1", "2")), + ), + ), + images = mapOf("img1" to byteArrayOf(1, 2, 3, -1)), + notes = "note", + ), + ) + assertEquals(slides, SlideSpecCodec.decode(SlideSpecCodec.encode(slides))) + } + + @Test + fun codecHandlesEmptyDeckAndDefaults() { + assertEquals(emptyList(), SlideSpecCodec.decode(SlideSpecCodec.encode(emptyList()))) + val minimal = SlideSpecData(id = "s1") + assertEquals(minimal, SlideSpecCodec.decode(SlideSpecCodec.encode(listOf(minimal))).single()) + } + + @Test + fun codecIgnoresUnknownKeys() { + val encoded = SlideSpecCodec.encode(listOf(SlideSpecData(id = "s1", title = "t"))) + assertTrue(encoded.contains("\"s1\"")) + } +} diff --git a/modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/ZeroBridgeApiTest.kt b/modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/ZeroBridgeApiTest.kt new file mode 100644 index 0000000..1a392c9 --- /dev/null +++ b/modules/zero-bridge-api/src/commonTest/kotlin/jp/orgflow/bridge/ZeroBridgeApiTest.kt @@ -0,0 +1,29 @@ +package jp.orgflow.bridge + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotNull +import kotlin.test.assertTrue + +class ZeroBridgeApiTest { + @Test + fun storageEstimate() { + val est = StorageEstimate(100L, 1000L, 10.0) + assertEquals(900L, est.availableBytes()) + } + + @Test + fun transportFrame() { + val frame = HostTransportFrame("alice", "bob", byteArrayOf(1, 2, 3), "data") + assertEquals("alice", frame.from) + assertEquals("bob", frame.to) + assertTrue(frame.payload.contentEquals(byteArrayOf(1, 2, 3))) + } + + @Test + fun bridgeException() { + val e = BridgeException("test", RuntimeException("cause")) + assertEquals("test", e.message) + assertNotNull(e.cause) + } +}
\ No newline at end of file |
