/
TestAction+ManifestMapper.swift
35 lines (33 loc) · 2.03 KB
/
TestAction+ManifestMapper.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import Foundation
import ProjectDescription
import TSCBasic
import TuistCore
extension TuistCore.TestAction {
/// Maps a ProjectDescription.TestAction instance into a TuistCore.TestAction instance.
/// - Parameters:
/// - manifest: Manifest representation of test action model.
/// - generatorPaths: Generator paths.
static func from(manifest: ProjectDescription.TestAction, generatorPaths: GeneratorPaths) throws -> TuistCore.TestAction {
let targets = try manifest.targets.map { try TuistCore.TestableTarget.from(manifest: $0, generatorPaths: generatorPaths) }
let arguments = manifest.arguments.map { TuistCore.Arguments.from(manifest: $0) }
let configurationName = manifest.configurationName
let coverage = manifest.coverage
let codeCoverageTargets = try manifest.codeCoverageTargets.map {
TuistCore.TargetReference(projectPath: try generatorPaths.resolveSchemeActionProjectPath($0.projectPath),
name: $0.targetName)
}
let preActions = try manifest.preActions.map { try TuistCore.ExecutionAction.from(manifest: $0,
generatorPaths: generatorPaths) }
let postActions = try manifest.postActions.map { try TuistCore.ExecutionAction.from(manifest: $0,
generatorPaths: generatorPaths) }
let diagnosticsOptions = Set(manifest.diagnosticsOptions.map { TuistCore.SchemeDiagnosticsOption.from(manifest: $0) })
return TestAction(targets: targets,
arguments: arguments,
configurationName: configurationName,
coverage: coverage,
codeCoverageTargets: codeCoverageTargets,
preActions: preActions,
postActions: postActions,
diagnosticsOptions: diagnosticsOptions)
}
}