У меня есть контроллер я тестирование с Ember CLI, но обещание контроллера не рассосется, а transitionToRoute
метод контроллера возвращается null
:Ember CLI Test Controller: Uncaught TypeError: Не удается прочитать свойство «transitionToRoute» в нуль
Uncaught TypeError: Cannot read property 'transitionToRoute' of null
login.coffee
success: (response) ->
# ...
attemptedTransition = @get("attemptedTransition")
if attemptedTransition
attemptedTransition.retry()
@set "attemptedTransition", null
else
@transitionToRoute "dashboard"
login-test.coffee
`import {test, moduleFor} from "ember-qunit"`
moduleFor "controller:login", "LoginController", {
}
# Replace this with your real tests.
test "it exists", ->
controller = @subject()
ok controller
###
Test whether the authentication token is passed back in JSON response, with `token`
###
test "obtains authentication token", ->
expect 2
workingLogin = {
username: "[email protected]",
password: "pass"
}
controller = @subject()
Ember.run(->
controller.setProperties({
username: "[email protected]",
password: "pass"
})
controller.login().then(->
token = controller.get("token")
ok(controller.get("token") isnt null)
equal(controller.get("token").length, 64)
)
)
Когда линия @transitionToRoute("dashboard")
удалена, тест проходит; в противном случае тест не выполняется.
Как я могу исправить эту ошибку, сохраняя при этом мою логику контроллера?
'transitionToRoute' не возвращает null, это * is * null. Думаю, это не то, что вы подозреваете. Мой интерес к coffeescript не позволяет мне слишком беспокоиться об этом :) –
Если вы нашли решение, пожалуйста, разместите его как ответ, так как сталкивайтесь с подобной проблемой. – Mawaheb