在测试Ember时重置初始化程序/ ObjectController数据

时间:2014-01-07 14:48:58

标签: ember.js mocha

Ember 1.3.0,数据:1.0.0.beta.4

我正在运行初始化程序来设置currentUser控制器以保存经过身份验证的用户。

Em.Application.initializer({
    name: 'currentUser',
    initialize: function(container, App) {
      var ObjectController = Em.ObjectController.extend({
        #...init code, sets content to current user
      });
      container.register('currentUser:main', ObjectController);
      container.typeInjection('controller', 'currentUser', 'currentUser:main');
      container.typeInjection('route', 'currentUser', 'currentUser:main');
    },
 });

在测试时,我希望能够取消注册此值或销毁控制器或以某种方式重置它,以便我可以测试当前用户注销的情况。

afterEach( function () {
  Ember.run(function() {
    var objectController = App.__container__.lookup("currentUser:main");
    if (typeof objectController === "object") {
      //Neither of these seem to work
      objectController.set('content', null);
      // OR this 
      objectController.destroy();
    }

    Rise.reset();
  });
});

不幸的是,这似乎不起作用。如果我在运行循环中记录objectController,我可以看到我将内容设置为null或者isDestroying标志设置为true,但是当我尝试在此运行后检索内容时循环,它返回用户或包含用户的promise。

有没有办法真正破坏这个对象?

0 个答案:

没有答案