From 95bf7d0a92378b8906395959133480ce64469197 Mon Sep 17 00:00:00 2001 From: Vincenzo Palazzo Date: Sat, 13 Aug 2022 01:49:38 +0100 Subject: [PATCH] test: reproduce empty payload issue Signed-off-by: Vincenzo Palazzo --- lib/src/cln_grpc_base.dart | 1 + test/cln_client_test.dart | 2 +- test/cln_grpc_test.dart | 31 +++++++++++++++++++++++++++++++ test/model/model.dart | 17 +++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 test/model/model.dart diff --git a/lib/src/cln_grpc_base.dart b/lib/src/cln_grpc_base.dart index 15497ed..32678c7 100644 --- a/lib/src/cln_grpc_base.dart +++ b/lib/src/cln_grpc_base.dart @@ -97,6 +97,7 @@ class GRPCClient extends LightningClient { {required ListfundsRequest params, T Function(Map)? onDecode}) async { /// request to server var response = await stub.listFunds(params); + LogManager.getInstance.debug("response received by GRPC server: $response"); if (onDecode != null) { return onDecode(toEncode(response.toProto3Json())); } diff --git a/test/cln_client_test.dart b/test/cln_client_test.dart index c5e0108..e76dbe7 100644 --- a/test/cln_client_test.dart +++ b/test/cln_client_test.dart @@ -156,7 +156,7 @@ void main() { }; var boltString = await unixCient.simpleCall("invoice", params: params); try { - var response = await client.call( + var _ = await client.call( method: "pay", params: PayProxy.build(invoice: boltString["bolt11"])); await client.close(); diff --git a/test/cln_grpc_test.dart b/test/cln_grpc_test.dart index 12bc52f..821c8a4 100644 --- a/test/cln_grpc_test.dart +++ b/test/cln_grpc_test.dart @@ -1,8 +1,11 @@ import 'dart:io'; +import 'package:cln_common/cln_common.dart'; import 'package:cln_grpc/cln_grpc.dart'; import 'package:test/test.dart'; +import 'model/model.dart'; + void main() { var env = Platform.environment; var tlsPath = env['TLS_PATH']!; @@ -14,5 +17,33 @@ void main() { expect(response.alias, "clighting4j-node"); await client.close(); }); + + test('Generic List Funds with decode function', () async { + var client = GRPCClient(rootPath: tlsPath); + var response = + await client.call>( + method: "listfunds", + params: CLNListFundsRequest.build(), + onDecode: (jsonResponse) { + LogManager.getInstance + .debug("Grpc list funds call returns: $jsonResponse"); + return jsonResponse as Map; + }); + expect(response.isNotEmpty, isTrue); + }); + + test('Stub List Funds with decode function', () async { + var client = GRPCClient(rootPath: tlsPath); + var response = await client.listFunds( + params: CLNListFundsRequest.build().proxy, onDecode: (json) => json); + expect(response.isNotEmpty, isTrue); + }); + + test('Stub List Funds without decode function', () async { + var client = GRPCClient(rootPath: tlsPath); + var response = await client.listFunds( + params: CLNListFundsRequest.build().proxy); + expect(response.channels.isEmpty, isTrue); + }); }); } diff --git a/test/model/model.dart b/test/model/model.dart new file mode 100644 index 0000000..ace7dde --- /dev/null +++ b/test/model/model.dart @@ -0,0 +1,17 @@ +import 'package:cln_common/cln_common.dart'; +import 'package:cln_grpc/cln_grpc.dart'; + +class CLNListFundsRequest extends Serializable { + ListfundsRequest proxy; + + CLNListFundsRequest(this.proxy); + + factory CLNListFundsRequest.build() => + CLNListFundsRequest(ListfundsRequest()); + + @override + Map toJSON() => proxy.toProto3Json() as Map; + + @override + T as() => proxy as T; +}