[autoresearch] baseline: system prompt quality tests (5/5 passing)
This commit is contained in:
1 parent
05cc036f6d
commit
60b0101717
142 files changed
+18589
-9947
No files matched your search
@@ -0,0 +1,95 @@
|
||||
---
|
||||
description: Integrate phase - test adapters with real infrastructure
|
||||
---
|
||||
|
||||
# Phase 3: Integrate
|
||||
|
||||
## Purpose
|
||||
Test adapter implementations (database, external APIs) with real infrastructure using Testcontainers.
|
||||
|
||||
## Prerequisites
|
||||
- Phase 2 (Implement) completed
|
||||
- Unit tests passing
|
||||
|
||||
## Applicability (Default: REQUIRED)
|
||||
This phase is REQUIRED by default. You may ONLY skip it if ALL of the following are true:
|
||||
- [ ] No storage/repository files were modified or created
|
||||
- [ ] No external API client files were modified or created
|
||||
- [ ] No database queries or schemas were changed
|
||||
- [ ] No message queue, cache, or I/O adapter code was touched
|
||||
|
||||
If ANY adapter was modified, you MUST write integration tests.
|
||||
|
||||
## If This Phase Fails
|
||||
If integration tests fail:
|
||||
1. Check container logs for errors
|
||||
2. Verify schema matches expectations
|
||||
3. Fix adapter implementation
|
||||
4. Re-run tests before proceeding
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Setup Testcontainers
|
||||
|
||||
**Go Example:**
|
||||
```go
|
||||
func TestPostgresStorage_Integration(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip("skipping integration test")
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
// Start PostgreSQL container
|
||||
postgres, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
ContainerRequest: testcontainers.ContainerRequest{
|
||||
Image: "postgres:16-alpine",
|
||||
ExposedPorts: []string{"5432/tcp"},
|
||||
Env: map[string]string{
|
||||
"POSTGRES_USER": "test",
|
||||
"POSTGRES_PASSWORD": "test",
|
||||
"POSTGRES_DB": "test",
|
||||
},
|
||||
WaitingFor: wait.ForListeningPort("5432/tcp"),
|
||||
},
|
||||
Started: true,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
defer postgres.Terminate(ctx)
|
||||
|
||||
// Get connection string and run tests
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Write Integration Tests
|
||||
Test file naming: `*_integration_test.go` or `*.integration.spec.ts`
|
||||
|
||||
```go
|
||||
func TestPostgresStorage_CreateTask(t *testing.T) {
|
||||
// Uses real PostgreSQL from Testcontainers
|
||||
storage := NewPostgresStorage(pool)
|
||||
|
||||
task, err := storage.Create(ctx, userID, req)
|
||||
|
||||
require.NoError(t, err)
|
||||
assert.NotEqual(t, uuid.Nil, task.ID)
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Run Integration Tests
|
||||
```bash
|
||||
# Go - run all tests including integration
|
||||
go test -v ./...
|
||||
```
|
||||
|
||||
### 4. Manual Check (Optional)
|
||||
- If UI involved, launch a browser to verify the basic flow.
|
||||
- If API involved, use `curl` or `client` to hit the endpoint.
|
||||
|
||||
## Completion Criteria
|
||||
- [ ] Integration tests written for all adapters
|
||||
- [ ] Tests pass with real infrastructure (Testcontainers)
|
||||
- [ ] Database queries verified against real PostgreSQL
|
||||
|
||||
## Next Phase
|
||||
Proceed to **Phase 4: Verify** (`/4-verify`)
|
||||
Reference in new issue
Block a user