Give the popover git slot the contextual Pro posture
12's settled ruling supersedes the m4 placeholder: on an ordinary board the git section is simply absent — the popover is complete in itself — and on a board carrying an inert .git it shows only the calm one-line note, 'This board has a git history. Lanework Pro works with it.' The detection is a pure one-line seam checking the board root at popover open, deliberately non-live: .git is filtered from the watch by design, so there is no reload to hang a live fact off, and a quiet signpost self-corrects on next open. Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import Foundation
|
||||
import Testing
|
||||
@testable import Kanban
|
||||
|
||||
/// **The board popover's git-note detection** (12-editions.md § Base and `.git`, ruled 2026-07-27):
|
||||
/// base's whole git story is one line, shown only on a board that carries an inert `.git`. The seam
|
||||
/// that decides *whether* to show it — `BoardGitNote.hasGitDirectory(at:)` — is a pure, read-only
|
||||
/// `FileManager` check, pinned here against real bytes on disk. Everything else about the note (its
|
||||
/// wording, its placement in `BoardInfoView`) is SwiftUI rendering and deliberately untested.
|
||||
struct BoardInfoPopoverTests {
|
||||
|
||||
@Test("A board with a .git at its root reports true")
|
||||
func trueForABoardWithGit() throws {
|
||||
let fixture = try WriterFixture()
|
||||
defer { fixture.tearDown() }
|
||||
|
||||
try fixture.item("", Item.board)
|
||||
try fixture.file(".git/HEAD", Data("ref: refs/heads/main\n".utf8))
|
||||
|
||||
#expect(BoardGitNote.hasGitDirectory(at: fixture.root))
|
||||
}
|
||||
|
||||
@Test("An ordinary board with no .git reports false")
|
||||
func falseForAnOrdinaryBoard() throws {
|
||||
let fixture = try WriterFixture()
|
||||
defer { fixture.tearDown() }
|
||||
|
||||
try fixture.item("", Item.board)
|
||||
|
||||
#expect(!BoardGitNote.hasGitDirectory(at: fixture.root))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user