Wave 5: Schemas command, sync command, network policy, test fixtures (bd-x15, bd-3f4, bd-1cv, bd-lx6)

- Implement schemas command with list/show modes, regex filtering, ref expansion
- Implement sync command with conditional fetch, content hash diffing, dry-run
- Add NetworkPolicy enum (Auto/Offline/OnlineOnly) with env var + CLI flag resolution
- Integrate network policy into AsyncHttpClient and fetch command
- Create test fixtures (petstore.json/yaml, minimal.json) and integration test helpers
- Fix clippy lints: derivable_impls, len_zero, borrow-after-move, deprecated API
- 192 tests passing (179 unit + 13 integration), all quality gates green
This commit is contained in:
teernisse
2026-02-12 14:36:22 -05:00
parent faa6281790
commit 346fef9135
11 changed files with 2051 additions and 31 deletions

92
tests/fixtures/minimal.json vendored Normal file
View File

@@ -0,0 +1,92 @@
{
"openapi": "3.0.3",
"info": {
"title": "Minimal API",
"version": "0.1.0"
},
"paths": {
"/items": {
"get": {
"operationId": "listItems",
"summary": "List items",
"responses": {
"200": {
"description": "A list of items",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/ItemList" }
}
}
}
}
},
"post": {
"operationId": "createItem",
"summary": "Create item",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/Item" }
}
}
},
"responses": {
"201": {
"description": "Item created",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/Item" }
}
}
}
}
}
},
"/items/{id}": {
"get": {
"operationId": "getItem",
"summary": "Get item by ID",
"parameters": [
{
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A single item",
"content": {
"application/json": {
"schema": { "$ref": "#/components/schemas/Item" }
}
}
}
}
}
}
},
"components": {
"schemas": {
"Item": {
"type": "object",
"required": ["id", "name"],
"properties": {
"id": { "type": "integer", "format": "int64" },
"name": { "type": "string" }
}
},
"ItemList": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": { "$ref": "#/components/schemas/Item" }
},
"total": { "type": "integer" }
}
}
}
}
}