+ {{#each this.items as |item|}}
+
{{item}}
+ {{/each}}
+
+ `);
+
+ assert.dom('.ONE').exists();
+ assert.dom('.TWO').exists();
+ assert.dom('.THREE').exists();
+ assert.dom('.FOUR').doesNotExist();
+
+ this.items.addObject('FOUR');
+ await settled();
+
+ assert.dom('.ONE').exists();
+ assert.dom('.TWO').exists();
+ assert.dom('.THREE').exists();
+ assert.dom('.FOUR').exists();
+ });
+
+ test('it responds by default when DOM elements are reordered', async function (assert) {
+ assert.expect(8);
+
+ const callMeMaybe = () => {
+ assert.ok(true, 'Callback has been fired due to DOM mutation');
+ };
+ this.set('callMeMaybe', callMeMaybe);
+ this.set('items', items());
+
+ await render(hbs`
+