feat(RES-58): Add new parameter "bundle" (#19)
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good

Add bundle parameter to define if resource should be load from Bundle.main (app) or Bundle.module (SPM package)

Reviewed-on: #19
This commit is contained in:
2025-07-25 16:14:36 +02:00
parent 5ad219ae89
commit f329386ccf
37 changed files with 866 additions and 403 deletions

View File

@@ -23,10 +23,11 @@ final class ColorExtensionGeneratorTests: XCTestCase {
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: false,
isStatic: false,
extensionName: "GenColors",
isSwiftUI: false,
visibility: .public
visibility: .public,
assetBundle: .main
)
// Expect
@@ -39,12 +40,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
@objc public var colorOne: UIColor {
UIColor(named: "colorOne")!
UIColor(named: "colorOne", in: Bundle.main, compatibleWith: nil)!
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
@objc public var colorTwo: UIColor {
UIColor(named: "colorTwo")!
UIColor(named: "colorTwo", in: Bundle.main, compatibleWith: nil)!
}
}
"""
@@ -52,7 +53,7 @@ final class ColorExtensionGeneratorTests: XCTestCase {
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
func test_uiKit_GeneratedExtensionContentForStaticVar() {
func test_uiKit_GeneratedExtensionContentForIsStatic() {
// Given
let colors = [
ParsedColor(name: "colorOne", light: "#FF00FF", dark: "#00FF00"),
@@ -62,10 +63,11 @@ final class ColorExtensionGeneratorTests: XCTestCase {
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: true,
isStatic: true,
extensionName: "GenColor",
isSwiftUI: false,
visibility: .public
visibility: .public,
assetBundle: .module
)
// Expect
@@ -78,12 +80,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
public static var colorOne: UIColor {
UIColor(named: "colorOne")!
UIColor(named: "colorOne", in: Bundle.module, compatibleWith: nil)!
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
public static var colorTwo: UIColor {
UIColor(named: "colorTwo")!
UIColor(named: "colorTwo", in: Bundle.module, compatibleWith: nil)!
}
}
"""
@@ -101,10 +103,11 @@ final class ColorExtensionGeneratorTests: XCTestCase {
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: false,
isStatic: false,
extensionName: "GenColors",
isSwiftUI: true,
visibility: .package
visibility: .package,
assetBundle: .main
)
// Expect
@@ -117,12 +120,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
package var colorOne: Color {
Color("colorOne")
Color("colorOne", bundle: Bundle.main)
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
package var colorTwo: Color {
Color("colorTwo")
Color("colorTwo", bundle: Bundle.main)
}
}
"""
@@ -130,7 +133,7 @@ final class ColorExtensionGeneratorTests: XCTestCase {
XCTAssertEqual(extensionContent.adaptForXCTest(), expect.adaptForXCTest())
}
func test_swiftUI_GeneratedExtensionContentForStaticVar() {
func test_swiftUI_GeneratedExtensionContentForIsStatic() {
// Given
let colors = [
ParsedColor(name: "colorOne", light: "#FF00FF", dark: "#00FF00"),
@@ -140,10 +143,11 @@ final class ColorExtensionGeneratorTests: XCTestCase {
// When
let extensionContent = ColorExtensionGenerator.getExtensionContent(
colors: colors,
staticVar: true,
isStatic: true,
extensionName: "GenColor",
isSwiftUI: true,
visibility: .internal
visibility: .internal,
assetBundle: .module
)
// Expect
@@ -156,12 +160,12 @@ final class ColorExtensionGeneratorTests: XCTestCase {
/// Color colorOne is #FF00FF (light) or #00FF00 (dark)"
internal static var colorOne: Color {
Color("colorOne")
Color("colorOne", bundle: Bundle.module)
}
/// Color colorTwo is #F0F0F0 (light) or #0F0F0F (dark)"
internal static var colorTwo: Color {
Color("colorTwo")
Color("colorTwo", bundle: Bundle.module)
}
}
"""

View File

@@ -20,14 +20,15 @@ final class ParsedColorTests: XCTestCase {
let property = color.getColorProperty(
isStatic: false,
isSwiftUI: false,
visibility: .public
visibility: .public,
assetBundle: .main
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
@objc public var red: UIColor {
UIColor(named: "red")!
UIColor(named: "red", in: Bundle.main, compatibleWith: nil)!
}
"""
@@ -42,14 +43,15 @@ final class ParsedColorTests: XCTestCase {
let property = color.getColorProperty(
isStatic: true,
isSwiftUI: false,
visibility: .private
visibility: .private,
assetBundle: .module
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
private static var red: UIColor {
UIColor(named: "red")!
UIColor(named: "red", in: Bundle.module, compatibleWith: nil)!
}
"""
@@ -64,14 +66,15 @@ final class ParsedColorTests: XCTestCase {
let property = color.getColorProperty(
isStatic: false,
isSwiftUI: true,
visibility: .package
visibility: .package,
assetBundle: .main
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
package var red: Color {
Color("red")
Color("red", bundle: Bundle.main)
}
"""
@@ -86,14 +89,15 @@ final class ParsedColorTests: XCTestCase {
let property = color.getColorProperty(
isStatic: true,
isSwiftUI: true,
visibility: .internal
visibility: .internal,
assetBundle: .module
)
// Expect
let expect = """
/// Color red is #FF0000 (light) or #0000FF (dark)"
internal static var red: Color {
Color("red")
Color("red", bundle: Bundle.module)
}
"""