Meteor.js: Using server.call when testing with Chimp

安稳与你 提交于 2019-12-25 10:02:24

问题


I'm having an issue triggering method calls while writing feature tests. I'm not actually given an error in the chimp terminal log, but the server.call line is where the failure is highlighted. I believe this might be related to the folder structure of the app (which I've loosely based on Letterpress) or the order in which the call is defined and then triggered. When I move the method call out to my main.js file (in the root folder of the app), it works without a problem.

hooks.js path: /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');
});

Note: I originally didn't have the fixtures folder wrapped in the packages folder (it still didn't work then) but came across this post by @Xolv.io, the developers of Chimp.js who advised to do so.


回答1:


with the new chimp, you can just use:

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

Check this repository for examples: https://github.com/xolvio/automated-testing-best-practices/




回答2:


In your sample repo, if you define a meteor method, 'something', you can call as server.call('something'). If you have a standard method definition (not even a meteor method), say something2=function(){}, with xolvio:backdoor, you can server.execute('something2'). ( calling chimp with --ddp switch)



来源:https://stackoverflow.com/questions/35303443/meteor-js-using-server-call-when-testing-with-chimp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!