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

144
tests/fixtures/petstore.yaml vendored Normal file
View File

@@ -0,0 +1,144 @@
openapi: "3.0.3"
info:
title: Petstore
version: "1.0.0"
description: A minimal Petstore API for testing.
security:
- api_key: []
tags:
- name: pets
description: Pet operations
- name: store
description: Store operations
paths:
/pets:
get:
operationId: listPets
summary: List all pets
tags:
- pets
parameters:
- name: limit
in: query
required: false
description: Maximum number of items to return
- name: offset
in: query
required: false
description: Pagination offset
responses:
"200":
description: A list of pets
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Pet"
post:
operationId: createPet
summary: Create a pet
tags:
- pets
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/NewPet"
responses:
"201":
description: Pet created
content:
application/json:
schema:
$ref: "#/components/schemas/Pet"
/pets/{petId}:
parameters:
- name: petId
in: path
required: true
description: The ID of the pet
get:
operationId: showPetById
summary: Get a pet by ID
tags:
- pets
responses:
"200":
description: A single pet
content:
application/json:
schema:
$ref: "#/components/schemas/Pet"
"404":
description: Pet not found
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
delete:
operationId: deletePet
summary: Delete a pet
tags:
- pets
deprecated: true
responses:
"204":
description: Pet deleted
/store/inventory:
get:
operationId: getInventory
summary: Get store inventory
tags:
- store
security: []
responses:
"200":
description: Inventory counts
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
components:
schemas:
Pet:
type: object
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
NewPet:
type: object
required:
- name
properties:
name:
type: string
tag:
type: string
Error:
type: object
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
securitySchemes:
api_key:
type: apiKey
name: X-API-Key
in: header