2.3 KiB
2.3 KiB
raven-test-integration memory
Project purpose
Integration test project for AyaNova v8 API. Target: net8.0. Run with: dotnet test raven-integration.csproj
Key constants / config
- API base: http://localhost:7575/api/v8/ (util.cs line 31)
- Seeded logins: superuser (password: l3tm3in), BizAdmin, SubContractorRestricted
- Seeded customer id=1 is always safe to reference in payloads
- Time zone adjustment for date filters: -7 (util.cs TIME_ZONE_ADJUSTMENT)
Known good enum values used in tests
- ContractOverrideType: PriceDiscount=1, CostMarkup=2
- PMTimeUnit: Minutes=2, Hours=3, Days=4, Months=6, Years=7
- AyaDaysOfWeek (flags): Mon=1,Tue=2,Wed=4,Thu=8,Fri=16,Sat=32,Sun=64 — 96 = Saturday|Sunday (used in PM tests)
DataList key names
Class names in AyaNova.DataList namespace ARE the list keys. Examples: WorkOrderDataList, CustomerDataList, QuoteDataList, PMDataList, ContractDataList
API response conventions
- POST: 201, {data: full object}
- GET: 200, {data: full object}
- DELETE: 204, no body
- Customer/QuoteItem/PMItem PUT: 200, {data: {Concurrency: N}} (just concurrency)
- Quote/PM/Contract/WorkOrder header PUT: 200, {data: full object}
- Concurrency conflict: 409
- Referential integrity violation: 400, error.code = 2200
- Not found: 404, error.code = 2010
Files written (Feb 2026 session)
- Customer/CustomerCrud.cs — CRUD + concurrency + alert + referential integrity (2 tests)
- Quote/QuoteCrud.cs — header CRUD + QuoteItem + QuoteItemLabor + concurrency + id-from-number
- Contract/ContractCrud.cs — CRUD + concurrency (contract PUT returns full object)
- PM/PMCrud.cs — header CRUD + PMItem + concurrency + id-from-number
- DataList/DataListOperations.cs — SavedFilterCRUD (live) + filter/sort stubs (skipped)
DataList saved filter route
POST/GET/PUT/DELETE: /data-list-filter (NOT data-list-view — that was old) List endpoint: GET /data-list-filter/list?ListKey=WorkOrderDataList userId=0 in payload is fine; server assigns from auth token
Todo.md coverage status
Tier 1: DataList saved filter CRUD done; filter/sort stubs need browser payload capture Tier 1: Quote CRUD done Tier 1: Customer CRUD done Tier 2: Contract CRUD done Tier 2: PM CRUD done Tier 2: Auth roles, Schedule, Part — not yet started Tier 3: All not yet started