Skip to content

Commit

Permalink
fix: Do not generate a convenience initializer for mock objects witho…
Browse files Browse the repository at this point in the history
…ut fields (#2634)
  • Loading branch information
Gois authored Nov 3, 2022
1 parent 3cbdebc commit cc56fc6
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 10 deletions.
24 changes: 14 additions & 10 deletions Sources/ApolloCodegenLib/Templates/MockObjectTemplate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,21 @@ struct MockObjectTemplate: TemplateRenderer {
}, separator: "\n")
}
}
public extension Mock where O == \(objectName) {
convenience init(
\(fields.map { """
\($0.propertyName)\(ifLet: $0.initializerParameterName, {" \($0)"}): \($0.mockType)? = nil
""" }, separator: ",\n")
) {
self.init()
\(fields.map { "self.\($0.propertyName) = \($0.initializerParameterName ?? $0.propertyName)" }, separator: "\n")
\(!fields.isEmpty ?
TemplateString("""
public extension Mock where O == \(objectName) {
convenience init(
\(fields.map { """
\($0.propertyName)\(ifLet: $0.initializerParameterName, {" \($0)"}): \($0.mockType)? = nil
""" }, separator: ",\n")
) {
self.init()
\(fields.map { "self.\($0.propertyName) = \($0.initializerParameterName ?? $0.propertyName)" }, separator: "\n")
}
}
}
""") : TemplateString(stringLiteral: "")
)
"""
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,25 @@ class MockObjectTemplateTests: XCTestCase {
ignoringExtraLines: false)
)
}

func test_render_givenSchemaTypeWithoutFields_doesNotgenerateConvenienceInitializer() {
// given
buildSubject(moduleType: .swiftPackageManager)

let expected = """
}
"""
// when
let actual = renderSubject()

// then
expect(actual).to(equalLineByLine(
expected,
atLine: 8 + self.subject.graphqlObject.fields.count,
ignoringExtraLines: false)
)
}

func test_render_givenFieldsWithSwiftReservedKeyworkNames_generatesConvenienceInitializerParamatersEscapedWithBackticksAndInternalNames() {
// given
Expand Down

0 comments on commit cc56fc6

Please sign in to comment.