[dart][dart-dio] Bump Dio to 5.0.0 (#14675)

* [dart] Cleanup unused/redundant stuff

* [dart] Bump Dio to 5.0.0

* Fix description

* Get tests to run based with git dependency

* Fix test generation

* Update docs

* Update test dependencies

* Use released version of http_mock_adapter
This commit is contained in:
Peter Leibiger 2023-02-15 18:09:08 +01:00 committed by GitHub
parent b6e51b7a77
commit 1814a04c20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 390 additions and 295 deletions

View File

@ -40,7 +40,7 @@ jobs:
key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('samples/**/pubspec.yaml') }}
- uses: dart-lang/setup-dart@v1
with:
sdk: 2.14.0
sdk: 2.15.0
- name: Run tests
uses: ./.github/actions/run-samples
with:

View File

@ -11,7 +11,7 @@ title: Documentation for the dart-dio Generator
| generator type | CLIENT | |
| generator language | Dart | |
| generator default templating engine | mustache | |
| helpTxt | Generates a Dart Dio client library with null-safety. | |
| helpTxt | Generates a Dart Dio client library. | |
## CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.

View File

@ -25,7 +25,6 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;

View File

@ -47,9 +47,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.openapitools.codegen.utils.StringUtils.underscore;
@ -109,14 +107,14 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
serializationLibrary.setDefault(SERIALIZATION_LIBRARY_DEFAULT);
cliOptions.add(serializationLibrary);
final CliOption finalProperties = CliOption.newBoolean(FINAL_PROPERTIES, "Whether properties are marked as final when using Json Serializable for serialization");
finalProperties.setDefault("true");
cliOptions.add(finalProperties);
// Date Library Option
final CliOption dateOption = CliOption.newString(DATE_LIBRARY, "Specify Date library");
dateOption.setDefault(DATE_LIBRARY_DEFAULT);
final CliOption finalProperties = CliOption.newBoolean(FINAL_PROPERTIES, "Whether properties are marked as final when using Json Serializable for serialization");
finalProperties.setDefault("true");
cliOptions.add(finalProperties);
final Map<String, String> dateOptions = new HashMap<>();
dateOptions.put(DATE_LIBRARY_CORE, "[DEFAULT] Dart core library (DateTime)");
dateOptions.put(DATE_LIBRARY_TIME_MACHINE, "Time Machine is date and time library for Flutter, Web, and Server with support for timezones, calendars, cultures, formatting and parsing.");
@ -147,7 +145,7 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
@Override
public String getHelp() {
return "Generates a Dart Dio client library with null-safety.";
return "Generates a Dart Dio client library.";
}
@Override
@ -672,7 +670,6 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
}
}
resultImports.addAll(rewriteImports(op.imports, false));
if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library) && (op.getHasFormParams() || op.getHasQueryParams())) {
resultImports.add("package:" + pubName + "/" + sourceFolder + "/api_util.dart");
}

View File

@ -19,8 +19,11 @@ For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
## Requirements
* Dart 2.12.0 or later OR Flutter 1.26.0 or later
* Dio 4.0.0+
* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)
{{#useJsonSerializable}}
* JSON Serializable 6.1.5+ (https://pub.dev/packages/json_serializable)
{{/useJsonSerializable}}
{{#useDateLibTimeMachine}}
* timemachine option currently **DOES NOT** support sound null-safety and may not work
{{/useDateLibTimeMachine}}

View File

@ -99,9 +99,10 @@ class {{classname}} {
_path,{{#hasQueryParams}}
queryParameters: _queryParameters,{{/hasQueryParams}}
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}{{/hasBodyOrFormParams}}
final _response = await _dio.request<Object>(
@ -123,9 +124,10 @@ class {{classname}} {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<{{{returnType}}}>(

View File

@ -25,8 +25,8 @@ class {{clientName}} {
this.dio = dio ??
Dio(BaseOptions(
baseUrl: basePathOverride ?? basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
)) {
if (interceptors == null) {
this.dio.interceptors.addAll([

View File

@ -4,15 +4,10 @@ description: {{pubDescription}}
homepage: {{pubHomepage}}
environment:
{{#useBuiltValue}}
sdk: '>=2.12.0 <3.0.0'
{{/useBuiltValue}}
{{#useJsonSerializable}}
sdk: '>=2.14.0 <3.0.0'
{{/useJsonSerializable}}
sdk: '>=2.15.0 <3.0.0'
dependencies:
dio: '>=4.0.1 <5.0.0'
dio: '^5.0.0'
{{#useBuiltValue}}
one_of: '>=1.5.0 <2.0.0'
one_of_serializer: '>=1.5.0 <2.0.0'

View File

@ -8,8 +8,8 @@ This Dart package is automatically generated by the [OpenAPI Generator](https://
## Requirements
* Dart 2.12.0 or later OR Flutter 1.26.0 or later
* Dio 4.0.0+
* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)
## Installation & Usage

View File

@ -26,8 +26,8 @@ class Openapi {
this.dio = dio ??
Dio(BaseOptions(
baseUrl: basePathOverride ?? basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
)) {
if (interceptors == null) {
this.dio.interceptors.addAll([

View File

@ -72,9 +72,10 @@ class DefaultApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Fruit>(

View File

@ -4,10 +4,10 @@ description: OpenAPI API client
homepage: homepage
environment:
sdk: '>=2.12.0 <3.0.0'
sdk: '>=2.15.0 <3.0.0'
dependencies:
dio: '>=4.0.1 <5.0.0'
dio: '^5.0.0'
one_of: '>=1.5.0 <2.0.0'
one_of_serializer: '>=1.5.0 <2.0.0'
built_value: '>=8.4.0 <9.0.0'

View File

@ -9,8 +9,8 @@ This Dart package is automatically generated by the [OpenAPI Generator](https://
## Requirements
* Dart 2.12.0 or later OR Flutter 1.26.0 or later
* Dio 4.0.0+
* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)
## Installation & Usage

View File

@ -27,8 +27,8 @@ class Openapi {
this.dio = dio ??
Dio(BaseOptions(
baseUrl: basePathOverride ?? basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
)) {
if (interceptors == null) {
this.dio.interceptors.addAll([

View File

@ -67,9 +67,10 @@ class BarApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -94,9 +95,10 @@ class BarApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Bar>(

View File

@ -68,9 +68,10 @@ class FooApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -95,9 +96,10 @@ class FooApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<FooRefOrValue>(
@ -167,9 +169,10 @@ class FooApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<BuiltList<FooRefOrValue>>(

View File

@ -4,10 +4,10 @@ description: OpenAPI API client
homepage: homepage
environment:
sdk: '>=2.12.0 <3.0.0'
sdk: '>=2.15.0 <3.0.0'
dependencies:
dio: '>=4.0.1 <5.0.0'
dio: '^5.0.0'
one_of: '>=1.5.0 <2.0.0'
one_of_serializer: '>=1.5.0 <2.0.0'
built_value: '>=8.4.0 <9.0.0'

View File

@ -8,8 +8,8 @@ This Dart package is automatically generated by the [OpenAPI Generator](https://
## Requirements
* Dart 2.12.0 or later OR Flutter 1.26.0 or later
* Dio 4.0.0+
* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)
## Installation & Usage

View File

@ -26,8 +26,8 @@ class Openapi {
this.dio = dio ??
Dio(BaseOptions(
baseUrl: basePathOverride ?? basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
)) {
if (interceptors == null) {
this.dio.interceptors.addAll([

View File

@ -72,9 +72,10 @@ class DefaultApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Example>(

View File

@ -4,10 +4,10 @@ description: OpenAPI API client
homepage: homepage
environment:
sdk: '>=2.12.0 <3.0.0'
sdk: '>=2.15.0 <3.0.0'
dependencies:
dio: '>=4.0.1 <5.0.0'
dio: '^5.0.0'
one_of: '>=1.5.0 <2.0.0'
one_of_serializer: '>=1.5.0 <2.0.0'
built_value: '>=8.4.0 <9.0.0'

View File

@ -8,8 +8,9 @@ This Dart package is automatically generated by the [OpenAPI Generator](https://
## Requirements
* Dart 2.12.0 or later OR Flutter 1.26.0 or later
* Dio 4.0.0+
* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)
* JSON Serializable 6.1.5+ (https://pub.dev/packages/json_serializable)
## Installation & Usage

View File

@ -27,8 +27,8 @@ class Openapi {
this.dio = dio ??
Dio(BaseOptions(
baseUrl: basePathOverride ?? basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
)) {
if (interceptors == null) {
this.dio.interceptors.addAll([

View File

@ -64,9 +64,10 @@ _bodyData=jsonEncode(modelClient);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -86,9 +87,10 @@ _responseData = deserialize<ModelClient, ModelClient>(_response.data!, 'ModelCli
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ModelClient>(

View File

@ -67,9 +67,10 @@ _responseData = deserialize<FooGetDefaultResponse, FooGetDefaultResponse>(_respo
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<FooGetDefaultResponse>(

View File

@ -74,9 +74,10 @@ _responseData = deserialize<HealthCheckResult, HealthCheckResult>(_response.data
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<HealthCheckResult>(
@ -154,9 +155,10 @@ _bodyData=jsonEncode(pet);
_path,
queryParameters: _queryParameters,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -219,9 +221,10 @@ _bodyData=jsonEncode(body);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -241,9 +244,10 @@ _responseData = deserialize<bool, bool>(_response.data!, 'bool', growable: true)
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<bool>(
@ -305,9 +309,10 @@ _bodyData=jsonEncode(outerComposite);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -327,9 +332,10 @@ _responseData = deserialize<OuterComposite, OuterComposite>(_response.data!, 'Ou
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<OuterComposite>(
@ -391,9 +397,10 @@ _bodyData=jsonEncode(body);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -413,9 +420,10 @@ _responseData = deserialize<num, num>(_response.data!, 'num', growable: true);
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<num>(
@ -477,9 +485,10 @@ _bodyData=jsonEncode(body);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -499,9 +508,10 @@ _responseData = deserialize<String, String>(_response.data!, 'String', growable:
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<String>(
@ -563,9 +573,10 @@ _bodyData=jsonEncode(outerObjectWithEnumProperty);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -585,9 +596,10 @@ _responseData = deserialize<OuterObjectWithEnumProperty, OuterObjectWithEnumProp
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<OuterObjectWithEnumProperty>(
@ -649,9 +661,10 @@ _bodyData=jsonEncode(body);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -713,9 +726,10 @@ _bodyData=jsonEncode(fileSchemaTestClass);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -784,9 +798,10 @@ _bodyData=jsonEncode(user);
_path,
queryParameters: _queryParameters,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -849,9 +864,10 @@ _bodyData=jsonEncode(modelClient);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -871,9 +887,10 @@ _responseData = deserialize<ModelClient, ModelClient>(_response.data!, 'ModelCli
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ModelClient>(
@ -967,9 +984,10 @@ _responseData = deserialize<ModelClient, ModelClient>(_response.data!, 'ModelCli
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -1058,9 +1076,10 @@ _responseData = deserialize<ModelClient, ModelClient>(_response.data!, 'ModelCli
_path,
queryParameters: _queryParameters,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -1196,9 +1215,10 @@ _bodyData=jsonEncode(requestBody);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -1262,9 +1282,10 @@ _bodyData=jsonEncode(requestBody);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(

View File

@ -71,9 +71,10 @@ _bodyData=jsonEncode(modelClient);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -93,9 +94,10 @@ _responseData = deserialize<ModelClient, ModelClient>(_response.data!, 'ModelCli
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ModelClient>(

View File

@ -70,9 +70,10 @@ _bodyData=jsonEncode(pet);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -204,9 +205,10 @@ _responseData = deserialize<List<Pet>, Pet>(_response.data!, 'List<Pet>', growab
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<List<Pet>>(
@ -284,9 +286,10 @@ _responseData = deserialize<Set<Pet>, Pet>(_response.data!, 'Set<Pet>', growable
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Set<Pet>>(
@ -360,9 +363,10 @@ _responseData = deserialize<Pet, Pet>(_response.data!, 'Pet', growable: true);
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Pet>(
@ -429,9 +433,10 @@ _bodyData=jsonEncode(pet);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -502,9 +507,10 @@ _bodyData=jsonEncode(pet);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -575,9 +581,10 @@ _bodyData=jsonEncode(pet);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -597,9 +604,10 @@ _responseData = deserialize<ApiResponse, ApiResponse>(_response.data!, 'ApiRespo
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ApiResponse>(
@ -670,9 +678,10 @@ _responseData = deserialize<ApiResponse, ApiResponse>(_response.data!, 'ApiRespo
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -692,9 +701,10 @@ _responseData = deserialize<ApiResponse, ApiResponse>(_response.data!, 'ApiRespo
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ApiResponse>(

View File

@ -121,9 +121,10 @@ _responseData = deserialize<Map<String, int>, int>(_response.data!, 'Map<String,
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Map<String, int>>(
@ -190,9 +191,10 @@ _responseData = deserialize<Order, Order>(_response.data!, 'Order', growable: tr
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Order>(
@ -254,9 +256,10 @@ _bodyData=jsonEncode(order);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -276,9 +279,10 @@ _responseData = deserialize<Order, Order>(_response.data!, 'Order', growable: tr
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Order>(

View File

@ -64,9 +64,10 @@ _bodyData=jsonEncode(user);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -128,9 +129,10 @@ _bodyData=jsonEncode(user);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -192,9 +194,10 @@ _bodyData=jsonEncode(user);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -308,9 +311,10 @@ _responseData = deserialize<User, User>(_response.data!, 'User', growable: true)
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<User>(
@ -385,9 +389,10 @@ _responseData = deserialize<String, String>(_response.data!, 'String', growable:
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<String>(
@ -496,9 +501,10 @@ _bodyData=jsonEncode(user);
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(

View File

@ -4,10 +4,10 @@ description: OpenAPI API client
homepage: homepage
environment:
sdk: '>=2.14.0 <3.0.0'
sdk: '>=2.15.0 <3.0.0'
dependencies:
dio: '>=4.0.1 <5.0.0'
dio: '^5.0.0'
json_annotation: '^4.4.0'
dev_dependencies:

View File

@ -7,7 +7,7 @@ void main() {
final instance = Openapi().getDefaultApi();
group(DefaultApi, () {
//Future<InlineResponseDefault> fooGet() async
//Future<FooGetDefaultResponse> fooGet() async
test('test fooGet', () async {
// TODO
});

View File

@ -8,8 +8,8 @@ This Dart package is automatically generated by the [OpenAPI Generator](https://
## Requirements
* Dart 2.12.0 or later OR Flutter 1.26.0 or later
* Dio 4.0.0+
* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)
## Installation & Usage

View File

@ -32,8 +32,8 @@ class Openapi {
this.dio = dio ??
Dio(BaseOptions(
baseUrl: basePathOverride ?? basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
connectTimeout: const Duration(milliseconds: 5000),
receiveTimeout: const Duration(milliseconds: 3000),
)) {
if (interceptors == null) {
this.dio.interceptors.addAll([

View File

@ -66,9 +66,10 @@ class AnotherFakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -93,9 +94,10 @@ class AnotherFakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ModelClient>(

View File

@ -72,9 +72,10 @@ class DefaultApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<FooGetDefaultResponse>(

View File

@ -83,9 +83,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<HealthCheckResult>(
@ -165,9 +166,10 @@ class FakeApi {
_path,
queryParameters: _queryParameters,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -231,9 +233,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -254,9 +257,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<bool>(
@ -320,9 +324,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -347,9 +352,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<OuterComposite>(
@ -412,9 +418,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -435,9 +442,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<num>(
@ -500,9 +508,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -523,9 +532,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<String>(
@ -589,9 +599,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -616,9 +627,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<OuterObjectWithEnumProperty>(
@ -681,9 +693,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -747,9 +760,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -820,9 +834,10 @@ class FakeApi {
_path,
queryParameters: _queryParameters,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -887,9 +902,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -914,9 +930,10 @@ class FakeApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ModelClient>(
@ -1026,9 +1043,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -1121,9 +1139,10 @@ class FakeApi {
_path,
queryParameters: _queryParameters,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -1261,9 +1280,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -1331,9 +1351,10 @@ class FakeApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(

View File

@ -73,9 +73,10 @@ class FakeClassnameTags123Api {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -100,9 +101,10 @@ class FakeClassnameTags123Api {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ModelClient>(

View File

@ -74,9 +74,10 @@ class PetApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -213,9 +214,10 @@ class PetApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<BuiltList<Pet>>(
@ -298,9 +300,10 @@ class PetApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<BuiltSet<Pet>>(
@ -379,9 +382,10 @@ class PetApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Pet>(
@ -450,9 +454,10 @@ class PetApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -527,9 +532,10 @@ class PetApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -604,9 +610,10 @@ class PetApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -631,9 +638,10 @@ class PetApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ApiResponse>(
@ -708,9 +716,10 @@ class PetApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -735,9 +744,10 @@ class PetApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<ApiResponse>(

View File

@ -127,9 +127,10 @@ class StoreApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<BuiltMap<String, int>>(
@ -201,9 +202,10 @@ class StoreApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Order>(
@ -267,9 +269,10 @@ class StoreApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -294,9 +297,10 @@ class StoreApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<Order>(

View File

@ -68,9 +68,10 @@ class UserApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -134,9 +135,10 @@ class UserApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -200,9 +202,10 @@ class UserApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
@ -321,9 +324,10 @@ class UserApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<User>(
@ -399,9 +403,10 @@ class UserApi {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
return Response<String>(
@ -512,9 +517,10 @@ class UserApi {
_dio.options,
_path,
),
type: DioErrorType.other,
type: DioErrorType.unknown,
error: error,
)..stackTrace = stackTrace;
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(

View File

@ -4,10 +4,10 @@ description: OpenAPI API client
homepage: homepage
environment:
sdk: '>=2.12.0 <3.0.0'
sdk: '>=2.15.0 <3.0.0'
dependencies:
dio: '>=4.0.1 <5.0.0'
dio: '^5.0.0'
one_of: '>=1.5.0 <2.0.0'
one_of_serializer: '>=1.5.0 <2.0.0'
built_value: '>=8.4.0 <9.0.0'

View File

@ -5,14 +5,14 @@ description: OpenAPI API Dart DIO client tests for petstore_client_lib_fake
publish_to: none
environment:
sdk: '>=2.10.0 <3.0.0'
sdk: '>=2.15.0 <3.0.0'
dev_dependencies:
built_collection: 5.1.1
built_value: 8.4.0
dio: 4.0.1
http_mock_adapter: 0.3.2
mockito: 5.0.11
built_value: 8.4.3
dio: 5.0.0
http_mock_adapter: 0.4.2
mockito: 5.2.0
openapi:
path: ../petstore_client_lib_fake
test: 1.17.4
test: 1.21.0

View File

@ -4,8 +4,8 @@ import 'package:openapi/openapi.dart';
import 'package:test/test.dart';
void main() {
Openapi client;
DioAdapter tester;
late Openapi client;
late DioAdapter tester;
setUp(() {
client = Openapi(dio: Dio());

View File

@ -2,14 +2,13 @@ import 'dart:typed_data';
import 'package:built_collection/built_collection.dart';
import 'package:dio/dio.dart';
import 'package:dio/src/parameter.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:openapi/openapi.dart';
import 'package:test/test.dart';
void main() {
Openapi client;
DioAdapter tester;
late Openapi client;
late DioAdapter tester;
setUp(() {
client = Openapi(dio: Dio());
@ -98,7 +97,7 @@ void main() {
(server) => server.reply(200, null),
data: {
'enum_form_string': 'formString',
'enum_form_string_array': Matchers.listParam<Object>(
'enum_form_string_array': Matchers.listParam<Object?>(
ListParam(
['foo', 'bar'],
ListFormat.csv,
@ -111,6 +110,7 @@ void main() {
headers: <String, dynamic>{
'enum_header_string': '-efg',
'content-type': 'application/x-www-form-urlencoded',
'content-length': Matchers.integer,
},
);

View File

@ -1,6 +1,5 @@
import 'package:built_collection/built_collection.dart';
import 'package:dio/dio.dart';
import 'package:dio/src/parameter.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:http_parser/http_parser.dart';
import 'package:openapi/openapi.dart';
@ -10,8 +9,8 @@ void main() {
const photo1 = 'https://localhost/photo1.jpg';
const photo2 = 'https://localhost/photo2.jpg';
Openapi client;
DioAdapter tester;
late Openapi client;
late DioAdapter tester;
setUp(() {
client = Openapi(dio: Dio());
@ -56,13 +55,13 @@ void main() {
expect(response.statusCode, 200);
expect(response.data, isNotNull);
expect(response.data.id, 5);
expect(response.data.name, 'Paula');
expect(response.data.status, PetStatusEnum.sold);
expect(response.data.category.id, 1);
expect(response.data.category.name, 'dog');
expect(response.data.photoUrls.length, 2);
expect(response.data.tags.length, 2);
expect(response.data!.id, 5);
expect(response.data!.name, 'Paula');
expect(response.data!.status, PetStatusEnum.sold);
expect(response.data!.category?.id, 1);
expect(response.data!.category?.name, 'dog');
expect(response.data!.photoUrls, hasLength(2));
expect(response.data!.tags, hasLength(2));
});
test('minimal', () async {
@ -79,12 +78,12 @@ void main() {
expect(response.statusCode, 200);
expect(response.data, isNotNull);
expect(response.data.id, 5);
expect(response.data.name, 'Paula');
expect(response.data.status, isNull);
expect(response.data.category, isNull);
expect(response.data.photoUrls, isNotNull);
expect(response.data.photoUrls, isEmpty);
expect(response.data!.id, 5);
expect(response.data!.name, 'Paula');
expect(response.data!.status, isNull);
expect(response.data!.category, isNull);
expect(response.data!.photoUrls, isNotNull);
expect(response.data!.photoUrls, isEmpty);
});
});
@ -207,13 +206,13 @@ void main() {
expect(response.statusCode, 200);
expect(response.data, isNotNull);
expect(response.data.length, 2);
expect(response.data[0].id, 5);
expect(response.data[0].name, 'Paula');
expect(response.data[0].status, PetStatusEnum.sold);
expect(response.data[1].id, 1);
expect(response.data[1].name, 'Mickey');
expect(response.data[1].status, PetStatusEnum.available);
expect(response.data, hasLength(2));
expect(response.data![0].id, 5);
expect(response.data![0].name, 'Paula');
expect(response.data![0].status, PetStatusEnum.sold);
expect(response.data![1].id, 1);
expect(response.data![1].name, 'Mickey');
expect(response.data![1].status, PetStatusEnum.available);
});
});
@ -252,7 +251,7 @@ void main() {
);
expect(response.statusCode, 200);
expect(response.data.message, 'File uploaded');
expect(response.data?.message, 'File uploaded');
});
test('uploadFileWithRequiredFile & additionalMetadata', () async {
@ -291,7 +290,7 @@ void main() {
);
expect(response.statusCode, 200);
expect(response.data.message, 'File uploaded');
expect(response.data?.message, 'File uploaded');
});
});
});

View File

@ -4,8 +4,8 @@ import 'package:openapi/openapi.dart';
import 'package:test/test.dart';
void main() {
Openapi client;
DioAdapter tester;
late Openapi client;
late DioAdapter tester;
setUp(() {
client = Openapi(dio: Dio());
@ -31,7 +31,7 @@ void main() {
expect(response.statusCode, 200);
expect(response.data, isNotNull);
expect(response.data.length, 3);
expect(response.data, hasLength(3));
});
});
}