diff --git a/Plugins/BridgeJS/Sources/BridgeJSTool/ExportSwift.swift b/Plugins/BridgeJS/Sources/BridgeJSTool/ExportSwift.swift
index bef43bbc..9b401347 100644
--- a/Plugins/BridgeJS/Sources/BridgeJSTool/ExportSwift.swift
+++ b/Plugins/BridgeJS/Sources/BridgeJSTool/ExportSwift.swift
@@ -564,6 +564,8 @@ extension BridgeType {
             self = .string
         case "Bool":
             self = .bool
+        case "Void":
+            self = .void
         default:
             return nil
         }
diff --git a/Plugins/PackageToJS/Templates/bin/test.js b/Plugins/PackageToJS/Templates/bin/test.js
index 9f6cf13a..f4aad4b8 100644
--- a/Plugins/PackageToJS/Templates/bin/test.js
+++ b/Plugins/PackageToJS/Templates/bin/test.js
@@ -42,7 +42,8 @@ const harnesses = {
             let options = await nodePlatform.defaultNodeSetup({
                 args: testFrameworkArgs,
                 onExit: (code) => {
-                    if (code !== 0) {
+                    // swift-testing returns EX_UNAVAILABLE (which is 69 in wasi-libc) for "no tests found"
+                    if (code !== 0 && code !== 69) {
                         const stack = new Error().stack
                         console.error(`Test failed with exit code ${code}`)
                         console.error(stack)
diff --git a/Tests/BridgeJSRuntimeTests/ExportAPITests.swift b/Tests/BridgeJSRuntimeTests/ExportAPITests.swift
index 1473594e..8449b06d 100644
--- a/Tests/BridgeJSRuntimeTests/ExportAPITests.swift
+++ b/Tests/BridgeJSRuntimeTests/ExportAPITests.swift
@@ -5,6 +5,10 @@ import JavaScriptKit
 @_extern(c)
 func runJsWorks() -> Void
 
+@JS func roundTripVoid() -> Void {
+    return
+}
+
 @JS func roundTripInt(v: Int) -> Int {
     return v
 }
diff --git a/Tests/BridgeJSRuntimeTests/Generated/ExportSwift.swift b/Tests/BridgeJSRuntimeTests/Generated/ExportSwift.swift
index cc3c9df3..4a7c262c 100644
--- a/Tests/BridgeJSRuntimeTests/Generated/ExportSwift.swift
+++ b/Tests/BridgeJSRuntimeTests/Generated/ExportSwift.swift
@@ -1,8 +1,19 @@
+// NOTICE: This is auto-generated code by BridgeJS from JavaScriptKit,
+// DO NOT EDIT.
+//
+// To update this file, just rebuild your project or run
+// `swift package bridge-js`.
 @_extern(wasm, module: "bjs", name: "return_string")
 private func _return_string(_ ptr: UnsafePointer<UInt8>?, _ len: Int32)
 @_extern(wasm, module: "bjs", name: "init_memory")
 private func _init_memory(_ sourceId: Int32, _ ptr: UnsafeMutablePointer<UInt8>?)
 
+@_expose(wasm, "bjs_roundTripVoid")
+@_cdecl("bjs_roundTripVoid")
+public func _bjs_roundTripVoid() -> Void {
+    roundTripVoid()
+}
+
 @_expose(wasm, "bjs_roundTripInt")
 @_cdecl("bjs_roundTripInt")
 public func _bjs_roundTripInt(v: Int32) -> Int32 {
diff --git a/Tests/BridgeJSRuntimeTests/Generated/JavaScript/ExportSwift.json b/Tests/BridgeJSRuntimeTests/Generated/JavaScript/ExportSwift.json
index f60426a0..b4ab9701 100644
--- a/Tests/BridgeJSRuntimeTests/Generated/JavaScript/ExportSwift.json
+++ b/Tests/BridgeJSRuntimeTests/Generated/JavaScript/ExportSwift.json
@@ -53,6 +53,18 @@
     }
   ],
   "functions" : [
+    {
+      "abiName" : "bjs_roundTripVoid",
+      "name" : "roundTripVoid",
+      "parameters" : [
+
+      ],
+      "returnType" : {
+        "void" : {
+
+        }
+      }
+    },
     {
       "abiName" : "bjs_roundTripInt",
       "name" : "roundTripInt",
diff --git a/Tests/prelude.mjs b/Tests/prelude.mjs
index 1e12d375..419eb522 100644
--- a/Tests/prelude.mjs
+++ b/Tests/prelude.mjs
@@ -22,6 +22,7 @@ import assert from "node:assert";
 
 /** @param {import('./../.build/plugins/PackageToJS/outputs/PackageTests/bridge.d.ts').Exports} exports */
 function BridgeJSRuntimeTests_runJsWorks(instance, exports) {
+    exports.roundTripVoid();
     for (const v of [0, 1, -1, 2147483647, -2147483648]) {
         assert.equal(exports.roundTripInt(v), v);
     }