Files
Tobias GesellchenandClaude Opus 4.8 d5b298fc43 test(http-client): pin ignored edges + app/provisioning surface (refs #451)
Two deliberately-unimplemented routes, pinned as "currently ignored" so a future
change to them is conscious:
- GET  /v1/blacklist/{deviceId}  -> 405 (inline stub)
- POST /alexa/certificate        -> 501 (no AWS IoT integration)

App / provisioning surface (app-called, not the speaker data-plane). Shapes come
from the _/mitm capture where one exists, otherwise from the handler (canned /
stub responses):
- GET  /streaming/account/{a}/emailaddress  -> 200 (<emailAddress>, _/mitm)
- GET  /customer/account/{a}                -> 200 (<customer> profile, canned)
- POST /customer/account/{a}                -> 200 (profile update, stub)
- POST /customer/account/{a}/password       -> 200 (password change, stub)

COVERAGE.md gains an app/provisioning section and records the source (mitm vs
handler) for each. make test-http-client: 73 requests, 0 failed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 19:11:24 +02:00

20 lines
931 B
HTTP

### GET /customer/account/{accountId} (app-called account profile)
###
### App / provisioning surface (not the speaker data-plane). No live recording in
### _/mitm for this exact route; the response is a canned profile from
### HandleMargeAccountProfile, returned as a <customer> XML document. App user-agent.
GET {{host}}/customer/account/{{accountId}}
User-Agent: Mozilla/5.0 (Linux; Android 13) SOUNDTOUCH_MOBILE_APP
Accept: application/xml
Authorization: Bearer {{token}}
> {%
client.test("Account profile returned as XML 200", function() {
client.assert(response.status === 200, "Response status is not 200, got " + response.status);
client.assert(response.body.getElementsByTagName("customer").length > 0,
"Response should contain <customer>");
client.assert(response.body.getElementsByTagName("accountID").length > 0,
"<customer> should contain <accountID>");
});
%}