Skip to content
This repository was archived by the owner on Apr 23, 2023. It is now read-only.

Commit 3be6025

Browse files
author
Jack Tang
committed
add onDefaultData test
1 parent e3332dd commit 3be6025

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/threadproxy.nim

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ type
4141
SysMsg = enum
4242
GET_NAME_REQ, GET_NAME_REP
4343

44-
ThreadMessage* = object
44+
ThreadMessage = object
4545
kind: ThreadMessageKind
4646
action: string
4747
json: JsonNode
@@ -50,8 +50,8 @@ type
5050
channel: ThreadChannelPtr
5151
callbackId: int
5252

53-
ThreadChannel* = Channel[ThreadMessage]
54-
ThreadChannelPtr* = ptr Channel[ThreadMessage]
53+
ThreadChannel = Channel[ThreadMessage]
54+
ThreadChannelPtr = ptr Channel[ThreadMessage]
5555

5656
ThreadActionHandler* = proc(data: JsonNode): Future[JsonNode] {.gcsafe.}
5757
ThreadDefaultActionHandler* = proc(action: string, data: JsonNode): Future[JsonNode] {.gcsafe.}

tests/test.nim

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ proc workerMain(proxy: ThreadProxy) {.thread.} =
1010
proxy.onData "resend":
1111
asyncCheck proxy.send("main", "recev", data)
1212

13+
proxy.onDefaultData:
14+
return %*{
15+
"action": action,
16+
"data": data
17+
}
18+
1319
asyncCheck proxy.poll()
1420

1521

@@ -52,6 +58,17 @@ suite "threadproxy":
5258
discard waitFor proxy.ask("worker1", "ping", %"pong")
5359
assert done
5460

61+
test "onDefaultData":
62+
let proxy = newMainThreadProxy("main")
63+
asyncCheck proxy.poll()
64+
65+
proxy.createThread("worker1", workerMain)
66+
67+
let a = waitFor proxy.ask("worker1", "some_unknown_action", %"pong")
68+
assert a == %*{
69+
"action": "some_unknown_action",
70+
"data": "pong"
71+
}
5572

5673

5774

0 commit comments

Comments
 (0)