Meteor.js: использование server.call при тестировании с Chimp

У меня проблема с вызовами методов при написании тестов функций. На самом деле я не получаю сообщение об ошибке в журнале терминала шимпанзе, но в строке server.call указывается ошибка. Я полагаю, что это может быть связано со структурой папок приложения (которую я свободно основал на Letterpress) или порядком, в котором вызов определяется и затем инициируется. Когда я перемещаю вызов метода в мой файл main.js (в корневой папке приложения), он работает без проблем.

Путь hooks.js: /app/tests/cucumber/features/support/hooks.js

(function(){
    module.exports = function() {
        this.Before(function() {
            console.log("server calling");
            server.call("fixtures/resetUsers"); //test stops here
        });
    };
})();

fixtures.js /app/packages/fixtures/fixtures.js

(function(){
    'use strict';

    Meteor.methods({
        "fixtures/resetUsers": function() {
            Meteor.users.remove({});
        }
    });
})();

package.js /app/packages/fixtures/packages.js

Package.describe({
    name: 'forum:fixtures',
    version: '0.0.1',
    summary: '',
    debugOnly: true
});

Package.onUse(function(api) {
    api.versionsFrom('1.2.1');
    api.use('ecmascript');
    api.addFiles('fixtures.js', 'server');
});

Примечание. Изначально у меня не было папки с фикстурами в папке с пакетами (тогда она все еще не работала), но я наткнулся на этот пост @Xolv.io, разработчика Chimp.js, который советовал это сделать.

2 ответа

С новым шимпанзе вы можете просто использовать:

server.execute(function() {
  // code you put here will run on the server
});

Проверьте этот репозиторий для примеров: https://github.com/xolvio/automated-testing-best-practices/

В вашем примере репозитория, если вы определите метеорный метод "что-то", вы можете вызвать как server.call ("что-то"). Если у вас есть стандартное определение метода (даже не метеорный метод), скажем что-то 2= функция (){}, с помощью xolvio:backdoor вы можете использовать server.execute('thing2'). (вызов шимпанзе с ключом --ddp)

Другие вопросы по тегам