It has not been easy, but we did it — Telescope 2.0 is up and running! In this article I want to discuss the struggles that I went through in the last few weeks prior to the release and, of course, congratulate everyone on the team on successful delivery of the new major version.
Snapshots serve as an effective way of determining any changes to the rendered version of components in the system. There is a number of testing libraries available out there which provide snapshot testing functionality. In our case, I have tried to set everything up with React Test Renderer — an official testing library shipped by the React team. And it seemed to be working just fine, until it didn’t…It has come to my surprise that rendering snapshot tests which would take the styling of the react elements into account would be that complicated, and all thanks to Material UI. I have tried numerous ways to find a workaround it and even ended up switching the library, yet it didn’t help (yet). In the end, I have been able to implement a couple of snapshot tests with React Testing Library, which seemed to offer a more extensive functionality along with an active community of contributors. There is obviously a big room for improvements, but I think it is a good start. In the end of the day, we have already caught one change that Yuan was working in — the logo optimization, which is what the purpose of having these snapshot tests is. The more we build on it and the better coverage we achieve, the easier it would become for us to catch any unexpected changes in the UI.
PWA, Microservices, Accessibility and More
It has been very pleasing to finally be able to download Telescope on my iPhone, with proper logo and mobile-friendly UI. Even though Apple is tight on providing more extensive support for PWAs, it is definitely a very useful technology and I hope Telescope will move into this direction more in the future. Credits to Tony for numerous testing sessions and improvements on the PWA support for Telescope and to Pedro for following best UX practices. Even though I have not been heavily involved into the microservices work, it has been impressive to see the entire transition happening in a matter of couple of months. With the transition to the new UI we have also managed to make a good progress on the accessibility standards of the application.
Great job, team!