HutchTests/TrackerManagementViewModelTests.swift

v3.12.2
hutch/HutchTests/TrackerManagementViewModelTests.swift history · blame · raw

39 lines · 1173 bytes

 1import Testing
 2@testable import Hutch
 3
 4@MainActor
 5struct TrackerManagementViewModelTests {
 6
 7    @Test
 8    @MainActor
 9    func normalizedUsernameStripsLeadingTildeAndWhitespace() {
10        #expect(TrackerManagementViewModel.normalizedUsername("  ~alice  ") == "alice")
11        #expect(TrackerManagementViewModel.normalizedUsername("bob") == "bob")
12    }
13
14    @Test
15    @MainActor
16    func hexColorValidationRequiresPoundAndSixHexDigits() {
17        #expect(TrackerManagementViewModel.isValidHexColor("#a1B2c3"))
18        #expect(!TrackerManagementViewModel.isValidHexColor("a1B2c3"))
19        #expect(!TrackerManagementViewModel.isValidHexColor("#12345"))
20        #expect(!TrackerManagementViewModel.isValidHexColor("#12GG45"))
21    }
22
23    @Test
24    func trackerACLPermissionsExposeBooleanFlags() {
25        let permissions = TrackerACLPermissions(
26            browse: true,
27            submit: false,
28            comment: true,
29            edit: false,
30            triage: true
31        )
32
33        #expect(permissions.browse)
34        #expect(!permissions.submit)
35        #expect(permissions.comment)
36        #expect(!permissions.edit)
37        #expect(permissions.triage)
38    }
39}