This is something I've been working in order to be able to demo / test our project functionalities and verify how it interact with a destination server.
Our first layer of testing is our unit tests that allow to test our implementations. Second is our built-in browser demo and commands.
This would be our third and its meant to check real source-to-destination interaction. This also could be useful in actually understanding our demoing / testing and what went right and wrong.
Worth mention that this does not need to be a full destination server. It just needs to behave like one.
It does not need to be a full destination server. It just needs to behave like one.
- a start page that builds the authorize URL
- a callback page that captures raw query params
- state generation and validation
- a token exchange action
- a fetch page for actor and LOLA collections
- a log or raw JSON inspector so we can see what happened
The important config is:
SOURCE_BASE_URL
CLIENT_ID
CLIENT_SECRET
REDIRECT_URI
For authorize/callback features:
- start auth in the browser
- inspect the exact callback URL
- confirm which query params are present
- this is where you check
code, state, and later activitypub_actor
For token features:
- exchange the code from the callback
- store and display the full token JSON
- retry with wrong redirect URI or bad credentials to test failure modes
For actor-binding features:
- use the token on the authorized actor
- use the same token on a different actor
- confirm the second call fails as expected
For collection and pagination features:
- fetch the authenticated actor first
- resolve migration URLs from the actor payload
- walk paginated collections and log page boundaries
For rate limiting features:
- record
429 responses
- record
Retry-After
- pause and resume fetches the way a real destination would
This is something I've been working in order to be able to demo / test our project functionalities and verify how it interact with a destination server.
Our first layer of testing is our unit tests that allow to test our implementations. Second is our built-in browser demo and commands.
This would be our third and its meant to check real source-to-destination interaction. This also could be useful in actually understanding our demoing / testing and what went right and wrong.
Worth mention that this does not need to be a full destination server. It just needs to behave like one.
It does not need to be a full destination server. It just needs to behave like one.
The important config is:
SOURCE_BASE_URLCLIENT_IDCLIENT_SECRETREDIRECT_URIFor authorize/callback features:
code,state, and lateractivitypub_actorFor token features:
For actor-binding features:
For collection and pagination features:
For rate limiting features:
429responsesRetry-After