krz/hutch

an ios client for sourcehut

clone: git clone https://gitbay.org/krz/hutch.git

main: HutchTests/TrackerManagementViewModelTests.swift · raw

 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}