summaryrefslogtreecommitdiff
path: root/HutchTests/TrackerManagementViewModelTests.swift
blob: 531608c7d1dfdc231e64dce371bdf6a91b6a4c06 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import Testing
@testable import Hutch

struct TrackerManagementViewModelTests {

    @Test
    @MainActor
    func normalizedUsernameStripsLeadingTildeAndWhitespace() {
        #expect(TrackerManagementViewModel.normalizedUsername("  ~alice  ") == "alice")
        #expect(TrackerManagementViewModel.normalizedUsername("bob") == "bob")
    }

    @Test
    @MainActor
    func hexColorValidationRequiresPoundAndSixHexDigits() {
        #expect(TrackerManagementViewModel.isValidHexColor("#a1B2c3"))
        #expect(!TrackerManagementViewModel.isValidHexColor("a1B2c3"))
        #expect(!TrackerManagementViewModel.isValidHexColor("#12345"))
        #expect(!TrackerManagementViewModel.isValidHexColor("#12GG45"))
    }

    @Test
    func trackerACLPermissionsExposeBooleanFlags() {
        let permissions = TrackerACLPermissions(
            browse: true,
            submit: false,
            comment: true,
            edit: false,
            triage: true
        )

        #expect(permissions.browse)
        #expect(!permissions.submit)
        #expect(permissions.comment)
        #expect(!permissions.edit)
        #expect(permissions.triage)
    }
}