Транспортир и $ http.post

0

У меня есть простое приложение, где я могу добавлять разговоры (Q/A). Я написал для этого тест -

describe('New Survey:', function() {
  it('should be added', function() {
    browser.get('http://127.0.0.1:8090/#/newConversation');
    //picking a user
    element.all(by.css('.form-control')).get(5).click();
    element(by.model('vm.user')).sendKeys('test');
    element(by.repeater('user in vm.users').row(6)).click();
//push some answers
    var inputs = element.all(by.css('.form-control.validated')).each(function(element,index){
      element.sendKeys('test answer');
    });
     //and send it
    element(by.id('submit')).click();
    element(by.css('.confirm')).click()
          browser.waitForAngular();
  });
});

после нажатия кнопки .confirm этот метод называется

this.saveSurvey = function(conv) {
        return $http.post('/conv', conv);
    };

но транспортир не дожидается до тех пор, пока его не сделают так, что разговор не будет отправлен на сервер, как я могу заставить его ждать, пока сообщение не будет выполнено?

  • 0
    Получаете ли вы ответ от сервера, когда отправляете ему почтовый запрос?
  • 0
    похоже, я не знаю, в чем может быть причина?
Показать ещё 5 комментариев
Теги:
protractor
jasmine
http-post

1 ответ

1

Вы можете дождаться выполнения функции click() и ваш почтовый запрос будет отправлен, ожидая, пока его обещание будет возвращено. Вот как -

element(by.id('submit')).click().then(function(){
    element(by.css('.confirm')).click().then(function(){
        browser.sleep(2000);
        //If your server returns a response in some way that the conversation is saved, you can verify it here.
    });
});

Надеюсь, поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню