summaryrefslogtreecommitdiff
path: root/HutchTests
diff options
context:
space:
mode:
Diffstat (limited to 'HutchTests')
-rw-r--r--HutchTests/ProjectFormTests.swift39
1 files changed, 39 insertions, 0 deletions
diff --git a/HutchTests/ProjectFormTests.swift b/HutchTests/ProjectFormTests.swift
new file mode 100644
index 0000000..a4b4dfa
--- /dev/null
+++ b/HutchTests/ProjectFormTests.swift
@@ -0,0 +1,39 @@
+import Foundation
+import Testing
+@testable import Hutch
+
+struct ProjectFormTests {
+ @Test
+ func parsesTagsSplittingAndTrimming() {
+ #expect(ProjectFormSheet.parseTags("swift, ios , ") == ["swift", "ios"])
+ #expect(ProjectFormSheet.parseTags("a,b,c") == ["a", "b", "c"])
+ }
+
+ @Test
+ func parseTagsDeduplicatesCaseInsensitively() {
+ #expect(ProjectFormSheet.parseTags("Swift, swift, SWIFT") == ["Swift"])
+ }
+
+ @Test
+ func parseTagsEmptyInputYieldsEmpty() {
+ #expect(ProjectFormSheet.parseTags(" ").isEmpty)
+ #expect(ProjectFormSheet.parseTags("").isEmpty)
+ }
+
+ @Test
+ func linkableResourceDisplayNameCombinesOwnerAndName() {
+ let resource = LinkableResource(rid: "r1", name: "hutch", ownerCanonicalName: "~alice", kind: .source)
+ #expect(resource.displayName == "~alice/hutch")
+ #expect(resource.id == "r1")
+ }
+
+ @Test
+ func discoveredProjectIDMatchesProject() {
+ let project = Project(
+ metadata: .init(id: "p1", name: "Hutch", description: nil, website: nil, visibility: .publicVisibility, tags: [], updated: .now),
+ resources: .init(mailingLists: [], sources: [], trackers: [], isFullyLoaded: false)
+ )
+ let discovered = DiscoveredProject(project: project, ownerCanonicalName: "~alice")
+ #expect(discovered.id == "p1")
+ }
+}