summaryrefslogtreecommitdiff
path: root/HutchTests/TrackerManagementViewModelTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'HutchTests/TrackerManagementViewModelTests.swift')
-rw-r--r--HutchTests/TrackerManagementViewModelTests.swift36
1 files changed, 36 insertions, 0 deletions
diff --git a/HutchTests/TrackerManagementViewModelTests.swift b/HutchTests/TrackerManagementViewModelTests.swift
new file mode 100644
index 0000000..78edfc9
--- /dev/null
+++ b/HutchTests/TrackerManagementViewModelTests.swift
@@ -0,0 +1,36 @@
+import Testing
+@testable import Hutch
+
+struct TrackerManagementViewModelTests {
+
+ @Test
+ func normalizedUsernameStripsLeadingTildeAndWhitespace() {
+ #expect(TrackerManagementViewModel.normalizedUsername(" ~alice ") == "alice")
+ #expect(TrackerManagementViewModel.normalizedUsername("bob") == "bob")
+ }
+
+ @Test
+ 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)
+ }
+}