krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
v3.10.0: HutchTests/ProjectFormTests.swift · raw
1import Foundation
2import Testing
3@testable import Hutch
4
5struct ProjectFormTests {
6 @Test
7 func parsesTagsSplittingAndTrimming() {
8 #expect(ProjectFormSheet.parseTags("swift, ios , ") == ["swift", "ios"])
9 #expect(ProjectFormSheet.parseTags("a,b,c") == ["a", "b", "c"])
10 }
11
12 @Test
13 func parseTagsDeduplicatesCaseInsensitively() {
14 #expect(ProjectFormSheet.parseTags("Swift, swift, SWIFT") == ["Swift"])
15 }
16
17 @Test
18 func parseTagsEmptyInputYieldsEmpty() {
19 #expect(ProjectFormSheet.parseTags(" ").isEmpty)
20 #expect(ProjectFormSheet.parseTags("").isEmpty)
21 }
22
23 @Test
24 func linkableResourceDisplayNameCombinesOwnerAndName() {
25 let resource = LinkableResource(rid: "r1", name: "hutch", ownerCanonicalName: "~alice", kind: .source)
26 #expect(resource.displayName == "~alice/hutch")
27 #expect(resource.id == "r1")
28 }
29
30 @Test
31 func discoveredProjectIDMatchesProject() {
32 let project = Project(
33 metadata: .init(id: "p1", name: "Hutch", description: nil, website: nil, visibility: .publicVisibility, tags: [], updated: .now),
34 resources: .init(mailingLists: [], sources: [], trackers: [], isFullyLoaded: false)
35 )
36 let discovered = DiscoveredProject(project: project, ownerCanonicalName: "~alice")
37 #expect(discovered.id == "p1")
38 }
39}