December 29, 2025

DetoxDemo, my first vibe-coded React Native app, is now complete

For the past ten years, I've been blogging about writing test automation on this blog, writing toy projects to help practice what I am doing on the job, writing articles and courses about test automation, and storing coding projects at https://github.com/tjmaher.

Starting in January, my next project will be blogging and walking readers through my experience putting together a mobile automation framework at SELF ID, testing their SELF ID React Native mobile app where users can create, store, and share their digital identity. I'm doing all of this in preparation for my upcoming talk to Joe Colantonio's Automation Guild this coming Spring. 

At SELF, I've been using Detox, a grey-box automation framework created by Wix to test Wix's in-house mobile application that the company generously open-sourced. 

Since I am planning to start blogging about putting together a mobile test automation framework in Detox I needed an app to test against... so I vibe-coded an app! Presenting: DetoxDemo!
My first vibe-coded React Native application is now complete! 

I based the app on Dave Haefner's The - Internet / Login, a site I used when I was teaching myself automation development writing Selenium + Java tests back in July 2015 in my first project "Testing The-Internet".

DetoxDemo, the app under test, was constructed by GitHub CoPilot via prompts I drafted. The automation framework, though, was lovingly crafted by hand, with locators artisanally wrapped in page objects.

If you find this project helpful, feel free to copy it for your own education.

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles

December 2, 2025

Beware the Hallucinations When Coding with AI

Make sure to take what AI gives you with a grain of salt. It can help point you in the right direction as a first pass, but be wary. It might not really understand your question or the material.

When writing a UI automated test to confirm that a user could not continue using our React Native application without first accepting the Terms & Conditions, in order to see if a button was initially enabled or not, GitHub CoPilot suggested to use a Detox method ".toBeDisabled()". The problem? After delving into the Detox documentation and source code I found out this method doesn't actually exist.

When I told the AI it did not exist, it apologized profusely, then suggested I erase that bit of code it wrote, along with the code of other unrelated tests I was working on. When I finally found a solution, and ran it by GitHub CoPilot, after reviewing it, the AI wanted to replace the code with the non-existent method again.

... Eh, it's slightly better than frantically searching through Stack Overflow's archive and interpreting the solutions you find there.

Happy Testing!

-T.J. Maher
Software Engineer in Test

BlueSky | YouTubeLinkedIn | Articles