generateApiTestData method
Map<String, String>
generateApiTestData({
- required String testPath,
- required String featureName,
- required String pageName,
- required String apiName,
- required String jsonBody,
- required String jsonResponse,
- required dynamic bodyData,
- required dynamic responseData,
- required String method,
- required List<
String> paramPath, - required String? pathHeader,
- required String? cacheStrategy,
- required int? ttl,
- required bool? keepExpiredCache,
- required String returnData,
Generates individual API test data
testPath - Path for test files
featureName - Feature name
pageName - Page name
apiName - API name
bodyData - Request body data
responseData - Response data
method - HTTP method
paramPath - URL parameters
headers - Request headers
cacheStrategy - Caching strategy
ttl - Cache TTL
keepExpiredCache - Whether to keep expired cache
returnData - Return data type
Returns test data map
Implementation
Map<String, String> generateApiTestData({
required String testPath,
required String featureName,
required String pageName,
required String apiName,
required String jsonBody,
required String jsonResponse,
required dynamic bodyData,
required dynamic responseData,
required String method,
required List<String> paramPath,
required String? pathHeader,
required String? cacheStrategy,
required int? ttl,
required bool? keepExpiredCache,
required String returnData,
}) {
final result = <String, String>{};
// Generate endpoint
final endpoint =
'final url${apiName.pascalCase} = ${_projectName.pascalCase}Endpoints.${apiName.camelCase}${paramPath.isEmpty ? '' : '(${paramPath.map((e) => "'$e',").join()})'};';
// Generate test variables
final bodyVariable = _generateBodyVariable(apiName, bodyData, paramPath);
final responseVariable = _isReturnDataModel(returnData)
? _generateResponseVariable(apiName, responseData, 'Response')
: '';
final entityVariable = _isReturnDataModel(returnData)
? _generateResponseVariable(apiName, responseData, 'Entity')
: '';
// Create test files
_createBodyModelTest(testPath, featureName, pageName, apiName, jsonBody,
bodyVariable, bodyData is List);
String formattedJsonResponse = '';
if (_isReturnDataModel(returnData)) {
formattedJsonResponse = _createJsonResponseTest(
testPath, featureName, pageName, apiName, jsonResponse);
_createResponseModelTest(testPath, featureName, pageName, apiName,
formattedJsonResponse, responseVariable, responseData is List);
}
// Handle headers
String? headers;
if (pathHeader != null && exists(pathHeader)) {
try {
headers = read(pathHeader).join('\n');
headers =
'headers: $headers.map((key, value) => MapEntry(key, value.toString()))';
} catch (e) {
StatusHelper.warning('Failed to read headers: $e');
}
}
// Populate result
result['apiName'] = apiName;
result['body'] = bodyVariable;
result['response'] = responseVariable;
result['entity'] = entityVariable;
result['jsonBody'] = jsonBody;
result['jsonResponse'] = jsonResponse;
result['method'] = method;
result['endpoint'] = endpoint;
result['header'] = headers ?? '';
result['isBodyList'] = bodyData is List ? 'true' : 'false';
result['isResponseList'] = responseData is List ? 'true' : 'false';
result['cacheStrategy'] = cacheStrategy ?? '';
result['ttl'] = ttl?.toString() ?? '';
result['keepExpiredCache'] = keepExpiredCache?.toString() ?? '';
result['returnData'] = returnData;
return result;
}