krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
v2.15.0: HutchTests/ProjectTests.swift · raw
1import Foundation
2import Testing
3@testable import Hutch
4
5struct ProjectTests {
6 @Test
7 func resourceSummaryIncludesCounts() {
8 let project = Project(
9 id: "project-1",
10 name: "Hutch",
11 description: nil,
12 website: nil,
13 visibility: .public,
14 tags: [],
15 updated: Date(timeIntervalSince1970: 0),
16 mailingLists: [
17 Project.MailingList(
18 id: "list-1",
19 name: "hutch-devel",
20 description: nil,
21 visibility: .public,
22 owner: Entity(canonicalName: "~owner")
23 )
24 ],
25 sources: [
26 Project.SourceRepo(
27 id: "repo-1",
28 name: "hutch",
29 description: nil,
30 visibility: .public,
31 owner: Entity(canonicalName: "~owner"),
32 repoType: .git
33 ),
34 Project.SourceRepo(
35 id: "repo-2",
36 name: "hutch-web",
37 description: nil,
38 visibility: .public,
39 owner: Entity(canonicalName: "~owner"),
40 repoType: .git
41 )
42 ],
43 trackers: [
44 Project.Tracker(
45 id: "tracker-1",
46 name: "bugs",
47 description: nil,
48 visibility: .public,
49 owner: Entity(canonicalName: "~owner")
50 )
51 ]
52 )
53
54 #expect(project.resourceSummary == "2 repos • 1 tracker • 1 list")
55 }
56
57 @Test
58 func resourceSummaryFallsBackToWebsite() {
59 let project = Project(
60 id: "project-1",
61 name: "Docs",
62 description: nil,
63 website: "https://example.com",
64 visibility: .public,
65 tags: [],
66 updated: Date(timeIntervalSince1970: 0),
67 mailingLists: [],
68 sources: [],
69 trackers: []
70 )
71
72 #expect(project.resourceSummary == "Website linked")
73 }
74}