ember-simple-auth qunit test с помощью jquery mockjax
Я использую ember-simple-auth в своем приложении. Для моего теста я использую QUnit вместе с jquery-mockjax. Но я не сдал тест, login with correct credentials
, чтобы работать с насмешливым ответом. Если я не издевался, тест ниже работает. Поддельный ответ выглядит точно так же, как ответ сервера.
Мой вопрос, как я должен издеваться над ответом на ember-simple-auth?
test "with correct credentials", ->
expect(2)
response =
access_token : "92d50f562503e40fe783c2ebf359e0c2b37fa80758e2e3603d7e3e82a485522a"
expires_in : 7200
token_type : "bearer"
# if I remove the following line, the test works
mock_http('/oauth/token', response, 200)
visit("login")
.fillIn('#identification', 'test@test.de')
.fillIn('#password', 'tester')
.click('.btn-success').then ->
ok(find("a:contains('Logout')").length, 'logout link not visible')
ok(not find("a:contains('Login')").length, 'login link still visible')
следующий тест также работает с насмешкой:
test "with wrong credentials", ->
expect(2)
response =
error : 'some error occured'
mock_http('/oauth/token', response, 401)
visit("login")
.fillIn('#identification', 'test')
.fillIn('#password', 'wrong')
.click('.btn-success').then ->
ok(not find("a:contains('Logout')").length, 'logout link not visible')
ok(find("a:contains('Login')").length, 'login link still visible')
РЕДАКТИРОВАТЬ:
После jsBin это показывает проблему: http://jsbin.com/ASaSaRiX/6/edit
3 ответа
Проблема вызвана конфликтом версий jQuery с mockjax. С помощью Marcoow я нашел этот вопрос stackru. С jQuery < 1.10 это работает. Ммм... это нехорошо.
Кстати работающий jsBin: http://jsbin.com/ASaSaRiX/11
РЕДАКТИРОВАТЬ: Вы можете найти более подробную информацию здесь. Проблема вызвана изменением в jQuery.
@marcoow: одно из исправлений - добавить dataType: 'json'
к параметрам запроса Ember.SimpleAuth. Может быть, у вас есть время взглянуть на информацию, приведенную в ссылке выше.
Я автор Ember.SimpleAuth.
Вы сконфигурировали Ember.SimpleAuth для использования '/oauth/token' в качестве конечной точки токена? В противном случае он использовал бы "/ token" в качестве конечной точки сервера, чтобы ваш макет не имел никакого эффекта.
Ваша неопределенность в первом блоке кода, похоже, не верна. Это должно читаться так: (обратите внимание на изменение отступа на mock_http
линия)
test "with correct credentials", ->
expect(2)
response =
access_token : "92d50f562503e40fe783c2ebf359e0c2b37fa80758e2e3603d7e3e82a485522a"
expires_in : 7200
token_type : "bearer"
# if I remove the following line, the test works
mock_http('/oauth/token', response, 200)
visit("login")
fillIn('#identification', 'test@test.de')
fillIn('#password', 'tester')
click('.btn-success').then ->
ok(find("a:contains('Logout')").length, 'logout link not visible')
ok(not find("a:contains('Login')").length, 'login link still visible')