CallerIdentityTests.swift
39 lines 1.3 KB
Raw
sha256:c88bf098b52c796e46edc39ec71f9f0627d305439b73972d3fada73cefde0da9 fix: put release binaries before lipo architecture checks Human minor ⚠ breaking 27 days ago
1 import XCTest
2 @testable import KnowtationSecurity
3
4 final class CallerIdentityTests: XCTestCase {
5 private let policy = CallerIdentityPolicy(
6 teamIdentifier: "TEAM123456",
7 allowedIdentifiers: [
8 KnowtationReleaseContract.appIdentifier,
9 KnowtationReleaseContract.cliIdentifier,
10 KnowtationReleaseContract.mcpIdentifier,
11 ]
12 )
13
14 func testAcceptsSameTeamAllowedCaller() throws {
15 let identity = CallerIdentity(
16 identifier: KnowtationReleaseContract.cliIdentifier,
17 teamIdentifier: "TEAM123456"
18 )
19 XCTAssertEqual(try policy.evaluate(identity), identity)
20 }
21
22 func testRejectsOtherTeam() {
23 XCTAssertThrowsError(try policy.evaluate(CallerIdentity(
24 identifier: KnowtationReleaseContract.cliIdentifier,
25 teamIdentifier: "ATTACKER00"
26 ))) { error in
27 XCTAssertEqual(error as? CallerIdentityError, .teamMismatch)
28 }
29 }
30
31 func testRejectsSameTeamUnknownIdentifier() {
32 XCTAssertThrowsError(try policy.evaluate(CallerIdentity(
33 identifier: "store.knowtation.substituted",
34 teamIdentifier: "TEAM123456"
35 ))) { error in
36 XCTAssertEqual(error as? CallerIdentityError, .identifierDenied)
37 }
38 }
39 }
File History 1 commit
sha256:c88bf098b52c796e46edc39ec71f9f0627d305439b73972d3fada73cefde0da9 fix: put release binaries before lipo architecture checks Human minor ⚠ 27 days ago