From 6ba4e967d5dfb5d3c7bb97a0f2662f3180595563 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Thu, 19 Mar 2026 15:17:38 -0500 Subject: feat: implement support for projects, lists, and pastes --- HutchTests/ProjectTests.swift | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 HutchTests/ProjectTests.swift (limited to 'HutchTests/ProjectTests.swift') diff --git a/HutchTests/ProjectTests.swift b/HutchTests/ProjectTests.swift new file mode 100644 index 0000000..a94d6d2 --- /dev/null +++ b/HutchTests/ProjectTests.swift @@ -0,0 +1,72 @@ +import Foundation +import Testing +@testable import Hutch + +struct ProjectTests { + @Test + func resourceSummaryIncludesCounts() { + let project = Project( + id: "project-1", + name: "Hutch", + description: nil, + website: nil, + visibility: .public, + tags: [], + mailingLists: [ + Project.MailingList( + id: "list-1", + name: "hutch-devel", + description: nil, + visibility: .public, + owner: Entity(canonicalName: "~owner") + ) + ], + sources: [ + Project.SourceRepo( + id: "repo-1", + name: "hutch", + description: nil, + visibility: .public, + owner: Entity(canonicalName: "~owner"), + repoType: .git + ), + Project.SourceRepo( + id: "repo-2", + name: "hutch-web", + description: nil, + visibility: .public, + owner: Entity(canonicalName: "~owner"), + repoType: .git + ) + ], + trackers: [ + Project.Tracker( + id: "tracker-1", + name: "bugs", + description: nil, + visibility: .public, + owner: Entity(canonicalName: "~owner") + ) + ] + ) + + #expect(project.resourceSummary == "2 repos • 1 tracker • 1 list") + } + + @Test + func resourceSummaryFallsBackToWebsite() { + let project = Project( + id: "project-1", + name: "Docs", + description: nil, + website: "https://example.com", + visibility: .public, + tags: [], + mailingLists: [], + sources: [], + trackers: [] + ) + + #expect(project.resourceSummary == "Website linked") + } +} -- cgit v1.2.3