Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(swift): cts client #2610

Merged
merged 12 commits into from
Jan 30, 2024
Prev Previous commit
Next Next commit
fix(cts): remove local build folder to mock CI env + import deps in U…
…tils test folder
  • Loading branch information
Fluf22 committed Jan 29, 2024
commit 4e7326c3256cc4dbe8a6702ad7a82edfcf4fdccb
2 changes: 1 addition & 1 deletion scripts/cts/runCts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ async function runCtsOne(language: string): Promise<void> {
await run('sbt test', { cwd, language });
break;
case 'swift':
await run('swift test -q --parallel', { cwd, language });
await run('rm -rf .build && swift test -q --parallel', { cwd, language });
Fluf22 marked this conversation as resolved.
Show resolved Hide resolved
break;
default:
spinner.warn(`skipping unknown language '${language}' to run the CTS`);
Expand Down
8 changes: 7 additions & 1 deletion templates/swift/tests/Package.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@ let package = Package(
.package(path: "../../../clients/algoliasearch-client-swift"),
],
targets: [
.target(name: "Utils", path: "Tests/Utils"),
.target(
name: "Utils",
dependencies: [
.product(name: "AnyCodable", package: "AnyCodable")
],
path: "Tests/Utils"
),
.testTarget(
name: "client",
dependencies: [
Expand Down
2 changes: 1 addition & 1 deletion templates/swift/tests/paramValue.mustache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{#isObject}}{{objectName}}({{^hasAdditionalProperties}}{{#value}}{{> tests/generateParams}}{{^-last}}, {{/-last}}{{/value}}{{/hasAdditionalProperties}}{{#hasAdditionalProperties}}from: [{{#value}}"{{key}}": {{> tests/paramValue }}{{^-last}}, {{/-last}}{{/value}}]{{/hasAdditionalProperties}}){{/isObject}}{{#isString}}{{#isAnyType}}AnyCodable({{/isAnyType}}"{{{value}}}"{{#isAnyType}}){{/isAnyType}}{{/isString}}{{#isNumber}}{{#isLong}}Int64({{/isLong}}{{{value}}}{{#isLong}}){{/isLong}}{{/isNumber}}{{#isBoolean}}{{{value}}}{{/isBoolean}}{{#isEnum}}{{objectName}}.{{#lambda.swiftIdentifier}}{{#lambda.camelcase}}{{valueEscaped}}{{/lambda.camelcase}}{{/lambda.swiftIdentifier}}{{/isEnum}}{{#isArray}}[{{#value}}{{> tests/generateParams}}{{^-last}}, {{/-last}}{{/value}}]{{/isArray}}{{#isMap}}Map[{{{.}}}]{{/isMap}}{{#isFreeFormObject}}{{#isAnyType}}[{{#value}}{{#entrySet}}"{{key}}": "{{{value}}}"{{/entrySet}}{{/value}}]{{/isAnyType}}{{^isAnyType}}[{{^value}}:{{/value}}{{#value}}{{>tests/generateParams}}{{^-last}}, {{/-last}}{{/value}}]{{/isAnyType}}{{/isFreeFormObject}}{{#isNull}}{{#inClientTest}}{{{objectName}}}(){{/inClientTest}}{{/isNull}}
{{#isObject}}{{objectName}}({{^hasAdditionalProperties}}{{#value}}{{> tests/generateParams}}{{^-last}}, {{/-last}}{{/value}}{{/hasAdditionalProperties}}{{#hasAdditionalProperties}}from: [{{#value}}"{{key}}": {{> tests/paramValue }}{{^-last}}, {{/-last}}{{/value}}]{{/hasAdditionalProperties}}){{/isObject}}{{#isString}}{{#isAnyType}}AnyCodable({{/isAnyType}}"{{{value}}}"{{#isAnyType}}){{/isAnyType}}{{/isString}}{{#isNumber}}{{#isLong}}Int64({{/isLong}}{{{value}}}{{#isLong}}){{/isLong}}{{/isNumber}}{{#isBoolean}}{{{value}}}{{/isBoolean}}{{#isEnum}}{{objectName}}.{{#lambda.swiftIdentifier}}{{#lambda.camelcase}}{{valueEscaped}}{{/lambda.camelcase}}{{/lambda.swiftIdentifier}}{{/isEnum}}{{#isArray}}[{{#value}}{{> tests/generateParams}}{{^-last}}, {{/-last}}{{/value}}]{{/isArray}}{{#isMap}}Map[{{{.}}}]{{/isMap}}{{#isFreeFormObject}}{{#isAnyType}}[{{#value}}{{#entrySet}}"{{key}}": "{{{value}}}"{{/entrySet}}{{/value}}]{{/isAnyType}}{{^isAnyType}}[{{^value}}:{{/value}}{{#value}}{{>tests/generateParams}}{{^-last}}, {{/-last}}{{/value}}]{{/isAnyType}}{{/isFreeFormObject}}{{#isNull}}{{#inClientTest}}TestNull{{{objectName}}}(){{/inClientTest}}{{/isNull}}
6 changes: 4 additions & 2 deletions tests/output/swift/Tests/Utils/Utils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ import Foundation
#endif

#if canImport(AnyCodable)
public typealias Object = [String: AnyCodable]
public typealias TestNullObject = [String: AnyCodable]
#else
public typealias Object = [String: Any]
public typealias TestNullObject = [String: Any]
#endif

public typealias TestNullString = String

public typealias StringMapObject = [String: String?]

public extension Data {
Expand Down
Loading