Skip to content
This repository was archived by the owner on Feb 26, 2026. It is now read-only.

Commit 3cf850f

Browse files
committed
Add Metadata Tests
1 parent 6b2e1a5 commit 3cf850f

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

Sources/XcodeMetadata/Providers/SystemFrameworkMetadataProvider.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@ import XcodeGraph
66

77
public enum SystemFrameworkMetadataProviderError: LocalizedError, Equatable {
88
case unsupportedSDK(name: String)
9+
case unsupportedSDKPlatform(sdk: String, platform: Platform, supported: [Platform])
910

1011
public var errorDescription: String? {
1112
switch self {
1213
case let .unsupportedSDK(sdk):
1314
let supportedTypes = SDKType.supportedTypesDescription
1415
return "The SDK type of \(sdk) is not currently supported - only \(supportedTypes) are supported."
16+
case let .unsupportedSDKPlatform(sdk, platform, supported):
17+
let platforms = supported.map(\.caseValue).joined(separator: ", ")
18+
return "The Platform type of \(platform.caseValue) is not currently supported for \(sdk) - only \(platforms) are supported."
1519
}
1620
}
1721
}
@@ -61,6 +65,10 @@ public final class SystemFrameworkMetadataProvider: SystemFrameworkMetadataProvi
6165
var source = sdkSource
6266
if sdkName == "XcodeKit.framework" {
6367
source = .developer
68+
if platform != .macOS {
69+
throw SystemFrameworkMetadataProviderError
70+
.unsupportedSDKPlatform(sdk: sdkName, platform: platform, supported: [.macOS])
71+
}
6472
}
6573

6674
let path = try sdkPath(name: sdkName, platform: platform, type: sdkType, source: source)

Tests/XcodeMetadataTests/SystemFrameworkMetadataProviderTests.swift

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,21 @@ struct SystemFrameworkMetadataProviderTests {
8484
}
8585
}
8686

87+
@Test
88+
func loadMetadataUnsupportedPlatform() throws {
89+
// Given
90+
let sdkName = "XcodeKit.framework"
91+
let platform = Platform.iOS
92+
93+
// When / Then
94+
#expect(
95+
throws: SystemFrameworkMetadataProviderError
96+
.unsupportedSDKPlatform(sdk: sdkName, platform: platform, supported: [.macOS])
97+
) {
98+
try subject.loadMetadata(sdkName: sdkName, status: .required, platform: platform, source: .system)
99+
}
100+
}
101+
87102
@Test
88103
func loadMetadataDeveloperSourceSupportedPlatform() throws {
89104
// Given
@@ -105,4 +120,26 @@ struct SystemFrameworkMetadataProviderTests {
105120
"Metadata does not match expected value"
106121
)
107122
}
123+
124+
@Test
125+
func loadMetadataXcodeKit() throws {
126+
// Given
127+
let sdkName = "XcodeKit.framework"
128+
let platform = Platform.macOS
129+
let source = SDKSource.system
130+
131+
// When
132+
let metadata = try subject.loadMetadata(sdkName: sdkName, status: .required, platform: platform, source: source)
133+
134+
// Then
135+
#expect(
136+
metadata == SystemFrameworkMetadata(
137+
name: sdkName,
138+
path: "/Library/Frameworks/XcodeKit.framework",
139+
status: .required,
140+
source: .developer
141+
),
142+
"Metadata does not match expected value"
143+
)
144+
}
108145
}

0 commit comments

Comments
 (0)