mirror of
https://github.com/maxgoedjen/secretive.git
synced 2026-03-10 19:47:24 +01:00
XPC to agent working
This commit is contained in:
@@ -11,5 +11,5 @@ Brief is a collection of protocols and concrete implmentation describing updates
|
||||
|
||||
### Updater
|
||||
|
||||
- ``UpdaterProtocol``
|
||||
- ``Updater``
|
||||
- ``UpdateCheckerProtocol``
|
||||
- ``UpdateChecker``
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import Foundation
|
||||
import Combine
|
||||
|
||||
/// A concrete implementation of ``UpdaterProtocol`` which considers the current release and OS version.
|
||||
public class Updater: ObservableObject, UpdaterProtocol {
|
||||
/// A concrete implementation of ``UpdateCheckerProtocol`` which considers the current release and OS version.
|
||||
public class UpdateChecker: ObservableObject, UpdateCheckerProtocol {
|
||||
|
||||
@Published public var update: Release?
|
||||
public let testBuild: Bool
|
||||
@@ -53,7 +53,7 @@ public class Updater: ObservableObject, UpdaterProtocol {
|
||||
|
||||
}
|
||||
|
||||
extension Updater {
|
||||
extension UpdateChecker {
|
||||
|
||||
/// Evaluates the available downloadable releases, and selects the newest non-prerelease release that the user is able to run.
|
||||
/// - Parameter releases: An array of ``Release`` objects.
|
||||
@@ -88,7 +88,7 @@ extension Updater {
|
||||
|
||||
}
|
||||
|
||||
extension Updater {
|
||||
extension UpdateChecker {
|
||||
|
||||
enum Constants {
|
||||
static let updateURL = URL(string: "https://api.github.com/repos/maxgoedjen/secretive/releases")!
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import Foundation
|
||||
|
||||
/// A protocol for retreiving the latest available version of an app.
|
||||
public protocol UpdaterProtocol: ObservableObject {
|
||||
public protocol UpdateCheckerProtocol: ObservableObject {
|
||||
|
||||
/// The latest update
|
||||
var update: Release? { get }
|
||||
|
||||
@@ -51,7 +51,7 @@ class ReleaseParsingTests: XCTestCase {
|
||||
func testGreatestSelectedIfOldPatchIsPublishedLater() {
|
||||
// If 2.x.x series has been published, and a patch for 1.x.x is issued
|
||||
// 2.x.x should still be selected if user can run it.
|
||||
let updater = Updater(checkOnLaunch: false, osVersion: SemVer("2.2.3"), currentVersion: SemVer("1.0.0"))
|
||||
let updater = UpdateChecker(checkOnLaunch: false, osVersion: SemVer("2.2.3"), currentVersion: SemVer("1.0.0"))
|
||||
let two = Release(name: "2.0.0", prerelease: false, html_url: URL(string: "https://example.com")!, body: "2.0 available! Minimum macOS Version: 2.2.3")
|
||||
let releases = [
|
||||
Release(name: "1.0.0", prerelease: false, html_url: URL(string: "https://example.com")!, body: "Initial release Minimum macOS Version: 1.2.3"),
|
||||
@@ -72,7 +72,7 @@ class ReleaseParsingTests: XCTestCase {
|
||||
func testLatestVersionIsRunnable() {
|
||||
// If the 2.x.x series has been published but the user can't run it
|
||||
// the last version the user can run should be selected.
|
||||
let updater = Updater(checkOnLaunch: false, osVersion: SemVer("1.2.3"), currentVersion: SemVer("1.0.0"))
|
||||
let updater = UpdateChecker(checkOnLaunch: false, osVersion: SemVer("1.2.3"), currentVersion: SemVer("1.0.0"))
|
||||
let oneOhTwo = Release(name: "1.0.2", prerelease: false, html_url: URL(string: "https://example.com")!, body: "Emergency patch! Minimum macOS Version: 1.2.3")
|
||||
let releases = [
|
||||
Release(name: "1.0.0", prerelease: false, html_url: URL(string: "https://example.com")!, body: "Initial release Minimum macOS Version: 1.2.3"),
|
||||
|
||||
Reference in New Issue
Block a user