2016-02-23 10 views
5

Я постоянно получаю сообщение об ошибке при попытке разрешить обещание Aurelia бриза в методе тестирования на Aurelia (машинописи + ветер) заявление."Q js undefined." пытаясь разрешить обещание от Aurelia бриза в методе испытаний (карма + жасмин)

Испытательная основа используется karma+jasmine.

Версия aurelia-breeze пакета 1.0.0

Aurelia бриз делает использование эс обещают распознаватель вместо Q.js, но метод испытания ищет Q.js разрешить обещание вернулось от бриза.

Я пытался добавить Q библиотеку в window объекта из файла spec. Но breeze.debug.js пытается получить доступ к Q js из объекта window, прежде чем он будет установлен в файле spec.

Это не решило проблему.

Пожалуйста, помогите мне решить эту проблему.

ответ

5

Что-то, как это должно работать:

import {configure as configureAureliaBreeze} from 'aurelia-breeze/index'; 
import {Container} from 'aurelia-dependency-injection'; 

const container = new Container(); 
configureAureliaBreeze({ container, globalResources:() => {} }); 

// ... tests ... 

Breeze зависит от Q обещаний и JQuery для AJAX. Aurelia-breeze подгоняет обе эти зависимости с обещаниями ES6 и http-клиентом aurelia соответственно. Приведенный выше код эффективно имитирует то, что произойдет при вызове .plugin('aurelia-breeze') при запуске приложения aurelia.

https://github.com/jdanyow/aurelia-breeze/blob/master/src/index.js#L15-L16

+3

Большое спасибо за помощь. Я смог решить проблему, используя приведенный выше фрагмент, с небольшим изменением. 'import {Container} из 'aurelia-dependency-injection';' –

+0

nice- я обновил ответ с вашими изменениями –