Since many folks have lamented the #activitypub test suite being down, I've decided to spin up a #gofed based test suite with the goal of being mostly-automated:
https://github.com/go-fed/testsuite
Each test starts up a short-lived & completely hermetic environment. Its own database, its own S2S+C2S (federating & social) set of actors, so multiple folks can use the automated tests without interfering with one another.
Still a lot more actual tests that need to be written. Contributions welcome!
Ugly screenshots lol
Alright, I created an issue for interested parties to follow for the unofficial #activitypub test suite implementation:
https://github.com/go-fed/testsuite/issues/1
It lists the mapping of the official test suite's tests over to the ones I'm hammering out using #gofed.
Unfortunately there's not a good way to track this, I don't think edits to the OP trigger notifications so I'll have to find a balance between editing OP and pinging the thread. Boo github (I don't have the cycles to migrate & deal with #golang consequences).
Down to just 4 more "MUST" S2S #ActivityPub test cases to port over.
There's still 24 S2S tests to port over in general, though.
I am halfway towards completing the "Common" and "S2S" tests in the official test suite, as automated tests for the unofficial suite. There's now 44 such unofficial tests, which map to 23 of the 46 original ones. Unfortunately, one test still relies on the honor of the test-user.
It's not as "automated" as I like, so I think I need a new word. The server definitely sends/receives and diagnoses the software under test, but most tests require additional input or actions to be done by the test-user.
Down to just 1 more MUST test to port over for go-fed/testsuite. Easier to say than do. Somehow porting over the official test suite's 25 questions has turned into 52 machine-assisted test cases.
Also, what's funny is, once I get this thing stable, I'll need help and/or kind volunteers using it so that the testsuite itself can be examined for bugs. LOL!
Alright, https://test.activitypub.dev/ is up for y'all and not looking like Times New Roman font on a white background. If you poke around responsibly, please file bugs.
There's still a lot of work that needs to happen. I accept PRs!
@cj is there a demo of it somewhere? ;;)
@mariusor Not at the moment, but that'll change soon. You can clone and run some of the tests locally since they just require HTTP client fetches.
Since I'm about to tackle the federation tests though, yeah I'll need to toss it up someplace.
@cj that activitypub.dev domain sounded pretty nice. :)
@mariusor Haha yep indeed, you're pretty good at predicting the future aren't you? :D
@cj probably not, or I wouldn't develop ActivityPub services. :P
@cj machine-assisted testing?
@whatcraic I like this. :)
@icedquinn @lanodan LOL! It's also over a decade of every year repeating "I don't need to learn a javascript framework yet, I'll wait 'til things calm down next year when I really need it" and so far this recursion has not stopped.
@icedquinn @lanodan One part of me wants to be silly and say "The internet is a sphere, there are no corners!" or "yeah but now you can write assembly for your backends *and* frontends" but also I had never heard of seaside before so in all seriousness thanks for mentioning it -- learning about this is great!
@icedquinn @lanodan Aha, I see your ultimate goal is to fill up my browser's bookmarks! I'm on to you and your trail of success!
It is up to 22 tests, been starting on the S2S stuff. While some instructions await you to input something to fetch, many of these S2S tests now give you instructions of sending an actor an activity, so it can continue the testing process automatically upon receipt.
This, at a practical level, means I had to add webfinger as an optional technology to support during a test run. Which means instructions will list both the IRI and the webfinger for the generated test actor(s) for that test run.