From 292d8a4fac94534ad826b598b4c8e65dcc0bb6c0 Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Fri, 17 May 2024 00:36:56 +0300 Subject: [PATCH 1/7] upgrade to web_socket_channel 3.0.0 --- links/gql_websocket_link/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/links/gql_websocket_link/pubspec.yaml b/links/gql_websocket_link/pubspec.yaml index 362bbb30..95e99a58 100644 --- a/links/gql_websocket_link/pubspec.yaml +++ b/links/gql_websocket_link/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: meta: ^1.3.0 rxdart: '>=0.26.0 <0.28.0' uuid: '>=3.0.0 <5.0.0' - web_socket_channel: ^2.0.0 + web_socket_channel: ^3.0.0 dev_dependencies: gql_pedantic: ^1.0.2 mockito: ^5.0.0 From e2619cf7382ad606261d094882ea6da5bcfaaf90 Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Thu, 6 Jun 2024 06:10:23 +0300 Subject: [PATCH 2/7] adjust test units to web_socket_channel 3.0.0 --- .../test/gql_websocket_link_test.dart | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/links/gql_websocket_link/test/gql_websocket_link_test.dart b/links/gql_websocket_link/test/gql_websocket_link_test.dart index 6d881d97..afae8435 100644 --- a/links/gql_websocket_link/test/gql_websocket_link_test.dart +++ b/links/gql_websocket_link/test/gql_websocket_link_test.dart @@ -156,6 +156,8 @@ void _testLinks( link = makeLink(null, channelGenerator: () => channel); // link.request(request).listen(print); + + await server.close(); }, ); @@ -204,6 +206,8 @@ void _testLinks( ); // link.request(request).listen(print); + + await server.close(); }, ); @@ -254,6 +258,8 @@ void _testLinks( ); // link.request(request).listen(print); + + await server.close(); }, ); @@ -341,6 +347,8 @@ void _testLinks( }, ), ); + + await server.close(); }, ); @@ -465,6 +473,8 @@ void _testLinks( count: maxCall, ), ); + + await server.close(); }, ); @@ -567,6 +577,8 @@ void _testLinks( }, ), ); + + await server.close(); }, ); @@ -703,6 +715,8 @@ void _testLinks( count: maxCall, ), ); + + await server.close(); }, ); @@ -757,6 +771,7 @@ void _testLinks( webSocket = await WebSocket.connect("ws://localhost:${server.port}"); channel = IOWebSocketChannel(webSocket); link = makeLink(null, channelGenerator: () => channel); + await server.close(); expect( link.request(request).first, throwsA(isA()), @@ -812,6 +827,7 @@ void _testLinks( webSocket = await WebSocket.connect("ws://localhost:${server.port}"); channel = IOWebSocketChannel(webSocket); link = makeLink(null, channelGenerator: () => channel); + await server.close(); expect( link.request(request).first, throwsA(isA()), @@ -822,7 +838,7 @@ void _testLinks( HttpServer server; WebSocket webSocket; IOWebSocketChannel channel; - Link link; + late Link link; Request request; request = Request( @@ -836,10 +852,16 @@ void _testLinks( server.transform(WebSocketTransformer()); webSocket = await WebSocket.connect("ws://localhost:${server.port}"); - // Close the socket to cause network error. - await webSocket.close(); channel = IOWebSocketChannel(webSocket); - link = makeLink(null, channelGenerator: () => channel); + channel.stream.listen(null, onError: (err) {}); + + await webSocket.close(); + link = makeLink( + null, + channelGenerator: () => channel, + autoReconnect: false, + ); + await server.close(); expect( link.request(request).first, throwsA(isA()), @@ -908,6 +930,8 @@ void _testLinks( channel = IOWebSocketChannel(webSocket); link = makeLink(null, channelGenerator: () => channel); responseSub = link.request(request).listen(print); + + await server.close(); }); test( From d6a799dcc689be248658195f007b575088b95150 Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Thu, 6 Jun 2024 06:22:31 +0300 Subject: [PATCH 3/7] fix auto reconnect unit test --- links/gql_websocket_link/test/gql_websocket_link_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/links/gql_websocket_link/test/gql_websocket_link_test.dart b/links/gql_websocket_link/test/gql_websocket_link_test.dart index afae8435..e6ffc768 100644 --- a/links/gql_websocket_link/test/gql_websocket_link_test.dart +++ b/links/gql_websocket_link/test/gql_websocket_link_test.dart @@ -1089,7 +1089,7 @@ void _testLinks( ConnectionAck(), ), ); - webSocket.close(websocket_status.goingAway); + webSocket.close(websocket_status.normalClosure); } messageCount++; }, @@ -1161,7 +1161,7 @@ void _testLinks( expect(map["type"], startMessageType); subId = map["id"] as String?; // disconnect - webSocket.close(websocket_status.goingAway); + webSocket.close(websocket_status.normalClosure); } messageCount++; }, From 0d8f953d35c2440b169735a6fba06a41dc273381 Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Thu, 6 Jun 2024 06:26:12 +0300 Subject: [PATCH 4/7] fix auto reconnect unit test --- links/gql_websocket_link/test/gql_websocket_link_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/links/gql_websocket_link/test/gql_websocket_link_test.dart b/links/gql_websocket_link/test/gql_websocket_link_test.dart index e6ffc768..bdb7caf6 100644 --- a/links/gql_websocket_link/test/gql_websocket_link_test.dart +++ b/links/gql_websocket_link/test/gql_websocket_link_test.dart @@ -1089,7 +1089,7 @@ void _testLinks( ConnectionAck(), ), ); - webSocket.close(websocket_status.normalClosure); + webSocket.close(3001); } messageCount++; }, From b291637603db0f9cae62f41069528a5f6a2d4278 Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Thu, 6 Jun 2024 06:43:26 +0300 Subject: [PATCH 5/7] add web_socket: 0.1.5 --- links/gql_websocket_link/pubspec.yaml | 1 + links/gql_websocket_link/test/gql_websocket_link_test.dart | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/links/gql_websocket_link/pubspec.yaml b/links/gql_websocket_link/pubspec.yaml index 95e99a58..867268fb 100644 --- a/links/gql_websocket_link/pubspec.yaml +++ b/links/gql_websocket_link/pubspec.yaml @@ -12,6 +12,7 @@ dependencies: rxdart: '>=0.26.0 <0.28.0' uuid: '>=3.0.0 <5.0.0' web_socket_channel: ^3.0.0 + web_socket: ^0.1.5 dev_dependencies: gql_pedantic: ^1.0.2 mockito: ^5.0.0 diff --git a/links/gql_websocket_link/test/gql_websocket_link_test.dart b/links/gql_websocket_link/test/gql_websocket_link_test.dart index bdb7caf6..e6ffc768 100644 --- a/links/gql_websocket_link/test/gql_websocket_link_test.dart +++ b/links/gql_websocket_link/test/gql_websocket_link_test.dart @@ -1089,7 +1089,7 @@ void _testLinks( ConnectionAck(), ), ); - webSocket.close(3001); + webSocket.close(websocket_status.normalClosure); } messageCount++; }, From 46533a673e7081ec6145554dcdf0be48ab71d65f Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Thu, 6 Jun 2024 06:51:01 +0300 Subject: [PATCH 6/7] normal closure on auto reconnect --- links/gql_websocket_link/test/gql_websocket_link_test.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/links/gql_websocket_link/test/gql_websocket_link_test.dart b/links/gql_websocket_link/test/gql_websocket_link_test.dart index e6ffc768..143d09ed 100644 --- a/links/gql_websocket_link/test/gql_websocket_link_test.dart +++ b/links/gql_websocket_link/test/gql_websocket_link_test.dart @@ -1111,6 +1111,7 @@ void _testLinks( return IOWebSocketChannel(webSocket); }, reconnectInterval: Duration(milliseconds: 500), + autoReconnect: true ); // link.request(request).listen(print, onError: print); From 240a4b29b7eeadfa49106fd3c1866d4cefcad3e1 Mon Sep 17 00:00:00 2001 From: Catalin Pop Date: Sun, 9 Jun 2024 01:33:32 +0300 Subject: [PATCH 7/7] - dart format --- .../test/gql_websocket_link_test.dart | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/links/gql_websocket_link/test/gql_websocket_link_test.dart b/links/gql_websocket_link/test/gql_websocket_link_test.dart index 143d09ed..376110eb 100644 --- a/links/gql_websocket_link/test/gql_websocket_link_test.dart +++ b/links/gql_websocket_link/test/gql_websocket_link_test.dart @@ -1103,17 +1103,11 @@ void _testLinks( ), ); - link = makeLink( - null, - channelGenerator: () async { - final webSocket = - await WebSocket.connect("ws://localhost:${server.port}"); - return IOWebSocketChannel(webSocket); - }, - reconnectInterval: Duration(milliseconds: 500), - autoReconnect: true - ); - // + link = makeLink(null, channelGenerator: () async { + final webSocket = + await WebSocket.connect("ws://localhost:${server.port}"); + return IOWebSocketChannel(webSocket); + }, reconnectInterval: Duration(milliseconds: 500), autoReconnect: true); link.request(request).listen(print, onError: print); }, );