Skip to content

Commit 197d198

Browse files
millotpFluf22
andauthored
feat(swift): generate tests for helpers (#3248)
Co-authored-by: Thomas Raffray <[email protected]>
1 parent 993f70e commit 197d198

File tree

30 files changed

+71
-182
lines changed

30 files changed

+71
-182
lines changed

clients/algoliasearch-client-swift/Sources/Search/Extra/SearchClientExtension.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -525,18 +525,19 @@ public extension SearchClient {
525525
///
526526
/// See https://api-clients-automation.netlify.app/docs/contributing/add-new-api-client#5-helpers for implementation
527527
/// details.
528-
/// - parameter objects: The new objects
529528
/// - parameter indexName: The name of the index where to replace the objects
529+
/// - parameter objects: The new objects
530+
/// - parameter batchSize: The maximum number of objects to include in a batch
530531
/// - parameter requestOptions: The request options
531532
/// - returns: ReplaceAllObjectsResponse
532533
@discardableResult
533534
func replaceAllObjects(
534-
with objects: [some Encodable],
535-
in indexName: String,
535+
indexName: String,
536+
objects: [some Encodable],
536537
batchSize: Int = 1000,
537538
requestOptions: RequestOptions? = nil
538539
) async throws -> ReplaceAllObjectsResponse {
539-
let tmpIndexName = try "\(indexName)_tmp_\(randomString())"
540+
let tmpIndexName = try "\(indexName)_tmp_\(Int.random(in: 1_000_000 ..< 10_000_000))"
540541

541542
var copyOperationResponse = try await operationIndex(
542543
indexName: indexName,

clients/algoliasearch-client-swift/Sources/Search/Extra/SecuredApiKeyRestrictionExtension.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public extension SecuredApiKeyRestrictions {
3636
}
3737

3838
return (APIHelper.mapValuesToQueryItems(queryDictionary) ?? [])
39+
.sorted { $0.name < $1.name }
3940
.map { "\($0.name)=\($0.value ?? "null")" }
4041
.joined(separator: "&")
4142
}

generators/src/main/java/com/algolia/codegen/AlgoliaCSharpGenerator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ public void processOpts() {
123123
supportingFiles.add(new SupportingFile("netcore_project.mustache", "Algolia.Search.csproj"));
124124
supportingFiles.add(new SupportingFile("Configuration.mustache", "Clients", packageName + "Configuration.cs"));
125125
supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE"));
126+
127+
reservedWords.removeIf(word -> word.equals("Configuration"));
126128
}
127129

128130
/** Escape <> in generic with {} */

generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ public void processOpts() {
5757
additionalProperties.put("isSearchClient", client.equals("search"));
5858
supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE"));
5959

60+
reservedWords.removeIf(word -> word.equals("configuration"));
61+
6062
try {
6163
additionalProperties.put("packageVersion", Helpers.getClientConfigField("java", "packageVersion"));
6264
} catch (GeneratorException e) {

generators/src/main/java/com/algolia/codegen/AlgoliaSwiftGenerator.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class AlgoliaSwiftGenerator extends Swift5ClientCodegen {
7878
"promote",
7979
"promoteobjectid",
8080
"promoteobjectids",
81+
"querysuggestionsconfiguration",
8182
"querytype",
8283
"rankinginfo",
8384
"redirect",
@@ -135,21 +136,6 @@ public static String prefixReservedModelName(String name, String client) {
135136
return name;
136137
}
137138

138-
public static String removeReservedModelNamePrefix(String name, String client) {
139-
if (name == null || name.isEmpty()) {
140-
return name;
141-
}
142-
143-
var camelizedName = camelize(name, LOWERCASE_FIRST_LETTER);
144-
var clientName = camelize(INSTANCE.getClientName(client), LOWERCASE_FIRST_LETTER);
145-
var trimmedName = camelize(camelizedName.replaceFirst(clientName, ""), LOWERCASE_FIRST_LETTER);
146-
if (isReservedModelName(trimmedName)) {
147-
return trimmedName;
148-
}
149-
150-
return name;
151-
}
152-
153139
private String CLIENT;
154140

155141
@Override

generators/src/main/java/com/algolia/codegen/cts/manager/CTSManagerFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public static CTSManager getManager(String language, String client) {
1212
case "java" -> new JavaCTSManager(client);
1313
case "php" -> new PhpCTSManager();
1414
case "kotlin" -> new KotlinCTSManager(client);
15-
case "go" -> new GoCTSManager();
15+
case "go" -> new GoCTSManager(client);
1616
case "dart" -> new DartCTSManager(client);
1717
case "ruby" -> new RubyCTSManager(client);
1818
case "scala" -> new ScalaCTSManager(client);

generators/src/main/java/com/algolia/codegen/cts/manager/GoCTSManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
package com.algolia.codegen.cts.manager;
22

33
import com.algolia.codegen.exceptions.GeneratorException;
4+
import com.algolia.codegen.utils.*;
45
import java.util.*;
56

67
public class GoCTSManager implements CTSManager {
78

9+
private final String client;
10+
11+
public GoCTSManager(String client) {
12+
this.client = client;
13+
}
14+
815
@Override
916
public void addDataToBundle(Map<String, Object> bundle) throws GeneratorException {
1017
Object clientPrefix = bundle.get("clientPrefix");
18+
bundle.put("clientName", Helpers.toPascalCase(this.client));
1119

1220
if (clientPrefix.equals("query-suggestions")) {
1321
bundle.put("clientPrefix", "suggestions");

generators/src/main/java/com/algolia/codegen/cts/tests/ParametersWithDataType.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,6 @@ private String getFinalParamName(String paramName) {
195195
return paramName.startsWith("_") ? paramName.substring(1) : paramName;
196196
case "go":
197197
return paramName.equals("type") ? "type_" : paramName;
198-
case "swift":
199-
return AlgoliaSwiftGenerator.removeReservedModelNamePrefix(paramName, client);
200198
}
201199

202200
return paramName;
@@ -296,8 +294,6 @@ private void handleModel(
296294
CodegenModel model = (CodegenModel) spec;
297295
IJsonSchemaValidationProperties match = findMatchingOneOf(param, model);
298296

299-
paramName = getTransformedParamName(paramName);
300-
301297
testOutput.putAll(traverseParams(paramName, param, match, parent, suffix, isParentFreeFormObject));
302298

303299
Map<String, Object> oneOfModel = new HashMap<>();

scripts/cts/runCts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ async function runCtsOne(language: string): Promise<void> {
6060
await run('sbt test', { cwd, language });
6161
break;
6262
case 'swift':
63-
await run('rm -rf .build && swift test -Xswiftc -suppress-warnings -q --parallel', {
63+
await run('swift test -Xswiftc -suppress-warnings -q --parallel', {
6464
cwd,
6565
language,
6666
});

specs/query-suggestions/common/parameters.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ IndexName:
44
required: true
55
description: Query Suggestions index name.
66
schema:
7-
$ref: './schemas/QuerySuggestionsIndexName.yml'
7+
$ref: './schemas/IndexName.yml'

specs/query-suggestions/common/responses/QuerySuggestionsConfigurationResponse.yml renamed to specs/query-suggestions/common/responses/ConfigurationResponse.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
QuerySuggestionsConfigurationResponse:
1+
ConfigurationResponse:
22
type: object
33
description: API response for retrieving Query Suggestions configurations.
44
allOf:
55
- $ref: '#/AppID'
6-
- $ref: '../schemas/QuerySuggestionsConfiguration.yml#/QuerySuggestionsConfigurationWithIndex'
6+
- $ref: '../schemas/Configuration.yml#/ConfigurationWithIndex'
77
required:
88
- appID
99
- allowSpecialCharacters

specs/query-suggestions/common/schemas/QuerySuggestionsConfiguration.yml renamed to specs/query-suggestions/common/schemas/Configuration.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
QuerySuggestionsConfigurationWithIndex:
1+
ConfigurationWithIndex:
22
type: object
33
description: Query Suggestions configuration.
44
required:
@@ -8,10 +8,10 @@ QuerySuggestionsConfigurationWithIndex:
88
- type: object
99
properties:
1010
indexName:
11-
$ref: './QuerySuggestionsIndexName.yml'
12-
- $ref: '#/QuerySuggestionsConfiguration'
11+
$ref: './IndexName.yml'
12+
- $ref: '#/Configuration'
1313

14-
QuerySuggestionsConfiguration:
14+
Configuration:
1515
type: object
1616
description: Query Suggestions configuration.
1717
required:

specs/query-suggestions/paths/getConfigurationStatus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ get:
1818
additionalProperties: false
1919
properties:
2020
indexName:
21-
$ref: '../common/schemas/QuerySuggestionsIndexName.yml'
21+
$ref: '../common/schemas/IndexName.yml'
2222
isRunning:
2323
type: boolean
2424
description: Whether the creation or update of the Query Suggestions index is in progress.

specs/query-suggestions/paths/qsConfig.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ get:
1414
content:
1515
application/json:
1616
schema:
17-
$ref: '../common/responses/QuerySuggestionsConfigurationResponse.yml#/QuerySuggestionsConfigurationResponse'
17+
$ref: '../common/responses/ConfigurationResponse.yml#/ConfigurationResponse'
1818
'400':
1919
$ref: '../common/responses/BadRequest.yml'
2020
'401':
@@ -37,7 +37,7 @@ put:
3737
content:
3838
application/json:
3939
schema:
40-
$ref: '../common/schemas/QuerySuggestionsConfiguration.yml#/QuerySuggestionsConfiguration'
40+
$ref: '../common/schemas/Configuration.yml#/Configuration'
4141
responses:
4242
'200':
4343
description: OK

specs/query-suggestions/paths/qsConfigs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ get:
1414
schema:
1515
type: array
1616
items:
17-
$ref: '../common/responses/QuerySuggestionsConfigurationResponse.yml#/QuerySuggestionsConfigurationResponse'
17+
$ref: '../common/responses/ConfigurationResponse.yml#/ConfigurationResponse'
1818
'401':
1919
$ref: '../common/responses/Unauthorized.yml'
2020

@@ -34,7 +34,7 @@ post:
3434
content:
3535
application/json:
3636
schema:
37-
$ref: '../common/schemas/QuerySuggestionsConfiguration.yml#/QuerySuggestionsConfigurationWithIndex'
37+
$ref: '../common/schemas/Configuration.yml#/ConfigurationWithIndex'
3838
responses:
3939
'200':
4040
description: OK

templates/go/client.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ import (
2929
// In most cases there should be only one, shared, APIClient.
3030
type APIClient struct {
3131
appID string
32-
cfg *Configuration
32+
cfg *{{#lambda.titlecase}}{{#lambda.camelcase}}{{client}}{{/lambda.camelcase}}{{/lambda.titlecase}}Configuration
3333
transport *transport.Transport
3434
}
3535

3636
// NewClient creates a new API client with {{#hasRegionalHost}}appID, apiKey and region.{{/hasRegionalHost}}{{^hasRegionalHost}}appID and apiKey.{{/hasRegionalHost}}
3737
func NewClient(appID, apiKey string{{#hasRegionalHost}}, region Region{{/hasRegionalHost}}) (*APIClient, error) {
38-
return NewClientWithConfig(Configuration{
38+
return NewClientWithConfig({{#lambda.titlecase}}{{#lambda.camelcase}}{{client}}{{/lambda.camelcase}}{{/lambda.titlecase}}Configuration{
3939
Configuration: transport.Configuration{
4040
AppID: appID,
4141
ApiKey: apiKey,
@@ -48,7 +48,7 @@ return NewClientWithConfig(Configuration{
4848
}
4949

5050
// NewClientWithConfig creates a new API client with the given configuration to fully customize the client behaviour.
51-
func NewClientWithConfig(cfg Configuration) (*APIClient, error) {
51+
func NewClientWithConfig(cfg {{#lambda.titlecase}}{{#lambda.camelcase}}{{client}}{{/lambda.camelcase}}{{/lambda.titlecase}}Configuration) (*APIClient, error) {
5252
var hosts []transport.StatefulHost
5353
5454
if cfg.AppID == "" {
@@ -175,7 +175,7 @@ func (c *APIClient) callAPI(request *http.Request, useReadTransporter bool) (*ht
175175

176176
// Allow modification of underlying config for alternate implementations and testing
177177
// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior
178-
func (c *APIClient) GetConfiguration() *Configuration {
178+
func (c *APIClient) GetConfiguration() *{{#lambda.titlecase}}{{#lambda.camelcase}}{{client}}{{/lambda.camelcase}}{{/lambda.titlecase}}Configuration {
179179
return c.cfg
180180
}
181181

templates/go/configuration.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ const (
1717
)
1818
{{/hasRegionalHost}}
1919

20-
// Configuration stores the configuration of the API client
21-
type Configuration struct {
20+
// {{#lambda.titlecase}}{{#lambda.camelcase}}{{client}}{{/lambda.camelcase}}{{/lambda.titlecase}}Configuration stores the configuration of the API client
21+
type {{#lambda.titlecase}}{{#lambda.camelcase}}{{client}}{{/lambda.camelcase}}{{/lambda.titlecase}}Configuration struct {
2222
transport.Configuration
2323
2424
{{#hasRegionalHost}}Region Region{{/hasRegionalHost}}

templates/go/tests/client/createClient.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cfg = {{clientPrefix}}.Configuration{
1+
cfg = {{clientPrefix}}.{{clientName}}Configuration{
22
Configuration: transport.Configuration{
33
AppID: "{{parametersWithDataTypeMap.appId.value}}",
44
ApiKey: "{{parametersWithDataTypeMap.apiKey.value}}",

templates/go/tests/client/suite.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020

2121
func create{{#lambda.titlecase}}{{clientPrefix}}{{/lambda.titlecase}}Client(t *testing.T) (*{{clientPrefix}}.APIClient, *tests.EchoRequester) {
2222
echo := &tests.EchoRequester{}
23-
cfg := {{clientPrefix}}.Configuration{
23+
cfg := {{clientPrefix}}.{{clientName}}Configuration{
2424
Configuration: transport.Configuration{
2525
AppID: "appID",
2626
ApiKey: "apiKey",
@@ -45,7 +45,7 @@ func Test{{#lambda.titlecase}}{{clientPrefix}}{{testType}}{{/lambda.titlecase}}{
4545
{{^autoCreateClient}}
4646
echo := &tests.EchoRequester{}
4747
var client *{{clientPrefix}}.APIClient
48-
var cfg {{clientPrefix}}.Configuration
48+
var cfg {{clientPrefix}}.{{clientName}}Configuration
4949
_ = client
5050
{{/autoCreateClient}}
5151
_ = echo

templates/go/tests/requests/requests.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func create{{#lambda.titlecase}}{{clientPrefix}}{{/lambda.titlecase}}Client(t *t
2424
t.Helper()
2525
2626
echo := &tests.EchoRequester{}
27-
cfg := {{clientPrefix}}.Configuration{
27+
cfg := {{clientPrefix}}.{{clientName}}Configuration{
2828
Configuration: transport.Configuration{
2929
AppID: "appID",
3030
ApiKey: "apiKey",

templates/swift/api.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import Foundation
6161

6262
/**
6363
{{#allParams}}
64-
- parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
64+
- parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{{description}}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
6565
{{/allParams}}
6666
- returns: {{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Void{{/returnType}}
6767
*/
@@ -89,9 +89,9 @@ import Foundation
8989
- {{.}}
9090
{{/x-acl}}
9191
{{/vendorExtensions}}{{#allParams}}
92-
- parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
92+
- parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{{description}}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}
9393
{{/allParams}}
94-
- returns: RequestBuilder<{{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{description}}
94+
- returns: RequestBuilder<{{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{{description}}}
9595
*/
9696
{{#isDeprecated}}
9797
@available(*, deprecated, message: "This operation is deprecated.")

templates/swift/tests/client/method.mustache

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
let response = try {{#isAsync}}await {{/isAsync}}client{{#path}}.{{.}}{{#isAsync}}WithHTTPInfo{{/isAsync}}{{/path}}(
1+
let response = try {{#isAsync}}await {{/isAsync}}client{{#path}}.{{.}}{{^isHelper}}WithHTTPInfo{{/isHelper}}{{/path}}(
22
{{#parametersWithDataType}}{{> tests/generateParams }}{{^-last}},{{/-last}}
33
{{/parametersWithDataType}}{{#requestOptions.parametersWithDataType}}{{#-first}}, requestOptions: RequestOptions({{/-first}}
44
{{> tests/generateParams }}{{^-last}},{{/-last}}
@@ -11,7 +11,4 @@ let echoResponse = try CodableHelper.jsonDecoder.decode(EchoResponse.self, from:
1111
{{^useEchoRequester}}
1212
let responseBodyJSON = try XCTUnwrap(responseBodyData.jsonString)
1313
{{/useEchoRequester}}
14-
{{/isHelper}}
15-
{{#isHelper}}
16-
let responseBodyJSON = response
1714
{{/isHelper}}

templates/swift/tests/client/suite.mustache

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@ final class {{client}}ClientTests: XCTestCase {
1212
let API_KEY = "my_api_key"
1313
{{#blocksClient}}
1414
{{#tests}}
15-
{{^isHelper}} {{! Helper tests are not supported yet}}
1615

1716
/**
18-
{{testName}}
17+
{{{testName}}}
1918
*/
2019
func test{{#lambda.titlecase}}{{testType}}{{/lambda.titlecase}}Test{{testIndex}}() async throws {
2120
{{#autoCreateClient}}
@@ -58,20 +57,25 @@ final class {{client}}ClientTests: XCTestCase {
5857
XCTAssertEqual("{{{match}}}", echoResponse.host);
5958
{{/testHost}}
6059
{{#testResponse}}
61-
{{#matchIsObject}}
62-
let comparableData = "{{#lambda.escapeQuotes}}{{{match.parameters}}}{{/lambda.escapeQuotes}}".data(using: .utf8)
63-
{{/matchIsObject}}
64-
{{^matchIsObject}}
65-
let comparableData = "{{#lambda.escapeQuotes}}{{{match}}}{{/lambda.escapeQuotes}}".data(using: .utf8)
66-
{{/matchIsObject}}
67-
let comparableJSON = try XCTUnwrap(comparableData?.jsonString)
68-
XCTAssertEqual(comparableJSON, responseBodyJSON);
60+
{{#isHelper}}
61+
{{#matchIsObject}}
62+
let comparableData = try XCTUnwrap("{{#lambda.escapeQuotes}}{{{match.parameters}}}{{/lambda.escapeQuotes}}".data(using: .utf8))
63+
try XCTLenientAssertEqual(received: CodableHelper.jsonEncoder.encode(response), expected: comparableData)
64+
{{/matchIsObject}}
65+
{{^matchIsObject}}
66+
XCTAssertEqual("{{#lambda.escapeQuotes}}{{{match}}}{{/lambda.escapeQuotes}}", response)
67+
{{/matchIsObject}}
68+
{{/isHelper}}
69+
{{^isHelper}}
70+
let comparableData = "{{#lambda.escapeQuotes}}{{#matchIsObject}}{{{match.parameters}}}{{/matchIsObject}}{{^matchIsObject}}{{{match}}}{{/matchIsObject}}{{/lambda.escapeQuotes}}".data(using: .utf8)
71+
let comparableJSON = try XCTUnwrap(comparableData?.jsonString)
72+
XCTAssertEqual(comparableJSON, responseBodyJSON);
73+
{{/isHelper}}
6974
{{/testResponse}}
7075
{{/match}}
7176
{{/isError}}
7277
{{/steps}}
7378
}
74-
{{/isHelper}}
7579
{{/tests}}
7680
{{/blocksClient}}
7781
}

templates/swift/tests/requests/requests.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ final class {{client}}RequestsTests: XCTestCase {
5454
{{#blocksRequests}}
5555
{{#tests}}
5656
/**
57-
{{testName}}
57+
{{{testName}}}
5858
*/
5959
func test{{#lambda.titlecase}}{{method}}{{/lambda.titlecase}}Test{{testIndex}}() async throws {
6060
let configuration = try {{client}}Configuration(appID: {{client}}RequestsTests.APPLICATION_ID, apiKey: {{client}}RequestsTests.API_KEY{{#hasRegionalHost}}, region: Region.{{defaultRegion}}{{/hasRegionalHost}})

0 commit comments

Comments
 (0)