commit
d739d24a0b
|
@ -3,22 +3,30 @@ public enum VersionBumpOption: String {
|
|||
case minor
|
||||
case major
|
||||
|
||||
func newVersion(currentVersion: String) -> String {
|
||||
let componentIndex: Int
|
||||
|
||||
private var index: Int {
|
||||
switch self {
|
||||
case .major:
|
||||
componentIndex = 0
|
||||
return 0
|
||||
case .minor:
|
||||
componentIndex = 1
|
||||
return 1
|
||||
case .patch:
|
||||
componentIndex = 2
|
||||
return 2
|
||||
}
|
||||
}
|
||||
|
||||
func newVersion(currentVersion: String) -> String {
|
||||
var versionComponent = currentVersion.split(separator: ".").map { String($0) }
|
||||
|
||||
let componentIndex = self.index
|
||||
let newComponent = Int(versionComponent[componentIndex])?.advanced(by: 1) ?? 0
|
||||
versionComponent[componentIndex] = newComponent.description
|
||||
|
||||
if self != .patch {
|
||||
for i in componentIndex + 1 ... VersionBumpOption.patch.index {
|
||||
versionComponent[i] = "0"
|
||||
}
|
||||
}
|
||||
|
||||
return versionComponent.joined(separator: ".")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,12 +6,12 @@ final class NewVersionProviderTests: XCTestCase {
|
|||
let versionProvider = FakeCurrentVersionProvider()
|
||||
XCTAssertEqual(
|
||||
try NewVersionProvider.newVersion(.patch, currentVersionProvider: versionProvider),
|
||||
"1.0.1"
|
||||
"1.1.2"
|
||||
)
|
||||
|
||||
XCTAssertEqual(
|
||||
try NewVersionProvider.newVersion(.minor, currentVersionProvider: versionProvider),
|
||||
"1.1.0"
|
||||
"1.2.0"
|
||||
)
|
||||
|
||||
XCTAssertEqual(
|
||||
|
@ -23,6 +23,6 @@ final class NewVersionProviderTests: XCTestCase {
|
|||
|
||||
private class FakeCurrentVersionProvider: CurrentVersionProviding {
|
||||
func currentVersion() throws -> String {
|
||||
return "1.0.0"
|
||||
return "1.1.1"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue