summaryrefslogtreecommitdiff
path: root/HutchTests/RepositoryListViewModelTests.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-03-18 22:56:34 -0500
committerChristian Cleberg <[email protected]>2026-03-18 22:56:34 -0500
commitffc0ef0988b5e7d01951c23af85a1cf026b3da9f (patch)
tree868cef24e91ddaa5e7d5e39362d97ec6a94107c9 /HutchTests/RepositoryListViewModelTests.swift
parented48e72520c51e4635cd3840dbc569bdd74c950f (diff)
downloadhutch-ffc0ef0988b5e7d01951c23af85a1cf026b3da9f.tar.gz
hutch-ffc0ef0988b5e7d01951c23af85a1cf026b3da9f.tar.bz2
hutch-ffc0ef0988b5e7d01951c23af85a1cf026b3da9f.zip
add Home dashboard and repository build status indicators
Diffstat (limited to 'HutchTests/RepositoryListViewModelTests.swift')
-rw-r--r--HutchTests/RepositoryListViewModelTests.swift26
1 files changed, 26 insertions, 0 deletions
diff --git a/HutchTests/RepositoryListViewModelTests.swift b/HutchTests/RepositoryListViewModelTests.swift
index d6e76bf..7bd9126 100644
--- a/HutchTests/RepositoryListViewModelTests.swift
+++ b/HutchTests/RepositoryListViewModelTests.swift
@@ -28,6 +28,32 @@ struct RepositoryListViewModelTests {
#expect(descriptionMatches.map(\.id) == [2])
}
+ @Test
+ func buildStatusKeysParsesSourceHutRepositoryURLsFromManifest() {
+ let manifest = """
+ image: alpine/latest
+ sources:
+ - https://git.sr.ht/~owner/hutch
+ - ssh://[email protected]/~owner/wiki
+ tasks:
+ - echo "build"
+ """
+
+ let keys = RepositoryListViewModel.buildStatusKeys(in: manifest)
+
+ #expect(keys.contains("git|~owner|hutch"))
+ #expect(keys.contains("hg|~owner|wiki"))
+ }
+
+ @Test
+ func repositoryBuildStatusMapsJobStatesToRowStates() {
+ #expect(RepositoryListViewModel.repositoryBuildStatus(for: .success) == .success)
+ #expect(RepositoryListViewModel.repositoryBuildStatus(for: .running) == .running)
+ #expect(RepositoryListViewModel.repositoryBuildStatus(for: .queued) == .running)
+ #expect(RepositoryListViewModel.repositoryBuildStatus(for: .failed) == .failed)
+ #expect(RepositoryListViewModel.repositoryBuildStatus(for: .timeout) == .failed)
+ }
+
@MainActor
private func makeRepository(
id: Int,