import { subscribe, reset } from '@ember/instrumentation'; import { moduleFor, ApplicationTestCase } from 'internal-test-helpers'; moduleFor( 'View Instrumentation', class extends ApplicationTestCase { constructor() { super(); this.addTemplate('application', `{{outlet}}`); this.addTemplate('index', `

Index

`); this.addTemplate('posts', `

Posts

`); this.router.map(function() { this.route('posts'); }); } teardown() { reset(); super.teardown(); } ['@test Nodes without view instances are instrumented'](assert) { let called = false; subscribe('render', { before() { called = true; }, after() {}, }); return this.visit('/') .then(() => { assert.equal(this.textValue(), 'Index', 'It rendered the correct template'); assert.ok(called, 'Instrumentation called on first render'); called = false; return this.visit('/posts'); }) .then(() => { assert.equal(this.textValue(), 'Posts', 'It rendered the correct template'); assert.ok(called, 'Instrumentation called on transition to non-view backed route'); }); } } );