Files
SwiftGen/Tests/SwiftGenTests/ConfigGenerateFileListTests.swift
2022-07-30 20:47:39 +02:00

142 lines
3.5 KiB
Swift

//
// SwiftGen
// Copyright © 2022 SwiftGen
// MIT Licence
//
import PathKit
@testable import SwiftGenCLI
import TestUtils
import XCTest
final class ConfigGenerateFileListTests: XCTestCase {
private lazy var resourcesPath: Path = {
let resources = Fixtures.resourceDirectory().parent().string
let current = Path.current.string
return Path(String(resources.dropFirst(current.count + 1)))
}()
// MARK: - Inputs
func testGenerateInputs1() throws {
let file = Fixtures.config(for: "config-absolute-paths-direct")
do {
let config = try Config(file: file)
let fileList = try config.inputXCFileList()
XCTAssertEqual(fileList, """
# colors
/colors/templates.stencil
# fonts
/fonts/templates.stencil
# ib
/ib/templates.stencil
# strings
/strings/templates.stencil
# xcassets
/xcassets/templates.stencil
""")
} catch let error {
XCTFail("Error: \(error)")
}
}
func testGenerateInputs2() throws {
let file = Fixtures.config(for: "config-with-multi-entries")
do {
let config = try Config(file: file)
let fileList = try config.inputXCFileList()
XCTAssertEqual(fileList, """
# strings
$(SRCROOT)/\(resourcesPath)/Configs/Fixtures/Strings/Localizable.strings
templates/custom-swift5
# xcassets
$(SRCROOT)/\(resourcesPath)/Configs/Fixtures/XCAssets/Colors.xcassets
$(SRCROOT)/\(resourcesPath)/Configs/Fixtures/XCAssets/Images.xcassets
""")
} catch let error {
XCTFail("Error: \(error)")
}
}
func testGenerateInputs3() throws {
let file = Fixtures.config(for: "config-with-multi-outputs")
do {
let config = try Config(file: file)
let fileList = try config.inputXCFileList()
XCTAssertEqual(fileList, """
# ib
""")
} catch let error {
XCTFail("Error: \(error)")
}
}
// MARK: - Outputs
func testGenerateOutputs1() throws {
let file = Fixtures.config(for: "config-absolute-paths-direct")
do {
let config = try Config(file: file)
let fileList = try config.outputXCFileList()
XCTAssertEqual(fileList, """
# colors
/colors/out.swift
# fonts
/fonts/out.swift
# ib
/ib/out.swift
# strings
/strings/out.swift
# xcassets
/xcassets/out.swift
""")
} catch let error {
XCTFail("Error: \(error)")
}
}
func testGenerateOutputs2() throws {
let file = Fixtures.config(for: "config-with-multi-entries")
do {
let config = try Config(file: file)
let fileList = try config.outputXCFileList()
XCTAssertEqual(fileList, """
# strings
$(SRCROOT)/\(resourcesPath)/Configs/Generated/strings.swift
# xcassets
$(SRCROOT)/\(resourcesPath)/Configs/Generated/assets-all.swift
$(SRCROOT)/\(resourcesPath)/Configs/Generated/assets-colors.swift
$(SRCROOT)/\(resourcesPath)/Configs/Generated/assets-images.swift
""")
} catch let error {
XCTFail("Error: \(error)")
}
}
func testGenerateOutputs3() throws {
let file = Fixtures.config(for: "config-with-multi-outputs")
do {
let config = try Config(file: file)
let fileList = try config.outputXCFileList()
XCTAssertEqual(fileList, """
# ib
$(SRCROOT)/\(resourcesPath)/Configs/Generated/ib-scenes.swift
$(SRCROOT)/\(resourcesPath)/Configs/Generated/ib-segues.swift
""")
} catch let error {
XCTFail("Error: \(error)")
}
}
}