mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
Handle duplicate 3.2.3 release builds
:/
This commit is contained in:
parent
dcd4001548
commit
760c9f300e
2 changed files with 33 additions and 4 deletions
|
|
@ -464,10 +464,13 @@ class AppState: ObservableObject {
|
|||
})
|
||||
|
||||
let identicalBuilds: [Version]
|
||||
let availableXcodesWithIdenticalBuildIdentifiers = availableXcodes
|
||||
.filter({ $0.version.buildMetadataIdentifiers == availableXcode.version.buildMetadataIdentifiers })
|
||||
if availableXcodesWithIdenticalBuildIdentifiers.count > 1, availableXcode.version.prereleaseIdentifiers.isEmpty {
|
||||
identicalBuilds = availableXcodesWithIdenticalBuildIdentifiers.map(\.version)
|
||||
let prereleaseAvailableXcodesWithIdenticalBuildIdentifiers = availableXcodes
|
||||
.filter {
|
||||
$0.version.buildMetadataIdentifiers == availableXcode.version.buildMetadataIdentifiers && !$0.version.prereleaseIdentifiers.isEmpty
|
||||
}
|
||||
// If this is the release version, add the identical builds to it
|
||||
if !prereleaseAvailableXcodesWithIdenticalBuildIdentifiers.isEmpty, availableXcode.version.prereleaseIdentifiers.isEmpty {
|
||||
identicalBuilds = [availableXcode.version] + prereleaseAvailableXcodesWithIdenticalBuildIdentifiers.map(\.version)
|
||||
} else {
|
||||
identicalBuilds = []
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,6 +148,32 @@ class AppStateUpdateTests: XCTestCase {
|
|||
XCTAssertEqual(subject.allXcodes.map(\.identicalBuilds), [[Version("12.4.0+12D4e")!, Version("12.4.0-RC+12D4e")!]])
|
||||
}
|
||||
|
||||
func testIdenticalBuilds_DoNotMergeReleaseVersions() {
|
||||
Current.defaults.string = { key in
|
||||
if key == "dataSource" {
|
||||
return "xcodeReleases"
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
subject.allXcodes = [
|
||||
]
|
||||
|
||||
subject.updateAllXcodes(
|
||||
availableXcodes: [
|
||||
AvailableXcode(version: Version("3.2.3+10M2262")!, url: URL(string: "https://apple.com/xcode.xip")!, filename: "mock.xip", releaseDate: nil),
|
||||
AvailableXcode(version: Version("3.2.3+10M2262")!, url: URL(string: "https://apple.com/xcode.xip")!, filename: "mock.xip", releaseDate: nil),
|
||||
],
|
||||
installedXcodes: [
|
||||
],
|
||||
selectedXcodePath: nil
|
||||
)
|
||||
|
||||
XCTAssertEqual(subject.allXcodes.map(\.version), [Version("3.2.3+10M2262")!, Version("3.2.3+10M2262")!])
|
||||
XCTAssertEqual(subject.allXcodes.map(\.identicalBuilds), [[], []])
|
||||
}
|
||||
|
||||
func testIdenticalBuilds_KeepsReleaseVersion_WithPrereleaseInstalled() {
|
||||
Current.defaults.string = { key in
|
||||
if key == "dataSource" {
|
||||
|
|
|
|||
Loading…
Reference in a new issue