2016-08-13 4 views
0

У меня следующий контроллерв ember, как я могу обработать действие контроллера блока, которое отправляет другое действие?

MyController = Ember.Controller.extend({ 
    actions: { 
    doSomething: function(param1, param2) { 
     this.send('actionName', param1, param2); 
    } 
    } 
}); 

Есть ли способ, чтобы написать модульный тест, который проверяет, что этот контроллер будет пузыриться это действие?

ответ

1

Укажите target своего объекта (контроллер), и пусть ваш target были actionName объявлены в actions объекта:

import { moduleFor, test } from 'ember-qunit'; 

moduleFor('controller:my-controller'); 

test('it fires an action', function(assert) { 
    let controller = this.subject(); 

    controller.set('target', Ember.Controller.extend({ 
    actions: { 
     actionName:() => assert.ok(true, 'Action bubbled!') 
    } 
    }).create()); 

    controller.send('doSomething'); 
}); 

Working demo.

+0

, которая работала, спасибо! – lordofthefobs