4648
This commit is contained in:
52
memory/MEMORY.md
Normal file
52
memory/MEMORY.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user