Определение того, выполняется ли код в зеркале при использовании Velocity для тестирования приложения Meteor.

У меня есть простое приложение Meteor. Я хотел бы периодически запускать некоторый код на стороне сервера. Мне нужно опросить удаленный сайт для заказов XML.

Это будет выглядеть примерно так (кофе-скрипт):

unless process.env.ORDERS_NO_FETCH
    Meteor.setInterval ->
        checkForOrder()
    , 600000

Я использую Velocity для тестирования. Я не хочу, чтобы этот код выполнялся в зеркальном экземпляре, который запускает тесты (иначе он переманит мои XML-заказы, и я не увижу их в реальном экземпляре). Итак, с этой целью я хотел бы знать, как определить, работает ли серверный код в среде тестирования, чтобы я мог избежать настройки периодических проверок.

EDIT Я понял, что пропустил подделку одного из вызовов моего сервера в тестах, поэтому мой тестовый код захватывал один из XML-заказов с реального сервера. Так что это может быть не проблема. Я еще не уверен, как выполняются тесты для серверного кода и выполняется ли серверный код в зеркале (это концепция только для клиента)?


person Michael Taylor    schedule 09.12.2014    source источник


Ответы (1)


Сервер и клиент запускаются в зеркале при использовании интеграционных тестов mocha/jasmine.

Если вы хотите узнать, находитесь ли вы в зеркале, вы можете использовать:

Meteor.call('velocity/isMirror', function(err, isMirror) { if (isMirror) { // do something } });

Также на сервере можно использовать:

process.env.IS_MIRROR

У вас уже работает подделка, и это правильный подход.

person Xolv.io    schedule 30.12.2014
comment
Я бы также добавил, что вы можете использовать process.env.FRAMEWORK, чтобы узнать, какое зеркало на самом деле работает. - person Alex K; 16.11.2015