Since many folks have lamented the test suite being down, I've decided to spin up a based test suite with the goal of being mostly-automated:

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

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.

Show thread

Alright, I created an issue for interested parties to follow for the unofficial test suite implementation:

github.com/go-fed/testsuite/is

It lists the mapping of the official test suite's tests over to the ones I'm hammering out using .

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 consequences).

Show thread

Down to just 4 more "MUST" S2S test cases to port over.

There's still 24 S2S tests to port over in general, though.

Show thread

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.

Show thread

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!

Show thread
Follow

Whew! All the Common and S2S MUST cases are covered in the testsuite.

Β· Web Β· 1 Β· 0 Β· 1

Alright, 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!

Show thread
@cj @lanodan > and no javascript

that awkward moment when all the old smalltalk web frameworks became relevant again :blobcatwhatsthis:

@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.

@cj @icedquinn It took me almost a decade to need to write JavaScript.
I did it in vanilla javascript and it's just to sort tables.
@cj @lanodan i sperged about how awesome the way seaside works to people in the past, and they just went "but .. why not just javascript."

:blobcatsadlife:
@cj @lanodan basically they had components w/ server rendering before react :blobcatsurprised: and then use wizardry to let you tie these components to one another as though you were calling modal dialogs in a regular desktop applicaiton, and the framework buries all that in a page-by-page presentation to the user. they won an award or two, nobody cared, now it just kind of sits there forgotten about in a weird corner of the internet.

@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!

@cj could you please put a normal font on the site? this pixelated one is completely unreadable.

@cj sorry i'm the wrong person to ask about fonts.

also it seems like the test randomly fails and doesnt do anything, like here (or might be because i didnt check the webfinger box).

test.activitypub.dev/tests/sta

@cj looks like fetching an actor from lemmy fails because we only look for the header `Accept: application/activity+json`, if its anything different (like yours with the profile link), it will use the html route instead.

@felix Yep I just confirmed that. Unfortunately the:

`application/ld+json; profile="w3.org/ns/activitystreams"` is a MUST

and

`application/activity+json` is a SHOULD

in the spec.

Also about to restart the server to update the font, which will wipe test state.

@cj ah, our priority is federation between lemmy instances, so actual compliance with the spec is still going to take a while. if the test is specifically about spec compliance, then its not for us at this point.

@felix Gotcha. Yeah right now the testsuite only knows about how to test [a subset of] the ActivityPub spec. It doesn't have Mastodon, Pleroma, lemmy, nor any other kind of app-specific tests for compatibility.

But it could one day.

Sign in to participate in the conversation
Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!