test(11.1-06): plant one fixture per docs checker rule and run them in the gate

- testdata/clean passes every check; 63 violation cases each overlay one
  fault and a want.txt naming the single problem it must produce
- TestPlantedViolations also plants the forbidden name (split literals)
  and symlink escapes at run time; TestBuildOutputGuard covers --out
- check-phase11.1.sh --self-test runs the corpus through a go test -json
  detector that refuses FAIL, SKIP, zero tests and no tests to run
- the self-test scratch copy now carries examples/ and README.md, so its
  baseline sees the example command literals the real tree sees
This commit is contained in:
Jakub Zych
2026-09-30 23:52:19 +02:00
parent 4c68d31862
commit 1d38e73f03
154 changed files with 1998 additions and 1 deletions

View File

@@ -0,0 +1,3 @@
# Docs fixture
The clean fixture for the docs checkers. `demo.Hello` is checked here too.

View File

@@ -0,0 +1,6 @@
app:
# docs:start db
db:
host: localhost
port: 5432
# docs:end db

View File

@@ -0,0 +1,15 @@
---
title: FAQ
description: "Questions about the demo."
section: extras
order: 20
---
# FAQ
## Does it migrate
Yes, run `./bin/demo migrate`, then `summer docs:sync` after a source change.
```text
summer not:checked in a text fence
```

View File

@@ -0,0 +1,18 @@
---
title: Usage
description: "Build a greeter and call it."
section: extras
order: 10
---
# Usage
## Call it
A `demo.Greeter` greets by name:
```go src=modules/demo/demo_test.go#greet
g := Greeter{Name: "blog"}
got := g.Greet()
```
See [Greet someone](../guide/start.md#greet-someone).

View File

@@ -0,0 +1,20 @@
---
title: Config
description: "Configure the demo database."
section: guide
order: 20
---
# Config
The database block of `config/app.yaml`:
```yaml src=config/app.yaml#db
db:
host: localhost
port: 5432
```
## Settings
> [!WARNING]
> Keep the port in step with the database server.

View File

@@ -0,0 +1,32 @@
---
title: Start
description: "Install the demo and greet someone."
section: guide
order: 10
---
# Start
The demo module greets people.
## Install
Build the docs with `summer docs:build`, or run the application:
```sh
$ summer docs:build --out site
./bin/demo serve --addr 127.0.0.1:8080
```
## Greet someone
Call `demo.Hello`:
```go src=modules/demo/example_test.go#ExampleHello
fmt.Println(demo.Hello("blog"))
// Output: Hello, blog
```
> [!TIP]
> The [demo reference](../../modules/demo/README.md#usage) lists the whole API.
Continue with [configuration](config.md) or jump back to [install](#install).

View File

@@ -0,0 +1,12 @@
---
title: Demo docs
description: "The landing page of the clean fixture."
section: index
order: 0
---
# Demo docs
Start with the [start guide](guide/start.md), then read [usage](extras/usage.md#call-it).
> [!NOTE]
> Every page of this fixture passes every check.

View File

@@ -0,0 +1,14 @@
title: Demo
description: "Demo is the clean docs checker fixture."
base_url: ""
edit_url: "https://forge.example/edit/{path}"
source_url: "https://forge.example/src/{path}"
llms_notes:
- "Every page of this fixture passes every check."
sections:
- name: guide
title: Guide
- name: extras
title: Extras
- name: api
title: API reference

View File

@@ -0,0 +1,3 @@
module example.com/docfixture
go 1.27.0

View File

@@ -0,0 +1,19 @@
# demo
Demo greets people by name.
```go
import "example.com/docfixture/modules/demo"
```
## Usage
Call `demo.Hello` or build a `demo.Greeter` and call `demo.Greeter.Greet`.
See the [start guide](../../docs/guide/start.md#install).
## Testing
```sh
go test ./modules/demo
```

View File

@@ -0,0 +1,17 @@
// Package demo is the docs checker fixture module.
package demo
// Hello returns a greeting for name.
func Hello(name string) string {
return "Hello, " + name
}
// Greeter greets by name.
type Greeter struct {
Name string
}
// Greet returns the greeting for the greeter's name.
func (g Greeter) Greet() string {
return Hello(g.Name)
}

View File

@@ -0,0 +1,13 @@
package demo
import "testing"
func TestGreet(t *testing.T) {
// docs:start greet
g := Greeter{Name: "blog"}
got := g.Greet()
// docs:end greet
if got != "Hello, blog" {
t.Fatalf("Greet() = %q", got)
}
}

View File

@@ -0,0 +1,12 @@
package demo_test
import (
"fmt"
"example.com/docfixture/modules/demo"
)
func ExampleHello() {
fmt.Println(demo.Hello("blog"))
// Output: Hello, blog
}