rastrillo / fiesta Public

Test evidence: Assemble the versioned site: exact versions and a /1/ rewrite nothing can shadow open

On branch fiesta-1

Test evidence for Task 14 of the Fiesta packaging, copied from the implementer's report so it sits on the branch.

Commits

  • 9351390 Assemble the versioned site: exact versions and a /1/ rewrite nothing can shadow
  • ad593b2 A placeholder page in Paul's words (after copy review)
  • Fix round 1: 197e5b3 Stamp a release as fiesta's own, publish nothing hidden, and bound the tag check

RED: against the stubs (Build and Release returning an empty map; no release or site subcommand)

--- FAIL: TestOneServesTheNewestOneX
--- FAIL: TestNewestIsNumericNotLexical
--- FAIL: TestTwoDoesNotMoveOne
--- FAIL: TestAChangedReleaseIsRefused
--- FAIL: TestAPrereleaseDirectoryIsRefused
--- FAIL: TestPagesCannotShadowAMajor
--- FAIL: TestPagesCannotShadowAVersion
--- FAIL: TestWhatBuildWritesPassesTheCheck
FAIL	amadan.net/rastrillo/fiesta/internal/site
--- FAIL: TestReleaseRefusesToOverwrite      release_test.go:85: ... unknown command "release"
--- FAIL: TestACandidateMayBeRebuiltUntilItIsTagged   release_test.go:170: ... unknown command "release"
--- FAIL: TestSiteWritesWhatBuildReturns     release_test.go:284: unknown command "release"
FAIL	amadan.net/rastrillo/fiesta/cmd/fiesta

GREEN

ok internal/site 0.008s, ok cmd/fiesta 1.503s (the whole package, claim and gallery tests included).

Named mutations, each in a scratch copy

| Mutation | Reddens | |---|---| | A: one space between the rule's fields (/%d/* /%s/:splat 200) | TestOneServesTheNewestOneX, TestNewestIsNumericNotLexical, TestTwoDoesNotMoveOne | | B: tagExists ignores git ls-remote | TestACandidateMayBeRebuiltUntilItIsTagged at its origin-only step: "replaced .../releases/1.0.0, which origin's tag v1.0.0 names" | | C: the all-digit first-segment check disabled | TestPagesCannotShadowAMajor |

make ci on 9351390: exit 0 (size 22.5/21.8/21.9 KiB; harness 5.7s, check 171/172/169s, gallery 51/12s). Phase B (ad593b2): go test ./internal/site ./cmd/fiesta -count=1 both ok; make ci exit 0, 20 ok lines, no FAIL.

Fix round 1 (197e5b3)

-candidate ownership by the stamp route, red against ad593b2 (scratch archive plus the new test file):

$ go test ./cmd/fiesta -run TestACandidateIsNotAnyChecksummedDirectory -count=1
--- FAIL: TestACandidateIsNotAnyChecksummedDirectory (0.04s)
    release_foreign_test.go:50: fiesta release -candidate emptied .../repo/releases/1.0.0, a checksummed folder that is not fiesta's

Green on 197e5b3.

Hidden files, red against ad593b2 (new site_test.go copied in, only const StampName appended to the old site.go so it compiled):

--- FAIL: TestTheStampIsSkippedAndNeverPublished (0.00s)
--- FAIL: TestHiddenPagesAreRefused (0.00s)
        site_test.go:336: Build published the hidden page .DS_Store
        site_test.go:336: Build published the hidden page .fiesta
        site_test.go:336: Build published the hidden page docs/.index.html.swp
        site_test.go:336: Build published the hidden page .well-known/security.txt
        site_test.go:348: Build did not refuse the hidden directory .cache by name: <nil>
--- FAIL: TestALinkedSumsFileIsRefused (0.00s)

The public/ change has a scratch mutation instead (claiming -out/public rather than -out), which reddens TestSiteWritesWhatBuildReturns four ways (no stamp in -out; public/.fiesta hidden in the shipped tree; 60 files for a 59-file build; -out holds 1 entry).

Unreachable origin: TestAnUnreachableOriginRefusesACandidate passes on ad593b2 too, so its control is mutation D in a scratch copy, an ls-remote failure returned as "not tagged": "replaced .../releases/1.0.0 without being able to ask origin about its tag".

$ go test ./internal/site ./cmd/fiesta -count=1
ok  	amadan.net/rastrillo/fiesta/internal/site	0.011s
ok  	amadan.net/rastrillo/fiesta/cmd/fiesta	1.783s
--- PASS: TestTheStampIsSkippedAndNeverPublished / TestHiddenPagesAreRefused / TestALinkedSumsFileIsRefused
--- PASS: TestACandidateIsNotAnyChecksummedDirectory / TestACandidateMayBeRebuiltUntilItIsTagged / TestAnUnreachableOriginRefusesACandidate
--- PASS: TestSiteWritesWhatBuildReturns
$ make ci   exit=0, 20 ok lines, no FAIL