2016-08-09 5 views
2

Я создал тест-приемник на ember-cli, чтобы проверить, когда пользователь находится по URL-адресу, а затем нажимает кнопку «Отмена» на этой странице, страница должна быть перенаправлена ​​на другую URL.Приемочный тест Перенаправление на определенный URL-адрес

При выполнении теста я получаю эту ошибку:

"Promise rejected during Redirects to previous URL if cancel button is clicked: Element .close-button not found".

Но у меня есть этот элемент на шаблоне. Может кто-нибудь подскажет мне, что мне здесь не хватает, или предложите мне документацию, которую я могу прочитать, чтобы решить эту ошибку ?.

Это мое признание тест:

import { test } from 'qunit'; 
import moduleForAcceptance from '/tests/helpers/module-for-acceptance'; 

moduleForAcceptance('Acceptance | test/company'); 
test('Redirects to previous URL if cancel button is clicked', function() { 
    return visit('test/company/add').then(function(){ 
     return click('.close-button'); 
    }).then(function(assert){ 
     assert.equal(currentURL(), 'test/company'); 
    }); 
}); 

Я попробовал этот тест тоже, но я получаю подобную ошибку:

test('Redirects to previous URL if cancel button is clicked', function(assert) { 
    visit('/test/company/add'); 
    click ('.close-button'); 
    andThen(function() { 
    assert.equal(currentURL(), '/test/company'); 
    }); 
}); 

Это ошибка:

Error: Element .close-button not found.

Это является частью шаблона, где у меня есть кнопка отмены (add.hbs)

<div class="form-add"> 
    <a href="#" class="close-button" {{action 'cancel'}}>Close</a> 
</div> 

Это контроллер, в котором определено действие «отменить»:

actions: { 
    cancel() { 
     if (this.get('isSaved')) { 
      return; 
     } 
     this.transitionToRoute('test/company'); 
    } 
} 
+0

Пробовали ли вы положить щелчок внутри andThen() в вашем втором подходе? – iveedee

ответ

1

посещения и нажмите являются тестовые хелперы, которые возвращают promise.Usually вы будете выполнять дальнейшие испытания, как только ваши обещания разрешаются.

Попробуйте сделать это:

test('Redirects to previous URL if cancel button is clicked', function(assert) { 
    visit('/test/company/add'); 
    andThen(()=>{ 
    click ('.close-button'); 
    andThen(()=>{ 
     assert.equal(currentURL(), '/test/company'); 
    }) 
    }); 
}); 
+0

Спасибо за вашу помощь, я пробовал ваш код, но я все равно получаю ту же ошибку. Я не знаю, что еще делать. Он не может найти этот элемент на странице. – karinfdez