Skip to content

Commit 84dbaa6

Browse files
committed
🧪 T022: Expand contract fixture checklist
1 parent 175591a commit 84dbaa6

1 file changed

Lines changed: 31 additions & 8 deletions

File tree

‎src/services/authorize/__tests__/contract.test.ts‎

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,37 @@ import { describe, it } from 'vitest'
44
* T022 — Real IPC contract fixtures (Phase B)
55
*
66
* This test file is intentionally fixture-driven and snapshot-free.
7-
* It becomes actionable once DWEB/runtime provides concrete request/response samples:
8-
* - Address success (request + respondWith envelope)
9-
* - Signature success (request + respondWith envelope)
10-
* - Timeout/cancel (request + respondWith envelope)
7+
*
8+
* It becomes actionable once DWEB/runtime provides concrete request/response samples.
9+
* Keep these as TODOs until we have real samples (fixture-first; no guessing).
10+
*
11+
* Minimum samples:
12+
* - Address authorize success (request + wire response)
13+
* - Signature authorize success (request + wire response)
14+
* - Timeout/cancel (request + wire response + lifecycle semantics)
1115
*/
1216
describe('T022 DWEB runtime contract fixtures', () => {
13-
it.todo('validates address authorize sample (request + respondWith envelope)')
14-
it.todo('validates signature authorize sample (request + respondWith envelope)')
15-
it.todo('validates timeout/cancel sample (request + respondWith envelope)')
16-
})
17+
describe('Address authorize', () => {
18+
it.todo('request: URL pathname is /wallet/authorize/address')
19+
it.todo('request: query params include type(main|network|all); chainName required when type=network')
20+
it.todo('request: signMessage/getMain delivery channel confirmed (query vs body)')
21+
22+
it.todo('response: wire envelope shape confirmed (e.g. JSON { data: ... } + content-type/status)')
23+
it.todo('response: payload shape confirmed (mpay expects AddressInfo[] | null, not {addresses})')
24+
it.todo('response: AddressInfo item fields confirmed (name/address/chainName/publicKey/magic/signMessage?/main?)')
1725

26+
it.todo('lifecycle: removeEventId required/idempotent; timeout/cancel/disconnect semantics confirmed')
27+
})
28+
29+
describe('Signature authorize', () => {
30+
it.todo('request: URL pathname is /wallet/authorize/signature')
31+
it.todo('request: signaturedata delivery confirmed (query vs body) and parseable as JSON array')
32+
it.todo('request: single vs batch semantics confirmed (array length 1 vs N; replay/dup rules)')
33+
34+
it.todo('response: wire envelope shape confirmed (e.g. JSON { data: ... } + content-type/status)')
35+
it.todo('response: payload shape confirmed (mpay expects ResultArray | null, not {signature})')
36+
it.todo('response: per-item error compatibility confirmed (null or { error: true, message })')
37+
38+
it.todo('compat: assetTypeBalance fast-path confirmed in/out of scope for KeyApp Phase B')
39+
})
40+
})

0 commit comments

Comments
 (0)