Testing Library Updates: new release, github org, open collective, and twitter account

Hello friends! I'm pleased to announce the recent updates to the testing-library family of tools! As always, we're committed to giving you the best tools to enable you to have confidence in shipping your applications. That's why the guiding principle for everything we do is:

The more your tests resemble the way your software is used, the more confidence they can give you.

This guiding principle has given us direction and we've been able to accomplish a lot in the testing space. To further our mission, I'd like to make a few announcements about changes going on in the testing-library world.

dom-testing-library v4 released!

This is actually a pretty small release, but I think it's worth mentioning anyway. We try to keep breaking changes to a minimum. This release only has two breaking changes. One is removal of deprecated methods you probably weren't using anyway, and the other reveals potential bugs in your tests. So you should be able to upgrade to this version with little-to-no effort.

If you do experience breakages, it's probably due to something like this:

We hope that this helps you catch bugs better!

react-testing-library and cypress-testing-library have already been updated and released major version bumps of their own to account for this upgrade. Other wrappers will hopefully follow shortly based on their respective matinainers' schedules.

View the Changelog

Testing Library on GitHub

We've created a new org on GitHub to manage the family of testing library projects. The best part of the "Testing Library" isn't the code, but the philosophy behind it. So we're using the organization as a way to group all the projects that share the same philosophy and general utilities so whether you're using Vue, Cypress, or React (Native), you'll have a super testing tool that you're familiar with.

Here are the current (or soon to be) members of the org:

(Hopefully we'll have angular on there eventually as well as ember).

What's cool is that building wrappers for your JavaScript framework of choice is often quite simple (as I demonstrate on TestingJavaScript.com). And as mentioned below, you can carry these same principles to non-DOM platforms as well!

Checkout the Org and Star our Repos

Testing Library on Open Collective

If the Testing Library family of tools has provided you any value at all, we'd encourage you (or your employer) to contribute to our new Open Collective.

It is intended that funds raised by this open collective be used to:

  • Donate to charities and other good causes
  • Purchase testing-library related merchandise (stickers, T-Shirts, etc).
  • Pay for hosting/domains/etc.

There are currently no plans to pay people who work on the project, but we reserve the right to do so if it makes sense in the future.

Contribute to our open collective

Testing Library on Twitter

A lot of chatter is going on in the Testing Library world on Twitter, so we've created a twitter account you can follow and keep up with what's going on.

Follow @TestingLib

Testing Library on Spectrum

We've had a pretty active spectrum community for react-testing-library. We're in the process of moving that to a more general Testing Library spectrum so we can have all discussion around the different wrappers in one place. There are over 600 members of our spectrum community (special shout-out to Giorgio who has been SUPER helpful to people there.) Please join us!

Join us on Spectrum

Testing Library on React Native

I'm really happy to announce a super solution to the React Native testing space. The DOM is quite different from native, as I mentioned before, it's not the code but the concepts that really make the Testing Library great. I'm happy to say that Brandon Carroll has successfully ported those concepts to a solution for React Native and I'm really happy with it. Give it a look if you're building React Native applications and want confidence that they continue to work as you make changes!

Checkout native-testing-library

Learn Testing Library

There's been a LOT of activity around the Testing Library principles and tools in the content space. We do have a page that lists learning materials, and more gets added to it daily. If you know of blog posts, YouTube videos, courses, or anything else about the Testing Library family of tools, please contribute to the list!

Contribute to the learning materials page

Other Exciting news

As of a few months ago, the React team officially recommends you use react-testing-library to test your react applications. That's kinda neat :)

At the React Amsterdam Open Source awards ceremony, react-testing-library won the award for the Most impactful contribution to the community!

Open Source Awards award

react-testing-library also received recognition on the ThoughtWorks Technology Radar as technology they believe is "Worth exploring with the goal of understanding how it will affect your enterprise." We think so too :)

Special Thank You

Each of the projects has had many contributors and on most projects in the org, you'll find a table of contributors. We're super grateful for all the contributions people have made to the projects. I'd like to also give a special shout-out to people who have made an especially significant impact on the Testing Library family of tools and community.

Myself πŸ‘‹, Alex Krolick, Brandon Carroll, Giorgio, Ernesto GarcΓ­a, and Daniel Cook.

As I said, there have been many who have contributed a great deal to the community, but these people stand out to me as individuals who have done especially great work. Thank you!

Conclusion

No matter what platform you're working with, the guiding principles of the Testing Library family can be applied to the tests for that platform. Take a step back and consider how closely your tests are resembling the way your software is used. If you can, consider what lightweight but powerful utilities would enable others to test their software in that way as well and create a library for that! Maybe it can join the Testing Library family of tools!

Multi-Framework Code Blocks

Many of the code samples have been updated to include tabs to switch between "plain" DOM Testing Library syntax and the wrappers for React, Cypress, etc.

Thanks to @tylerthehaas for pointing out that the previous examples could be confusing if you were targeting a specific library, and to the Docusaurus team for adding support for code tabs in version 1.7.2.

New Site

We have a docs site now! It's built with Docusaurus.

The new site is the homepage for DOM Testing Library, React Testing Library, and the *-testing-library ecosystem. Check out the landing pages for each:

πŸ’― Thank you to everyone who has contributed to the docs over the past months - the content has been ported over and the hope is that this site will provide a centralized place for examples, API reference, and community links in 2019 and beyond!

πŸŽ‰ Happy new year!