test(saas): Phase 1 integration tests — billing + scheduled_task + knowledge (68 tests)
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
- Fix TIMESTAMPTZ decode errors: add ::TEXT cast to all SELECT queries
where Row structs use String for TIMESTAMPTZ columns (~22 locations)
- Fix Axum 0.7 route params: {id} → :id in billing/knowledge/scheduled_task routes
- Fix JSONB bind: scheduled_task INSERT uses ::jsonb cast for input_payload
- Add billing_test.rs (14 tests): plans, subscription, usage, payments, invoices
- Add scheduled_task_test.rs (12 tests): CRUD, validation, isolation
- Add knowledge_test.rs (20 tests): categories, items, versions, search, analytics, permissions
- Fix auth test regression: 6 tests were failing due to TIMESTAMPTZ type mismatch
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,22 +11,22 @@ pub fn routes() -> axum::Router<crate::state::AppState> {
|
||||
// 分类管理
|
||||
.route("/api/v1/knowledge/categories", get(handlers::list_categories))
|
||||
.route("/api/v1/knowledge/categories", post(handlers::create_category))
|
||||
.route("/api/v1/knowledge/categories/{id}", put(handlers::update_category))
|
||||
.route("/api/v1/knowledge/categories/{id}", delete(handlers::delete_category))
|
||||
.route("/api/v1/knowledge/categories/{id}/items", get(handlers::list_category_items))
|
||||
.route("/api/v1/knowledge/categories/:id", put(handlers::update_category))
|
||||
.route("/api/v1/knowledge/categories/:id", delete(handlers::delete_category))
|
||||
.route("/api/v1/knowledge/categories/:id/items", get(handlers::list_category_items))
|
||||
.route("/api/v1/knowledge/categories/reorder", patch(handlers::reorder_categories))
|
||||
// 知识条目 CRUD
|
||||
.route("/api/v1/knowledge/items", get(handlers::list_items))
|
||||
.route("/api/v1/knowledge/items", post(handlers::create_item))
|
||||
.route("/api/v1/knowledge/items/batch", post(handlers::batch_create_items))
|
||||
.route("/api/v1/knowledge/items/import", post(handlers::import_items))
|
||||
.route("/api/v1/knowledge/items/{id}", get(handlers::get_item))
|
||||
.route("/api/v1/knowledge/items/{id}", put(handlers::update_item))
|
||||
.route("/api/v1/knowledge/items/{id}", delete(handlers::delete_item))
|
||||
.route("/api/v1/knowledge/items/:id", get(handlers::get_item))
|
||||
.route("/api/v1/knowledge/items/:id", put(handlers::update_item))
|
||||
.route("/api/v1/knowledge/items/:id", delete(handlers::delete_item))
|
||||
// 版本控制
|
||||
.route("/api/v1/knowledge/items/{id}/versions", get(handlers::list_versions))
|
||||
.route("/api/v1/knowledge/items/{id}/versions/{v}", get(handlers::get_version))
|
||||
.route("/api/v1/knowledge/items/{id}/rollback/{v}", post(handlers::rollback_version))
|
||||
.route("/api/v1/knowledge/items/:id/versions", get(handlers::list_versions))
|
||||
.route("/api/v1/knowledge/items/:id/versions/:v", get(handlers::get_version))
|
||||
.route("/api/v1/knowledge/items/:id/rollback/:v", post(handlers::rollback_version))
|
||||
// 检索
|
||||
.route("/api/v1/knowledge/search", post(handlers::search))
|
||||
.route("/api/v1/knowledge/recommend", post(handlers::recommend))
|
||||
|
||||
Reference in New Issue
Block a user