diff --git a/AGENTS.md b/AGENTS.md index 9207684eb..7d1cfe0f9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,4 @@ -* If you're a security researcher, read @SECURITY.md carefully. + * Brevity is good. * Assume that the maintainers and readers of the code you write are Go experts: * Don't use comments to explain the obvious. @@ -8,9 +8,11 @@ * Never export symbols that's not needed outside of the package. * Avoid global state at (almost) all cost. * This is a project with a long history; assume that a similiar problem has been solved before, look hard for helper functions before creating new ones. +* In tests, almost always write end-to-end integration tests using `hugolib.Test` or one of its siblings. Write unit tests only for isolated utilities. * In tests, use `qt` matchers (e.g. `b.Assert(err, qt.ErrorMatches, ...)`) instead of raw `if`/`t.Fatal` checks. * In tests, always use the latest Hugo specification, e.g. for layouts, it's `layouts/page.html` and not `layouts/_default/single.html`, `layouts/list.html` and not `layouts/_default/list.html` * Never name tests `TestIssue1234`; if this e.g. is about fixing an issue, use the issue ID as a suffix, as in `TestUpperCaseTitlesCreatesHavocIssue1234`. And note: No underscores in func names. +* If you're a security researcher, read @SECURITY.md carefully. * Brevity is good. This applies to code, comments and commit messages. Don't write a novel. * Use `./check.sh ./somepackage/...` when iterating. * Use `./check.sh` when you're done.