Tests/KeycaskCLITests/PathsTests.swift
38 lines · 1299 bytes
1import Foundation
2import Testing
3
4@testable import keycask
5
6@Suite struct PathsTests {
7 @Test func overrideWinsOverEverything() {
8 let url = Paths.vaultURL(
9 override: "/x/v.kc", environment: ["KEYCASK_VAULT": "/y", "HOME": "/h"])
10 #expect(url.path == "/x/v.kc")
11 }
12
13 @Test func environmentVariableWinsOverDefaults() {
14 let url = Paths.vaultURL(
15 override: nil, environment: ["KEYCASK_VAULT": "/y/v.kc", "HOME": "/h"])
16 #expect(url.path == "/y/v.kc")
17 }
18
19 #if os(Windows)
20 @Test func windowsUsesLocalAppData() {
21 let url = Paths.vaultURL(
22 override: nil, environment: ["LOCALAPPDATA": "C:\\Users\\u\\AppData\\Local"])
23 #expect(
24 url.path.hasSuffix("keycask/vault.kc") || url.path.hasSuffix("keycask\\vault.kc"))
25 }
26 #else
27 @Test func xdgDataHomeIsUsedWhenSet() {
28 let url = Paths.vaultURL(
29 override: nil, environment: ["XDG_DATA_HOME": "/d", "HOME": "/h"])
30 #expect(url.path == "/d/keycask/vault.kc")
31 }
32
33 @Test func homeFallback() {
34 let url = Paths.vaultURL(override: nil, environment: ["HOME": "/h"])
35 #expect(url.path == "/h/.local/share/keycask/vault.kc")
36 }
37 #endif
38}