Skip to content

Commit 84b693f

Browse files
authored
[Cleanup] Make Config's namingStrategy and accessModifier params consistent (#713)
### Motivation A missed fixup from #708: #708 (comment) ### Modifications Removed the default from Config.init and forced all callers to make a choice on the naming strategy, just like for accessModifier. ### Result Consistent handling of these two parameters. ### Test Plan Tests passed locally.
1 parent f3c32cc commit 84b693f

File tree

6 files changed

+41
-12
lines changed

6 files changed

+41
-12
lines changed

Sources/_OpenAPIGeneratorCore/Config.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public struct Config: Sendable {
7979
access: AccessModifier,
8080
additionalImports: [String] = [],
8181
filter: DocumentFilter? = nil,
82-
namingStrategy: NamingStrategy = Config.defaultNamingStrategy,
82+
namingStrategy: NamingStrategy,
8383
nameOverrides: [String: String] = [:],
8484
featureFlags: FeatureFlags = []
8585
) {

Tests/OpenAPIGeneratorCoreTests/Parser/Test_YamsParser.swift

+5-1
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,11 @@ final class Test_YamsParser: Test_Core {
165165
try YamsParser()
166166
.parseOpenAPI(
167167
.init(absolutePath: URL(fileURLWithPath: "/foo.yaml"), contents: Data(yaml.utf8)),
168-
config: .init(mode: .types, access: Config.defaultAccessModifier),
168+
config: .init(
169+
mode: .types,
170+
access: Config.defaultAccessModifier,
171+
namingStrategy: Config.defaultNamingStrategy
172+
),
169173
diagnostics: PrintingDiagnosticCollector()
170174
)
171175
}

Tests/OpenAPIGeneratorCoreTests/Parser/Test_validateDoc.swift

+18-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,14 @@ final class Test_validateDoc: Test_Core {
3131
paths: [:],
3232
components: .init(schemas: ["myImperfectSchema": schemaWithWarnings])
3333
)
34-
let diagnostics = try validateDoc(doc, config: .init(mode: .types, access: Config.defaultAccessModifier))
34+
let diagnostics = try validateDoc(
35+
doc,
36+
config: .init(
37+
mode: .types,
38+
access: Config.defaultAccessModifier,
39+
namingStrategy: Config.defaultNamingStrategy
40+
)
41+
)
3542
XCTAssertEqual(diagnostics.count, 1)
3643
}
3744

@@ -53,7 +60,16 @@ final class Test_validateDoc: Test_Core {
5360
],
5461
components: .noComponents
5562
)
56-
XCTAssertThrowsError(try validateDoc(doc, config: .init(mode: .types, access: Config.defaultAccessModifier)))
63+
XCTAssertThrowsError(
64+
try validateDoc(
65+
doc,
66+
config: .init(
67+
mode: .types,
68+
access: Config.defaultAccessModifier,
69+
namingStrategy: Config.defaultNamingStrategy
70+
)
71+
)
72+
)
5773
}
5874

5975
func testValidateContentTypes_validContentTypes() throws {

Tests/OpenAPIGeneratorCoreTests/Translator/TypeAssignment/Test_isSchemaSupported.swift

+5-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ class Test_isSchemaSupported: XCTestCase {
1919

2020
var translator: any FileTranslator {
2121
TypesFileTranslator(
22-
config: .init(mode: .types, access: Config.defaultAccessModifier),
22+
config: .init(
23+
mode: .types,
24+
access: Config.defaultAccessModifier,
25+
namingStrategy: Config.defaultNamingStrategy
26+
),
2327
diagnostics: PrintingDiagnosticCollector(),
2428
components: .init(schemas: [
2529
"Foo": .string, "MyObj": .object, "MyObj2": .object,

Tests/OpenAPIGeneratorReferenceTests/CompatabilityTest.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ fileprivate extension CompatibilityTest {
254254
for mode in GeneratorMode.allCases {
255255
group.addTask {
256256
let generator = makeGeneratorPipeline(
257-
config: Config(mode: mode, access: .public),
257+
config: Config(mode: mode, access: .public, namingStrategy: .defensive),
258258
diagnostics: diagnosticsCollector
259259
)
260260
return try assertNoThrowWithValue(generator.run(input))
@@ -265,7 +265,7 @@ fileprivate extension CompatibilityTest {
265265
} else {
266266
outputs = try GeneratorMode.allCases.map { mode in
267267
let generator = makeGeneratorPipeline(
268-
config: Config(mode: mode, access: .public),
268+
config: Config(mode: mode, access: .public, namingStrategy: .defensive),
269269
diagnostics: diagnosticsCollector
270270
)
271271
return try assertNoThrowWithValue(generator.run(input))

Tests/OpenAPIGeneratorReferenceTests/SnippetBasedReferenceTests.swift

+10-5
Original file line numberDiff line numberDiff line change
@@ -5868,7 +5868,7 @@ extension SnippetBasedReferenceTests {
58685868
func makeTypesTranslator(openAPIDocumentYAML: String) throws -> TypesFileTranslator {
58695869
let document = try YAMLDecoder().decode(OpenAPI.Document.self, from: openAPIDocumentYAML)
58705870
return TypesFileTranslator(
5871-
config: Config(mode: .types, access: .public),
5871+
config: Config(mode: .types, access: .public, namingStrategy: .defensive),
58725872
diagnostics: XCTestDiagnosticCollector(test: self),
58735873
components: document.components
58745874
)
@@ -5901,7 +5901,12 @@ extension SnippetBasedReferenceTests {
59015901
components: OpenAPI.Components = .noComponents
59025902
) throws -> TypesFileTranslator {
59035903
TypesFileTranslator(
5904-
config: Config(mode: .types, access: accessModifier, featureFlags: featureFlags),
5904+
config: Config(
5905+
mode: .types,
5906+
access: accessModifier,
5907+
namingStrategy: .defensive,
5908+
featureFlags: featureFlags
5909+
),
59055910
diagnostics: XCTestDiagnosticCollector(test: self, ignoredDiagnosticMessages: ignoredDiagnosticMessages),
59065911
components: components
59075912
)
@@ -5915,17 +5920,17 @@ extension SnippetBasedReferenceTests {
59155920
let collector = XCTestDiagnosticCollector(test: self, ignoredDiagnosticMessages: ignoredDiagnosticMessages)
59165921
return (
59175922
TypesFileTranslator(
5918-
config: Config(mode: .types, access: .public, featureFlags: featureFlags),
5923+
config: Config(mode: .types, access: .public, namingStrategy: .defensive, featureFlags: featureFlags),
59195924
diagnostics: collector,
59205925
components: components
59215926
),
59225927
ClientFileTranslator(
5923-
config: Config(mode: .client, access: .public, featureFlags: featureFlags),
5928+
config: Config(mode: .client, access: .public, namingStrategy: .defensive, featureFlags: featureFlags),
59245929
diagnostics: collector,
59255930
components: components
59265931
),
59275932
ServerFileTranslator(
5928-
config: Config(mode: .server, access: .public, featureFlags: featureFlags),
5933+
config: Config(mode: .server, access: .public, namingStrategy: .defensive, featureFlags: featureFlags),
59295934
diagnostics: collector,
59305935
components: components
59315936
)

0 commit comments

Comments
 (0)