В моем приложении meteor я хочу проверить, был ли определенный шаблон обработан для определенного маршрута/пути. Моя текущая настройка включает в себя следующее: iron: router, practmeteor: mocha, и я использую для Blaze для рендеринга.Как проверить, предоставлен ли шаблон для утюга: маршрут маршрутизатора в тесте мокко?
Есть два вопроса, в частности, что я не могу получить, чтобы работать:
- ждет маршрут до конца без использования SetTimeout (я предпочел бы обратный вызов какой-то)
- выяснить, действительно ли на странице не отображается шаблон Blaze.
Как я могу проверить, предоставил ли шаблон после вызова Router.go()
?
import { Router } from 'meteor/iron:router';
import { Template } from 'meteor/templating';
import { chai } from 'meteor/practicalmeteor:chai';
Router.route('/example', { name: 'exampleTemp' });
describe('example route', function() {
it('renders template exampleTemp', function() {
Router.go('/example');
// not sure what to put here to wait for route to finish
// don't know how to achieve the function below
chai.assert.isTrue(Template.exampleTemp.isRendered());
});
});
Что делать, если вы проверили, загружен ли какой-либо уникальный элемент DOM? Может быть, что-то с определенным ID или именем класса? – CodeChimp
@CodeChimp Я хочу, чтобы увидеть, отображен ли сам шаблон. Чтобы я знал, что маршрут работает нормально, даже если html для шаблона изменяется. Я опубликовал уродливую рабочую версию в качестве ответа, но я думаю, что, возможно, это более элегантный способ добиться этого. – DavidC