This commit is contained in:
Yonas Kolb
2017-12-26 22:46:36 +08:00
parent 75e0644b99
commit 0bc2f3415e
4 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -89,10 +89,10 @@ extension ProjectSpec {
if scheme.configVariants.isEmpty {
if !configs.contains(where: { $0.type == .debug }) {
errors.append(.missingConfigTypeForGeneratedTargetScheme(target: target.name, configType: .debug))
errors.append(.missingConfigForTargetScheme(target: target.name, configType: .debug))
}
if !configs.contains(where: { $0.type == .release }) {
errors.append(.missingConfigTypeForGeneratedTargetScheme(target: target.name, configType: .release))
errors.append(.missingConfigForTargetScheme(target: target.name, configType: .release))
}
}
@@ -18,7 +18,7 @@ public struct SpecValidationError: Error, CustomStringConvertible {
case invalidBuildScriptPath(target: String, name: String?, path: String)
case invalidFileGroup(String)
case invalidConfigFileConfig(String)
case missingConfigTypeForGeneratedTargetScheme(target: String, configType: ConfigType)
case missingConfigForTargetScheme(target: String, configType: ConfigType)
public var description: String {
switch self {
@@ -48,7 +48,7 @@ public struct SpecValidationError: Error, CustomStringConvertible {
return "Invalid file group \(group.quoted)"
case let .invalidConfigFileConfig(config):
return "Config file has invalid config \(config.quoted)"
case let .missingConfigTypeForGeneratedTargetScheme(target, configType):
case let .missingConfigForTargetScheme(target, configType):
return "Target \(target.quoted) is missing a config of type \(configType.rawValue) to generate its scheme"
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ public func loadYamlDictionary(path: Path) throws -> [String: Any] {
guard let yaml = try Yams.load(yaml: string) else {
return [:]
}
return filterNull(yaml) as! [String: Any]
return filterNull(yaml) as? [String: Any] ?? [:]
}
fileprivate func filterNull(_ object: Any) -> Any {
@@ -125,8 +125,8 @@ func projectSpecTests() {
try expectValidationError(spec, .invalidBuildScriptPath(target: "target1", name: "prebuildScript1", path: "invalidPrebuildScript"))
try expectValidationError(spec, .invalidBuildScriptPath(target: "target1", name: nil, path: "invalidPostbuildScript"))
try expectValidationError(spec, .missingConfigTypeForGeneratedTargetScheme(target: "target1", configType: .debug))
try expectValidationError(spec, .missingConfigTypeForGeneratedTargetScheme(target: "target1", configType: .release))
try expectValidationError(spec, .missingConfigForTargetScheme(target: "target1", configType: .debug))
try expectValidationError(spec, .missingConfigForTargetScheme(target: "target1", configType: .release))
spec.targets[0].scheme?.configVariants = ["invalidVariant"]
try expectValidationError(spec, .invalidTargetSchemeConfigVariant(target: "target1", configVariant: "invalidVariant", configType: .debug))