Cypress Tips April 2024
The results of "What do you think will happen to Cypress-The-Company in 2024?" polls 🗳️
The future
What do you think will happen to Cypress-The-Company in 2024? I asked this question in my previous newsletter, and on Twitter, and Linkedin. The results are in:
Ughh, not good. If I were running, investing, or involved with a company that a slight plurality of people think will go under this year, I would be concerned. Before anyone says “Gleb, you are a cheerleader of Cypress-The-Company demise”, stop. People reading my Cypress newsletter (this very newsletter) are the most likely to have a positive view of Cypress-The-Company’s future! Twitter, on the other hand, representing the widest variety of responders has the most negative view. A majority of Twitter users (55%) think the company will go under this year. Not good at all.
Why the gloom and doom?
The open-source test runner seems to be stuck, in my opinion. There are very few new features, and most releases are bug fixes for things that became broken in the previous releases. It shows the company is not doing enough testing. I know, hard to believe, right?
There are long-standing issues even for things you would be important to fix. I am not even talking about async / await
(see my cypress-await plugin), or assertions breaking chains of queries (oops). I am talking the cy.hover
which is GitHub issue #10 opened on March 31, 2015. Let me repeat it:
The cy.hover
issue will celebrate its 10th anniversary next year.
The funny thing about cy.hover
and other native browser commands (you can do them, use my cypress-cdp plugin), is that Cypress-The-Company did employ Dmitriy Kovalenko at not one, but two points in time. Dmitriy is the author of (🥁) cypress-real-events plugin that implements cy.hover
and every other native command like keyboard “Tab”. That plugin is probably the most popular Cypress plugin with 800k weekly downloads. If Cypress-The-Company wanted, they could simply merge the plugin and call it a day. And 99% of Cypress users would celebrate in the streets. Instead, we get to eat a stale cake. But now, people are frustrated, see this comment about the “abort on the first failure” feature (opened in 2017).
I could go on talking about long-term gotchas that Cypress users experience. I just don’t understand why the company knows about them and does not address them, even as the users migrate to other testing tools. I see the migration away from Cypress myself. My engagement on Discord channels, YouTube comments, blog posts, and even conference proposals and workshops is steadily going down. People are using Cypress by itself less. They learn both Cypress and Playwright using my course. But the Cypress engagement is going down. Which brings us to:
The Dashboard Cloud issue
So recently, Cypress-The-Company disallowed using other dashboards when recording test results. What I really would like to know is how they are checking for the disallowed 3rd-party plugins. My question is still without an answer. I suspect Cypress-The-Company is injecting the checking code into the Linux Cypress binary during the build process. I think this will backfire, since:
Building Linux Cypress binary is easy. Here is the YAML CircleCI workflow file, search for the “build-and-package-binary“ job. You install the dependencies, run the build command, and run the Electron package command. There is a new step for creating a V8 snapshot, but I think that is not a deal-breaker.
My prediction is that any company that wants to run Cypress can simply build its own Linux CI binary and use it. And once you switch away from the “official” Cypress binary to the custom-built one, there might be features that would prevent you from jumping back.
Speaking of Cypress Test Replays, it has been 6 months since the release of Test Replays. Let’s see how debugging even a simple command like cy.its
is going:
Oops, 6 months later, there are still no details for any of the commands. Not good.
Any future plans?
Cypress's visual element coverage prototype looks cool. It was cool even in 2018 when I blogged about it. Too bad, I am not working on it. Neither is Dmitriy Kovalenko, the author of the fastest image diffing tool odiff, I am sure he would be great at actually delivering finished features for all types of visual testing.
A11y testing - that is a good feature for the Dashboard, nice. Looking forward to it.
Before people say “Gleb, you just don’t like the Dashboard”: I am using the Dashboard every day, all day with my team at Mercari US. We pay for the enterprise plan a lot of money. Here is an email I sent to Cypress-The-Company in 2021 after I was no longer working at Cypress-The-Company but was working closely with the Dashboard as a user. I apologize for the small font; I wanted to capture the entire list without any editing.
How many of these issues were addressed in 3 years? Not many, I am afraid. But I don’t think any of these matter. Because there is a bigger factor outside of Cypress team’s control. And that is:
Will Microsoft release its own Playwright test results Dashboard?
Right now Cypress test runner can record its results to the Dashboard. It is a single-click operation, just add the —-record
flag. The Dashboard might be expensive, but it works. Everyone can see the results, debug the failures, etc. For Playwright you have traces, but no single easy-to-install reporting portal for the entire organization to use. What happens to Cypress-The-Company when Microsoft releases a hosted test portal integrated with GitHub security permissions and GitHub Actions for running / re-running / launching test runs? You can outcompete or squeeze out Sorry-Cypress and Currents, but I don’t think you can be running effectively against Microsoft’s product, engineering, and dev rels teams that are currently doing a 1st-class job with Playwright.
So time is ticking. I think a quick sale to a larger company would be in the best interests of Cypress-The-Company investors, shareholders, and even users, like myself.
New course: Visual Testing With Cypress
Ok, let’s cheer up a little. I am working on the new Cypress course showing how to do Visual testing using Cypress and open-source tools, like Dmitriy Kovalenko’s odiff. It is not finished yet but it has 50 lessons already. The course covers visual testing for E2E and component tests and workflows I use. Check the course out, I will be adding videos and free lessons to prepare for the official course release this May.
Cheers 👋