Skip to content

Commit 66b3956

Browse files
committed
Fix reconnect message parsing
1 parent 7a3a407 commit 66b3956

4 files changed

Lines changed: 26 additions & 2 deletions

File tree

miner/src/main/java/fr/rakambda/channelpointsminer/miner/api/hermes/data/response/ReconnectResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
@SuperBuilder
1616
@EqualsAndHashCode(callSuper = true)
1717
@AllArgsConstructor
18+
@NoArgsConstructor
1819
@ToString(callSuper = true)
1920
public class ReconnectResponse extends ITwitchHermesWebSocketResponse{
2021
@JsonProperty("reconnect")

miner/src/test/java/fr/rakambda/channelpointsminer/miner/api/hermes/TwitchHermesWebSocketReconnectTest.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.net.URI;
1616
import java.time.ZonedDateTime;
1717
import static org.java_websocket.framing.CloseFrame.GOING_AWAY;
18+
import static org.java_websocket.framing.CloseFrame.NORMAL;
1819
import static org.mockito.ArgumentMatchers.anyBoolean;
1920
import static org.mockito.ArgumentMatchers.anyString;
2021
import static org.mockito.ArgumentMatchers.eq;
@@ -44,6 +45,21 @@ void onResponse(WebsocketMockServer server) throws InterruptedException{
4445

4546
server.send(TestUtils.getAllResourceContent("api/hermes/reconnect_ok.json"));
4647

48+
var expected = ReconnectResponse.builder()
49+
.id("4ae4865b-cedc-4755-8335-0560b7d05341")
50+
.timestamp(ZonedDateTime.parse("2025-01-02T03:04:05.123456789Z"))
51+
.reconnect(ReconnectResponse.Reconnect.builder().build())
52+
.build();
53+
verify(listener, timeout(MESSAGE_TIMEOUT)).onWebSocketMessage(expected);
54+
verify(listener).onWebSocketClosed(eq(tested), eq(GOING_AWAY), anyString(), anyBoolean());
55+
}
56+
57+
@RepeatedIfExceptionsTest(repeats = 5, exceptions = ConditionTimeoutException.class)
58+
void onResponseWithReconnectUrl(WebsocketMockServer server) throws InterruptedException{
59+
tested.connectBlocking();
60+
61+
server.send(TestUtils.getAllResourceContent("api/hermes/reconnect_ok_url.json"));
62+
4763
var expected = ReconnectResponse.builder()
4864
.id("4ae4865b-cedc-4755-8335-0560b7d05341")
4965
.timestamp(ZonedDateTime.parse("2025-01-02T03:04:05.123456789Z"))
@@ -52,7 +68,7 @@ void onResponse(WebsocketMockServer server) throws InterruptedException{
5268
.build())
5369
.build();
5470
verify(listener, timeout(MESSAGE_TIMEOUT)).onWebSocketMessage(expected);
55-
verify(listener).onWebSocketClosed(eq(tested), eq(GOING_AWAY), anyString(), anyBoolean());
71+
verify(listener).onWebSocketClosed(eq(tested), eq(NORMAL), anyString(), anyBoolean());
5672
}
5773

5874
@BeforeEach

miner/src/test/resources/api/hermes/reconnect_ok.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@
33
"type" : "reconnect",
44
"timestamp" : "2025-01-02T03:04:05.123456789Z",
55
"reconnect" : {
6-
"url" : "wss://test"
76
}
87
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id" : "4ae4865b-cedc-4755-8335-0560b7d05341",
3+
"type" : "reconnect",
4+
"timestamp" : "2025-01-02T03:04:05.123456789Z",
5+
"reconnect" : {
6+
"url" : "wss://test"
7+
}
8+
}

0 commit comments

Comments
 (0)