feat(RES-57): Add visibility to control scope of generated code (#18)
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good

Add visibility parameter: public, package, internal, private
Impacted command: analytics, colors, fonts, images, strings, tags

Reviewed-on: #18
This commit is contained in:
2025-07-21 16:56:05 +02:00
parent beca2c6b2b
commit 5ad219ae89
62 changed files with 1526 additions and 794 deletions

View File

@@ -8,9 +8,9 @@
// CPD-OFF
import Foundation
import XCTest
@testable import ResgenSwift
import ToolCore
import XCTest
final class DefinitionTests: XCTestCase {
@@ -94,9 +94,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en")
let propertyEnUs = definition.getNSLocalizedStringProperty(forLang: "en-us")
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr", visibility: .public)
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en", visibility: .public)
let propertyEnUs = definition.getNSLocalizedStringProperty(forLang: "en-us", visibility: .public)
// Expect
let expectFr = """
@@ -105,7 +105,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "C'est la traduction francaise", comment: "This is a comment")
}
"""
@@ -116,7 +116,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english translation", comment: "This is a comment")
}
"""
@@ -127,7 +127,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english us translation", comment: "This is a comment")
}
"""
@@ -149,9 +149,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en")
let propertyEnUs = definition.getNSLocalizedStringProperty(forLang: "en-us")
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr", visibility: .private)
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en", visibility: .private)
let propertyEnUs = definition.getNSLocalizedStringProperty(forLang: "en-us", visibility: .private)
// Expect
let expectFr = """
@@ -160,7 +160,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
private var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "C'est la traduction francaise", comment: "")
}
"""
@@ -171,7 +171,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
private var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english translation", comment: "")
}
"""
@@ -182,7 +182,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
private var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english us translation", comment: "")
}
"""
@@ -203,9 +203,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en")
let propertyEnUs = definition.getNSLocalizedStringProperty(forLang: "en-us")
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr", visibility: .public)
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en", visibility: .public)
let propertyEnUs = definition.getNSLocalizedStringProperty(forLang: "en-us", visibility: .public)
// Expect
let expectFr = """
@@ -214,7 +214,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "C'est la traduction francaise", comment: "")
}
"""
@@ -225,7 +225,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english translation", comment: "")
}
"""
@@ -236,7 +236,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english us translation", comment: "")
}
"""
@@ -260,10 +260,10 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringStaticProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringStaticProperty(forLang: "en")
let propertyEnUs = definition.getNSLocalizedStringStaticProperty(forLang: "en-us")
let propertyFr = definition.getNSLocalizedStringStaticProperty(forLang: "fr", visibility: .public)
let propertyEn = definition.getNSLocalizedStringStaticProperty(forLang: "en", visibility: .public)
let propertyEnUs = definition.getNSLocalizedStringStaticProperty(forLang: "en-us", visibility: .public)
// Expect
let expectFr = """
/// Translation in fr :
@@ -271,7 +271,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
static var definition_name: String {
public static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "C'est la traduction francaise", comment: "This is a comment")
}
"""
@@ -282,7 +282,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
static var definition_name: String {
public static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english translation", comment: "This is a comment")
}
"""
@@ -293,7 +293,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
static var definition_name: String {
public static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english us translation", comment: "This is a comment")
}
"""
@@ -315,9 +315,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringStaticProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringStaticProperty(forLang: "en")
let propertyEnUs = definition.getNSLocalizedStringStaticProperty(forLang: "en-us")
let propertyFr = definition.getNSLocalizedStringStaticProperty(forLang: "fr", visibility: .internal)
let propertyEn = definition.getNSLocalizedStringStaticProperty(forLang: "en", visibility: .internal)
let propertyEnUs = definition.getNSLocalizedStringStaticProperty(forLang: "en-us", visibility: .internal)
// Expect
let expectFr = """
@@ -326,7 +326,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "C'est la traduction francaise", comment: "")
}
"""
@@ -337,7 +337,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english translation", comment: "")
}
"""
@@ -348,7 +348,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english us translation", comment: "")
}
"""
@@ -369,9 +369,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringStaticProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringStaticProperty(forLang: "en")
let propertyEnUs = definition.getNSLocalizedStringStaticProperty(forLang: "en-us")
let propertyFr = definition.getNSLocalizedStringStaticProperty(forLang: "fr", visibility: .internal)
let propertyEn = definition.getNSLocalizedStringStaticProperty(forLang: "en", visibility: .internal)
let propertyEnUs = definition.getNSLocalizedStringStaticProperty(forLang: "en-us", visibility: .internal)
// Expect
let expectFr = """
@@ -380,7 +380,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "C'est la traduction francaise", comment: "")
}
"""
@@ -391,7 +391,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english translation", comment: "")
}
"""
@@ -402,7 +402,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "This is the english us translation", comment: "")
}
"""
@@ -422,8 +422,8 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr")
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr", visibility: .internal)
// Expect
let expectFr = """
/// Translation in fr :
@@ -431,7 +431,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
internal var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "This is a comment")
}
@@ -440,7 +440,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
func definition_name(arg0: String) -> String {
internal func definition_name(arg0: String) -> String {
String(format: self.definition_name, arg0)
}
"""
@@ -458,8 +458,8 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr")
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr", visibility: .private)
// Expect
let expectFr = """
/// Translation in fr :
@@ -467,7 +467,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
private var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" ! Your age is %d :) Your weight is %f ;-)", comment: "This is a comment")
}
@@ -476,7 +476,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
func definition_name(arg0: String, arg1: Int, arg2: Double) -> String {
private func definition_name(arg0: String, arg1: Int, arg2: Double) -> String {
String(format: self.definition_name, arg0, arg1, arg2)
}
"""
@@ -495,16 +495,16 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr")
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en")
let propertyFr = definition.getNSLocalizedStringProperty(forLang: "fr", visibility: .public)
let propertyEn = definition.getNSLocalizedStringProperty(forLang: "en", visibility: .public)
let expectFr = """
/// Translation in fr :
/// Vous %%: %1$@ %2$@ Age: %3$d
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "Vous %%: %1$@ %2$@ Age: %3$d", comment: "This is a comment")
}
@@ -513,7 +513,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
func definition_name(arg0: String, arg1: String, arg2: Int) -> String {
public func definition_name(arg0: String, arg1: String, arg2: Int) -> String {
String(format: self.definition_name, arg0, arg1, arg2)
}
"""
@@ -524,7 +524,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
NSLocalizedString("definition_name", tableName: kStringsFileName, bundle: Bundle.main, value: "You %%: %2$@ %1$@ Age: %3$d", comment: "This is a comment")
}
@@ -533,7 +533,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
func definition_name(arg0: String, arg1: String, arg2: Int) -> String {
public func definition_name(arg0: String, arg1: String, arg2: Int) -> String {
String(format: self.definition_name, arg0, arg1, arg2)
}
"""
@@ -556,10 +556,10 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getProperty(forLang: "fr")
let propertyEn = definition.getProperty(forLang: "en")
let propertyEnUs = definition.getProperty(forLang: "en-us")
let propertyFr = definition.getProperty(forLang: "fr", visibility: .public)
let propertyEn = definition.getProperty(forLang: "en", visibility: .public)
let propertyEnUs = definition.getProperty(forLang: "en-us", visibility: .public)
// Expect
let expectFr = """
/// Translation in fr :
@@ -567,7 +567,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
"C'est la traduction francaise"
}
"""
@@ -578,7 +578,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
"This is the english translation"
}
"""
@@ -589,7 +589,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
var definition_name: String {
public var definition_name: String {
"This is the english us translation"
}
"""
@@ -611,9 +611,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getProperty(forLang: "fr")
let propertyEn = definition.getProperty(forLang: "en")
let propertyEnUs = definition.getProperty(forLang: "en-us")
let propertyFr = definition.getProperty(forLang: "fr", visibility: .package)
let propertyEn = definition.getProperty(forLang: "en", visibility: .package)
let propertyEnUs = definition.getProperty(forLang: "en-us", visibility: .package)
// Expect
let expectFr = """
@@ -622,7 +622,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
package var definition_name: String {
"C'est la traduction francaise"
}
"""
@@ -633,7 +633,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
package var definition_name: String {
"This is the english translation"
}
"""
@@ -644,7 +644,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
package var definition_name: String {
"This is the english us translation"
}
"""
@@ -665,9 +665,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getProperty(forLang: "fr")
let propertyEn = definition.getProperty(forLang: "en")
let propertyEnUs = definition.getProperty(forLang: "en-us")
let propertyFr = definition.getProperty(forLang: "fr", visibility: .private)
let propertyEn = definition.getProperty(forLang: "en", visibility: .private)
let propertyEnUs = definition.getProperty(forLang: "en-us", visibility: .private)
// Expect
let expectFr = """
@@ -676,7 +676,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
private var definition_name: String {
"C'est la traduction francaise"
}
"""
@@ -687,7 +687,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
private var definition_name: String {
"This is the english translation"
}
"""
@@ -698,7 +698,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
var definition_name: String {
private var definition_name: String {
"This is the english us translation"
}
"""
@@ -722,10 +722,10 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getStaticProperty(forLang: "fr")
let propertyEn = definition.getStaticProperty(forLang: "en")
let propertyEnUs = definition.getStaticProperty(forLang: "en-us")
let propertyFr = definition.getStaticProperty(forLang: "fr", visibility: .internal)
let propertyEn = definition.getStaticProperty(forLang: "en", visibility: .internal)
let propertyEnUs = definition.getStaticProperty(forLang: "en-us", visibility: .internal)
// Expect
let expectFr = """
/// Translation in fr :
@@ -733,7 +733,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
static var definition_name: String {
internal static var definition_name: String {
"C'est la traduction francaise"
}
"""
@@ -744,7 +744,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
static var definition_name: String {
internal static var definition_name: String {
"This is the english translation"
}
"""
@@ -755,7 +755,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// This is a comment
static var definition_name: String {
internal static var definition_name: String {
"This is the english us translation"
}
"""
@@ -777,9 +777,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getStaticProperty(forLang: "fr")
let propertyEn = definition.getStaticProperty(forLang: "en")
let propertyEnUs = definition.getStaticProperty(forLang: "en-us")
let propertyFr = definition.getStaticProperty(forLang: "fr", visibility: .internal)
let propertyEn = definition.getStaticProperty(forLang: "en", visibility: .internal)
let propertyEnUs = definition.getStaticProperty(forLang: "en-us", visibility: .internal)
// Expect
let expectFr = """
@@ -788,7 +788,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
"C'est la traduction francaise"
}
"""
@@ -799,7 +799,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
"This is the english translation"
}
"""
@@ -810,7 +810,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
"This is the english us translation"
}
"""
@@ -831,9 +831,9 @@ final class DefinitionTests: XCTestCase {
]
// When
let propertyFr = definition.getStaticProperty(forLang: "fr")
let propertyEn = definition.getStaticProperty(forLang: "en")
let propertyEnUs = definition.getStaticProperty(forLang: "en-us")
let propertyFr = definition.getStaticProperty(forLang: "fr", visibility: .internal)
let propertyEn = definition.getStaticProperty(forLang: "en", visibility: .internal)
let propertyEnUs = definition.getStaticProperty(forLang: "en-us", visibility: .internal)
// Expect
let expectFr = """
@@ -842,7 +842,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
"C'est la traduction francaise"
}
"""
@@ -853,7 +853,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
"This is the english translation"
}
"""
@@ -864,7 +864,7 @@ final class DefinitionTests: XCTestCase {
///
/// Comment :
/// No comment
static var definition_name: String {
internal static var definition_name: String {
"This is the english us translation"
}
"""