Testing the Fediverse and FediTest
/2024-03/session/5-e/
Convener: Johannes Ernst (@j12t@social.coop)
Participants who chose to record their names here:
- Andre Kudra (@kudrix@mastodon.social)
- Ryan Barrett (@snarfed.org@snarfed.org)
- Jakub Bliźniuk (@opliko@infosec.town)
Links
All early work in progress. Can be shown, discussed, but you probably don’t want to try and run it yourself yet.
- https://feditest.org/ : project website
- https://github.com/fediverse-devnet/feditest : test framework
- https://github.com/fediverse-devnet/feditest-tests-fediverse : actual tests (very incomplete)
Notes
Johannes leads project, support from a group of others. Some funding raised.
Johannes slides:
Johannes demo:
-
Showed example test run:
- automatically setting up WordPress + ActivityPub plugin
- running several simple Webfinger tests against it
- tearing WordPress + ActivityPub plugin back down
- automatically setting up Mastodon
- running the same Webfinger tests against it
- tearing Mastodon back down
-
Another example test run:
- set up Mastodon, and WordPress + ActivityPub
- test attempt to test whether “follow” works. Current implementation lacks automation, so it falls back to asking the user to make a certain Mastodon user follow a certain WordPress user, and hit return
Discussion on tests, framework, application integration, baseline protocol implementation, manual fallback.
- Q: How much integration work is needed so I can start testing my application?
- A: The intent is: none. Without integration, you the tester need to certain things (“now make an instance of your app available and enter the URL where it is”, “now make @a@b follow @c@d”) and observe certain things (“Did the private message arrive? Y/N”), but the tests will run fine. If that is bothersame, you can gradually automate some of these manual activities by using your application’s API, for example.
- Q: How would I integrate my application?
- A: Basically, you subclass (a suitable subclass of)
Node
andNodeManager
in thefeditest
framework.