import Controller from '@ember/controller'; import controllerFor from '../../lib/system/controller_for'; import generateController from '../../lib/system/generate_controller'; import { moduleFor, ApplicationTestCase } from 'internal-test-helpers'; import { getDebugFunction, setDebugFunction } from '@ember/debug'; const originalDebug = getDebugFunction('debug'); const noop = function() {}; moduleFor( 'controllerFor', class extends ApplicationTestCase { constructor() { setDebugFunction('debug', noop); super(); } teardown() { setDebugFunction('debug', originalDebug); } ['@test controllerFor should lookup for registered controllers'](assert) { this.add('controller:app', Controller.extend()); return this.visit('/').then(() => { let appInstance = this.applicationInstance; let appController = appInstance.lookup('controller:app'); let controller = controllerFor(appInstance, 'app'); assert.equal(appController, controller, 'should find app controller'); }); } } ); moduleFor( 'generateController', class extends ApplicationTestCase { constructor() { setDebugFunction('debug', noop); super(); } teardown() { setDebugFunction('debug', originalDebug); } ['@test generateController should return Controller'](assert) { return this.visit('/').then(() => { let controller = generateController(this.applicationInstance, 'home'); assert.ok(controller instanceof Controller, 'should return controller'); }); } ['@test generateController should return controller:basic if resolved'](assert) { let BasicController = Controller.extend(); this.add('controller:basic', BasicController); return this.visit('/').then(() => { let controller = generateController(this.applicationInstance, 'home'); assert.ok(controller instanceof BasicController, 'should return controller'); }); } ['@test generateController should return controller:basic if registered'](assert) { let BasicController = Controller.extend(); this.application.register('controller:basic', BasicController); return this.visit('/').then(() => { let controller = generateController(this.applicationInstance, 'home'); assert.ok(controller instanceof BasicController, 'should return base class of controller'); }); } } );