feat: add benchmark seed provisioning (task 0025)
Add the deterministic, idempotent seed that brings a freshly provisioned throwaway repository to a known ground truth before a trial runs, scripted over the live Gitea API. - bench/seed-plan.ts: the pure ground truth (fixed labels, an issue spread across the discriminating dimensions, and labelled/reviewed/real-branch pull requests) plus groundTruth(user), realizing it into a RepoState. - bench/seed.ts: idempotent seeding reconciled by natural key, reusing gitea-axi's own tea-login credential discovery (no new secret handling). - A live smoke tier (test:bench:smoke) validating the seed end-to-end and skipping cleanly when no host is configured, kept out of the deterministic bench tier. Export selectLogin from src/context.ts so the bench reuses the exact credential-selection path.
This commit was merged in pull request #26.
This commit is contained in:
17
vitest.bench-smoke.config.ts
Normal file
17
vitest.bench-smoke.config.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { defineConfig } from "vitest/config";
|
||||
|
||||
export default defineConfig({
|
||||
test: {
|
||||
// The seed smoke tier: a single live end-to-end validation that provisioning
|
||||
// and seeding a throwaway repository really brings it to the ground truth,
|
||||
// and that re-seeding is idempotent. Like the e2e tier, it targets a live
|
||||
// host — here the maintainer's own, discovered through gitea-axi's tea-login
|
||||
// credential path — and skips cleanly when none is configured
|
||||
// (GITEA_AXI_BENCH_LOGIN unset), which must count as a pass, not "no tests
|
||||
// found". It is deliberately kept out of the deterministic bench tier.
|
||||
include: ["bench/**/*.smoke.test.ts"],
|
||||
testTimeout: 60_000,
|
||||
hookTimeout: 180_000,
|
||||
passWithNoTests: true,
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user