Здраво Emberistas! 🐹
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—
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
- test isolation validation, to detect async leakage in tests
So what are you waiting for? Learn how you can write async-aware tests in Ember today!
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!
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.
Listen to the full episode on the Crash Log Podcast website!
This week we'd like to thank @jrowlingson, @mansona, @NullVoxPopuli, @sivakumar-kailasam, @MelSumner, @jenweber, @llunn, @dnalagatla, @rwjblue, @ryanolsonx, @pzuraq, @simonihmig, @sdebarros, @igorT, @runspired, @HeroicEric, @nummi, @CvX, @dgeb, @makepanic, @tomdale, @chiragpat and @kellyselden for their contributions to Ember and related repositories! 💖
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! 🤞
That's another wrap! ✨
Chris Ng, Amy Lam, Jessica Jordan, Isaac Lee and the Learning Team