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

21 lines
923 B
HTTP

### POST /alexa/certificate (currently ignored: 501 Not Implemented)
###
### Speakers request an Alexa IoT provisioning certificate. AfterTouch has no AWS
### IoT integration, so HandleAlexaCertificate deliberately returns 501 with an
### explanatory JSON body. Pinning the current 501 documents this as intentionally
### unimplemented. (data is a form field carrying {"device":"..."}.)
POST {{host}}/alexa/certificate
User-Agent: Bose_Lisa/27.0.6
Accept: */*
Content-Type: application/x-www-form-urlencoded
data=%7B%22device%22%3A%22{{deviceId}}%22%7D
> {%
client.test("Alexa certificate provisioning is the ignored 501 stub", function() {
client.assert(response.status === 501, "Response status is not 501, got " + response.status);
client.assert(response.contentType.mimeType === "application/json",
"Expected application/json, got '" + response.contentType.mimeType + "'");
});
%}