MCPcopy Create free account
hub / github.com/dank/rlapi / TestPsyNetRPC_RawMessage

Function TestPsyNetRPC_RawMessage

psynetrpc_test.go:321–383  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

319}
320
321func TestPsyNetRPC_RawMessage(t *testing.T) {
322 // Setup mock server
323 mockServer := NewMockWSServer()
324 defer mockServer.Close()
325
326 // Create PsyNet instance and establish connection
327 psyNet := NewPsyNet()
328 rpc, err := psyNet.establishSocket(mockServer.URL(), "test-token", "test-session", "test-player")
329 if err != nil {
330 t.Fatalf("Failed to establish socket: %v", err)
331 }
332
333 go rpc.readMessages()
334 defer rpc.Close()
335
336 eventCh := rpc.Events()
337
338 t.Run("unparseable message", func(t *testing.T) {
339 malformedMessage := "this is not a valid psynet message"
340
341 // Verify parseMessage fails
342 _, err = rpc.parseMessage(malformedMessage)
343 if err == nil {
344 t.Error("Expected parseMessage to fail on malformed message")
345 }
346
347 // Simulate what readMessages would do
348 rpc.sendEvent(EventTypeMessage, malformedMessage)
349
350 // Check that we get the event
351 select {
352 case event := <-eventCh:
353 if event.Type != EventTypeMessage {
354 t.Errorf("Expected message event, got %d", event.Type)
355 }
356 if event.Content != malformedMessage {
357 t.Errorf("Expected content to match original message")
358 }
359 case <-time.After(1 * time.Second):
360 t.Error("Expected to receive message event")
361 }
362 })
363
364 t.Run("unsolicited message", func(t *testing.T) {
365 unsolicitedMessage := "PsyTime: 123\r\nPsySig: test\r\n\r\n{\"Result\":{\"unsolicited\":\"data\"}}"
366
367 // Simulate receiving the message
368 rpc.sendEvent(EventTypeMessage, unsolicitedMessage)
369
370 // Check that we get the event
371 select {
372 case event := <-eventCh:
373 if event.Type != EventTypeMessage {
374 t.Errorf("Expected message event, got %d", event.Type)
375 }
376 if event.Content != unsolicitedMessage {
377 t.Errorf("Expected content to match original message")
378 }

Callers

nothing calls this directly

Calls 10

CloseMethod · 0.95
establishSocketMethod · 0.95
URLMethod · 0.95
NewMockWSServerFunction · 0.85
NewPsyNetFunction · 0.85
readMessagesMethod · 0.80
EventsMethod · 0.80
parseMessageMethod · 0.80
ErrorMethod · 0.80
sendEventMethod · 0.80

Tested by

no test coverage detected