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}