import Foundationimport Testing@testable import CodexBarCore @Suite(.serialized)struct BedrockSettingsReaderTests { @Test func `default auth mode is keys`() { #expect(BedrockSettingsReader.authMode(environment: [:]) == .keys) } @Test func `explicit profile auth mode wins`() { let env = ["CODEXBAR_BEDROCK_AUTH_MODE": "profile"] #expect(BedrockSettingsReader.authMode(environment: env) == .profile) } @Test func `AWS_PROFILE without keys implies profile mode`() { let env = ["AWS_PROFILE": "work"] #expect(BedrockSettingsReader.authMode(environment: env) == .profile) #expect(BedrockSettingsReader.profile(environment: env) == "work") } @Test func `AWS_PROFILE alongside static keys keeps keys mode`() { let env = [ "AWS_PROFILE": "work", "AWS_ACCESS_KEY_ID": "AKIA", "AWS_SECRET_ACCESS_KEY": "secret", ] #expect(BedrockSettingsReader.authMode(environment: env) == .keys) } @Test func `hasCredentials in profile mode requires a profile name`() { let withProfile = ["CODEXBAR_BEDROCK_AUTH_MODE": "profile", "AWS_PROFILE": "work"] let withoutProfile = ["CODEXBAR_BEDROCK_AUTH_MODE": "profile"] #expect(BedrockSettingsReader.hasCredentials(environment: withProfile)) #expect(!BedrockSettingsReader.hasCredentials(environment: withoutProfile)) } @Test func `hasCredentials in keys mode requires both keys`() { let both = ["AWS_ACCESS_KEY_ID": "AKIA", "AWS_SECRET_ACCESS_KEY": "secret"] let onlyAccess = ["AWS_ACCESS_KEY_ID": "AKIA"] #expect(BedrockSettingsReader.hasCredentials(environment: both)) #expect(!BedrockSettingsReader.hasCredentials(environment: onlyAccess)) }}
import Foundation
import Testing
@testable import CodexBarCore
@Suite(.serialized)
struct BedrockSettingsReaderTests {
@Test
func `default auth mode is keys`() {
#expect(BedrockSettingsReader.authMode(environment: [:]) == .keys)
}
@Test
func `explicit profile auth mode wins`() {
let env = ["CODEXBAR_BEDROCK_AUTH_MODE": "profile"]
#expect(BedrockSettingsReader.authMode(environment: env) == .profile)
}
@Test
func `AWS_PROFILE without keys implies profile mode`() {
let env = ["AWS_PROFILE": "work"]
#expect(BedrockSettingsReader.authMode(environment: env) == .profile)
#expect(BedrockSettingsReader.profile(environment: env) == "work")
}
@Test
func `AWS_PROFILE alongside static keys keeps keys mode`() {
let env = [
"AWS_PROFILE": "work",
"AWS_ACCESS_KEY_ID": "AKIA",
"AWS_SECRET_ACCESS_KEY": "secret",
]
#expect(BedrockSettingsReader.authMode(environment: env) == .keys)
}
@Test
func `hasCredentials in profile mode requires a profile name`() {
let withProfile = ["CODEXBAR_BEDROCK_AUTH_MODE": "profile", "AWS_PROFILE": "work"]
let withoutProfile = ["CODEXBAR_BEDROCK_AUTH_MODE": "profile"]
#expect(BedrockSettingsReader.hasCredentials(environment: withProfile))
#expect(!BedrockSettingsReader.hasCredentials(environment: withoutProfile))
}
@Test
func `hasCredentials in keys mode requires both keys`() {
let both = ["AWS_ACCESS_KEY_ID": "AKIA", "AWS_SECRET_ACCESS_KEY": "secret"]
let onlyAccess = ["AWS_ACCESS_KEY_ID": "AKIA"]
#expect(BedrockSettingsReader.hasCredentials(environment: both))
#expect(!BedrockSettingsReader.hasCredentials(environment: onlyAccess))
}
}