对Ember Mirage的同步请求

时间:2016-03-20 08:14:04

标签: javascript unit-testing asynchronous ember.js ember-cli-mirage

我有一个令人沮丧的时间,我不确定它是否是导致问题的Ember Mirage。 我在服务中有以下代码。

    Ember.$.get({
        url: `/api/online-courses/${Ember.get(course, 'id')}/courseData`,
        async: false, // use of deferreds, or promises, is deprecated with this setting
        beforeSend: function (xhr) {
          xhr.setRequestHeader('Authorization', Ember.get(service, 'ajax.headers')['Authorization'])
        },
        success: (result) => {
          globalState.initialized = true
          Ember.get(service, 'store').pushPayload('course-datum', result)
          initializeValues()
          returnVal = 'true'
        },
        error: (args) => {
          returnVal = 'false'
        }
      })

      return returnVal

我还在mirage/config.js文件中声明了路由。它被设置为仅在单元测试期间使用海市蜃楼。

在测试期间,我可以通过XHR请求跟踪代码执行,进入Mirage路由处理程序,然后......没有。它没有命中Ember.$.get

中定义的成功或错误处理程序

当我在开发中针对真实的Web服务器执行此代码时,它可以正常工作。

Mirage是否支持async:false标志? 我还尝试使用this.pretender.get语法使用此处定义的同步样式声明我的终点:https://github.com/pretenderjs/pretender#timing-parameter 但仍然没有快乐......

任何想法,正确方向的推动等都会受到极大的赞赏。

0 个答案:

没有答案