Skip to content

Commit

Permalink
feat: add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
GMinucci committed Jan 28, 2025
1 parent 5ac0892 commit f1d5764
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Sources/VariantsCore/Schemas/iOS/iOSSigning.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation

// swiftlint:disable:next type_name
struct iOSSigning: Codable {
struct iOSSigning: Codable, Equatable {
let teamName: String?
let teamID: String?
let exportMethod: ExportMethod?
Expand Down
83 changes: 83 additions & 0 deletions Tests/VariantsCoreTests/iOSSigningTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,20 @@
//

// swiftlint:disable type_name
// swiftlint:disable line_length

import XCTest
@testable import VariantsCore

final class iOSSigningTests: XCTestCase {

private func makeUnnamedVariant(signing: iOSSigning?, debugSigning: iOSSigning?, releaseSigning: iOSSigning?) -> UnnamediOSVariant {
return UnnamediOSVariant(
versionName: "1", versionNumber: 1, appIcon: nil, appName: "AppName", idSuffix: "test", bundleID: nil,
signing: signing, debugSigning: debugSigning, releaseSigning: releaseSigning,
custom: nil, storeDestination: "appstore", postSwitchScript: nil)
}

func testMergeValidSignings() throws {
let signing = iOSSigning(teamName: "team",
teamID: nil,
Expand Down Expand Up @@ -112,6 +120,81 @@ final class iOSSigningTests: XCTestCase {
XCTAssertEqual(adhoc.prefix, "match AdHoc")
}

func testOnlyGlobalSigning() {
let globalSigning = iOSSigning(teamName: "global team name", teamID: "global_team_id", exportMethod: .appstore, matchURL: "global match url", style: .manual)
let unnamedVariant = makeUnnamedVariant(signing: nil, debugSigning: nil, releaseSigning: nil)
guard
let variant = try? iOSVariant(from: unnamedVariant, name: "", globalCustomProperties: nil, globalSigning: globalSigning, globalPostSwitchScript: nil)
else { return XCTFail("Failed to generate variants") }

XCTAssertEqual(variant.debugSigning, globalSigning)
XCTAssertEqual(variant.releaseSigning, globalSigning)
}

func testGlobalAndVariantSigning() {
let globalSigning = iOSSigning(teamName: "global team name", teamID: "global_team_id", exportMethod: .appstore, matchURL: "global match url", style: .manual)
let variantSigning = iOSSigning(teamName: "variant team name", teamID: "variant_team_id", exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let unnamedVariant = makeUnnamedVariant(signing: variantSigning, debugSigning: nil, releaseSigning: nil)
guard
let variant = try? iOSVariant(from: unnamedVariant, name: "", globalCustomProperties: nil, globalSigning: globalSigning, globalPostSwitchScript: nil)
else { return XCTFail("Failed to generate variants") }

XCTAssertEqual(variant.debugSigning, variantSigning)
XCTAssertEqual(variant.releaseSigning, variantSigning)
}

func testGlobalAndVariantReleaseSigning() {
let globalSigning = iOSSigning(teamName: "global team name", teamID: "global_team_id", exportMethod: .appstore, matchURL: "global match url", style: .manual)
let variantReleaseSigning = iOSSigning(teamName: "variant team name", teamID: "variant_team_id", exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let unnamedVariant = makeUnnamedVariant(signing: nil, debugSigning: nil, releaseSigning: variantReleaseSigning)
guard
let variant = try? iOSVariant(from: unnamedVariant, name: "", globalCustomProperties: nil, globalSigning: globalSigning, globalPostSwitchScript: nil)
else { return XCTFail("Failed to generate variants") }

XCTAssertEqual(variant.debugSigning, globalSigning)
XCTAssertEqual(variant.releaseSigning, variantReleaseSigning)
}

func testGlobalAndVariantDebugSigning() {
let globalSigning = iOSSigning(teamName: "global team name", teamID: "global_team_id", exportMethod: .appstore, matchURL: "global match url", style: .manual)
let variantDebugSigning = iOSSigning(teamName: "variant team name", teamID: "variant_team_id", exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let unnamedVariant = makeUnnamedVariant(signing: nil, debugSigning: variantDebugSigning, releaseSigning: nil)
guard
let variant = try? iOSVariant(from: unnamedVariant, name: "", globalCustomProperties: nil, globalSigning: globalSigning, globalPostSwitchScript: nil)
else { return XCTFail("Failed to generate variants") }

XCTAssertEqual(variant.debugSigning, variantDebugSigning)
XCTAssertEqual(variant.releaseSigning, globalSigning)
}

func testGlobalAndVariantReleaseDebugSigning() {
let globalSigning = iOSSigning(teamName: "global team name", teamID: "global_team_id", exportMethod: .appstore, matchURL: "global match url", style: .manual)
let variantDebugSigning = iOSSigning(teamName: "variant debug team name", teamID: "variant_debug_team_id",
exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let variantReleaseSigning = iOSSigning(teamName: "variant release team name", teamID: "variant_release_team_id",
exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let unnamedVariant = makeUnnamedVariant(signing: nil, debugSigning: variantDebugSigning, releaseSigning: variantReleaseSigning)
guard
let variant = try? iOSVariant(from: unnamedVariant, name: "", globalCustomProperties: nil, globalSigning: globalSigning, globalPostSwitchScript: nil)
else { return XCTFail("Failed to generate variants") }

XCTAssertEqual(variant.debugSigning, variantDebugSigning)
XCTAssertEqual(variant.releaseSigning, variantReleaseSigning)
}

func testGlobalAndVariantSigningAndDebugSigning() {
let globalSigning = iOSSigning(teamName: "global team name", teamID: "global_team_id", exportMethod: .appstore, matchURL: "global match url", style: .manual)
let variantSigning = iOSSigning(teamName: "variant team name", teamID: "variant_team_id", exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let variantDebugSigning = iOSSigning(teamName: "variant debug team name", teamID: "variant_debug_team_id", exportMethod: .appstore, matchURL: "variant match url", style: .manual)
let unnamedVariant = makeUnnamedVariant(signing: variantSigning, debugSigning: variantDebugSigning, releaseSigning: nil)
guard
let variant = try? iOSVariant(from: unnamedVariant, name: "", globalCustomProperties: nil, globalSigning: globalSigning, globalPostSwitchScript: nil)
else { return XCTFail("Failed to generate variants") }

XCTAssertEqual(variant.debugSigning, variantDebugSigning)
XCTAssertEqual(variant.releaseSigning, variantSigning)
}
}

// swiftlint:enable type_name
// swiftlint:enable line_length

0 comments on commit f1d5764

Please sign in to comment.