This week: learn how to write async-aware tests 🕰️, there's a new Zoey on the block 📷, outer HTML semantics on the Crash Log Podcast 🎙, and last, but not least, the release of Ember Table 2.0 🎉!
"The Ember community has spent a lot of time thinking about how to make your tests easy to write, dependable, and most importantly, async aware." It's easy in Ember to ensure that your synchronous tests wait for asynchronous actions to complete. 💎
@scalvert gives a great overview of how the settled helper plays a pivotal role. Thanks to settled, the test helpers that we use every day—render, click, visit, and triggerEvent—know when async operations have completed. We can also use settled directly to complete an async operation that @ember/test-helpers doesn't manage.
The author also covers 2 additional tools that help us write async-aware tests:
ember-test-waiters, to mark the start and end of an async operation that @ember/test-helpers doesn't manage
You might recall that we wrote about @mansona's talk on Empress, Ember's static site/JAMStack product, last week. Hopefully, you'll be inspired to build your own empress-blog template even if you only know HTML and CSS. But wait, there's more!
Empress now has a Zoey mascot of its own, joining a fabulous crowd of Zoeys and Tomsters. Check out Empress on GitHub.
Ember Table 2.0 (“ET2”) has been rewritten from the ground up to be even more performant and flexible to use cases and was officially launched! Ember Table 1.0 has been renamed to “ember-table-legacy” to avoid confusion.
Some key features that ET2 provides:
fixed headers, footers, and columns
column resizing and reordering
ability to render thousands of rows performantly via occlusion rendering (leveraging vertical-collection)
compatibility with Ember versions 1.13 through 3.10, with a progressively improved API
One of Ember Octane's most prominent and exciting features - Glimmer Components - approaches HTML semantics of components in a new way: In contrast to traditional components, Glimmer components default to outer HTML semantics, meaning, whichever root HTML element you see declared in your component's template file, is what you're going to get rendered in the DOM.
In the latest episode on the Crash Log Podcast you can now tune into an interesting discussion about the meaning of outer HTML semantics in Glimmer Components and how it affects developer ergonomics. Your podcast presenters @knownasilya and @davewasmer will also chat about Splatattributes and how you can measure and investigate your app's performance when using Fasboot.
Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readers’ Questions are just for you!
Submit your own short and sweet question under bit.ly/ask-ember-core. And don’t worry, there are no silly questions, we appreciate them all - promise! 🤞