human-authored

I had an idea based on some thing I have done in the past and also Decoupled Storybook. It was to instal cypress decoupled and allow it to be used against many different project.

Use case is to point it at a live dev or local dev + staging server variant of an app. To close the development cycle of fixing bugs manually and additionally to create a cli based testing harness that can be used with an ai agent automonously / semi automonosly.

I have created a basic repo / git repo but want to double check to make sure there are no secrets or other nda verbiage leaking out.

I was able to in a client project by pointing it at the local dev vite server that is pointing to the staging BE, and use the staging BE test credentials to log into the app, and multi page navigate to where the error occurs.

Additional tooling exposes the exact error message verbiage on the page and dumps any JS console errors. Which makes it well suited for use with an AI agent.

This aligns with the idea of the FE Workshop as coined by Brad Frost in his comparison to the Workshop vs. the Storefront.

Cypress is just an automated / semiautomated tool that can be used to build tests to reduce the development cycle and expose the “workshop” to ai / ai assisted tooling. Taking out the human-in-the-middle translation and copy and pasting of error messages and manual testing.

future-work

Next steps would be to see if there is a way to auto navigate apps and click on all the things and see if we get unexpected errors. checking for errors in the JS console is likely a good way to test this.

future-work

another issue is not having automatic hot reloading of tests based on source changes. Some hacking approaches suggested by chat gpt in this thread.

Monkey Testing

monkey testing in cypress on a local app pointing at a staging (shared) db / be, seems to be a bit dangerous, so exploring a more manually with ai assistance approach by generating a map in one repo / ai agent, and then integrating it with the cypress testing harness.

This mapping approach didn’t seem to take on the first go, so now moving to a starting point scan all clickable :visible elements, and then recursively to a set level threshold like 3 levels.

This turned out to not be fruitful as well. Will continue exploring in future-work