Merge pull request #27 from f-meloni/fix_bump

Fix the version bump
This commit is contained in:
Franco Meloni 2019-02-10 16:19:03 +00:00 committed by GitHub
commit d739d24a0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 9 deletions

View File

@ -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: ".")
}
}

View File

@ -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"
}
}