diff --git a/dio/lib/src/transformers/sync_transformer.dart b/dio/lib/src/transformers/sync_transformer.dart index 1c37fdcf1..f2b666299 100644 --- a/dio/lib/src/transformers/sync_transformer.dart +++ b/dio/lib/src/transformers/sync_transformer.dart @@ -47,7 +47,7 @@ class SyncTransformer extends Transformer { ) async { final responseType = options.responseType; // Do not handled the body for streams. - if (options.responseType == ResponseType.stream) { + if (responseType == ResponseType.stream) { return responseBody; } diff --git a/dio/test/transformer_test.dart b/dio/test/transformer_test.dart index 5b8381162..2bd563ee7 100644 --- a/dio/test/transformer_test.dart +++ b/dio/test/transformer_test.dart @@ -22,22 +22,27 @@ void main() { // Regression: https://github.com/cfug/dio/issues/1834 test('null response body only when the response is JSON', () async { final transformer = BackgroundTransformer(); - final r1 = await transformer.transformResponse( - RequestOptions(responseType: ResponseType.json), - ResponseBody.fromBytes([], 200), - ); - expect(r1, ''); - final r2 = await transformer.transformResponse( - RequestOptions(responseType: ResponseType.bytes), - ResponseBody.fromBytes([], 200), - ); - expect(r2, []); - final r3 = await transformer.transformResponse( - RequestOptions(responseType: ResponseType.plain), - ResponseBody.fromBytes([], 200), - ); - expect(r3, ''); - final r4 = await transformer.transformResponse( + for (final responseType in ResponseType.values) { + final response = await transformer.transformResponse( + RequestOptions(responseType: responseType), + ResponseBody.fromBytes([], 200), + ); + switch (responseType) { + case ResponseType.json: + case ResponseType.plain: + expect(response, ''); + break; + case ResponseType.stream: + expect(response, isA()); + break; + case ResponseType.bytes: + expect(response, []); + break; + default: + throw AssertionError('Unknown response type: $responseType'); + } + } + final jsonResponse = await transformer.transformResponse( RequestOptions(responseType: ResponseType.json), ResponseBody.fromBytes( [], @@ -47,6 +52,6 @@ void main() { }, ), ); - expect(r4, null); + expect(jsonResponse, null); }); }