seneca: client.act seems to fail when the input contains cmd: 'get'

This behavior started with 1.4.0.

Repro:

'use strict';

const service = require('seneca')();

const inputs = [
    { cmd: 'create' },
    { cmd: 'get' },
    { role: 'test', cmd: 'get' },
    { ball: 'get' },
    { dog: 'get' },
    { thing: 'get' },
    { cmd: 'update' }
];

inputs.forEach((input) => {

    service.add(input, (args, respond) => {

        respond(null, { input });
    });
});

service.listen();

service.ready(function (err) {

    if (err) return;

    const client = require('seneca')().client();

    inputs.forEach((input) => {

        service.act(input, (err, result) => console.log(err  && `👎  (service.act) ${err}` || `👍  (service.act) ${JSON.stringify(result)}`));
        client.act(input, (err, result) => console.log(err  && `👎  (client.act) ${err}` || `👍  (client.act) ${JSON.stringify(result)}`));
    });

    setTimeout(() => service.close((err) => process.exit()), 1000);
});

Expected output (via 1.3.0):

2016-03-18T12:49:34.165Z nu8mey7bb8az/1458305374148/21387/- INFO    hello   Seneca/1.3.0/nu8mey7bb8az/1458305374148/21387/-
2016-03-18T12:49:34.451Z nu8mey7bb8az/1458305374148/21387/- INFO    listen
2016-03-18T12:49:34.539Z i0qppq7gufyj/1458305374536/21387/- INFO    hello   Seneca/1.3.0/i0qppq7gufyj/1458305374536/21387/-
2016-03-18T12:49:34.543Z i0qppq7gufyj/1458305374536/21387/- INFO    client
👍  (service.act) {"input":{"cmd":"create"}}
👍  (service.act) {"input":{"cmd":"get"}}
👍  (service.act) {"input":{"role":"test","cmd":"get"}}
👍  (service.act) {"input":{"ball":"get"}}
👍  (service.act) {"input":{"dog":"get"}}
👍  (service.act) {"input":{"thing":"get"}}
👍  (service.act) {"input":{"cmd":"update"}}
👍  (client.act) {"input":{"cmd":"create"}}
👍  (client.act) {"input":{"cmd":"get"}}
👍  (client.act) {"input":{"role":"test","cmd":"get"}}
👍  (client.act) {"input":{"ball":"get"}}
👍  (client.act) {"input":{"dog":"get"}}
👍  (client.act) {"input":{"thing":"get"}}
👍  (client.act) {"input":{"cmd":"update"}}

1.4.0 output:

2016-03-18T12:53:09.526Z tfpiuy2nfhrm/1458305589510/21555/- INFO    hello   Seneca/1.4.0/tfpiuy2nfhrm/1458305589510/21555/-
2016-03-18T12:53:09.792Z tfpiuy2nfhrm/1458305589510/21555/- INFO    listen
2016-03-18T12:53:09.877Z x0lerjt7ummy/1458305589875/21555/- INFO    hello   Seneca/1.4.0/x0lerjt7ummy/1458305589875/21555/-
2016-03-18T12:53:09.882Z x0lerjt7ummy/1458305589875/21555/- INFO    client
👍  (service.act) {"input":{"cmd":"create"}}
👍  (service.act) {"input":{"cmd":"get"}}
👍  (service.act) {"input":{"role":"test","cmd":"get"}}
👍  (service.act) {"input":{"ball":"get"}}
👍  (service.act) {"input":{"dog":"get"}}
👍  (service.act) {"input":{"thing":"get"}}
👍  (service.act) {"input":{"cmd":"update"}}
2016-03-18T12:53:09.946Z x0lerjt7ummy/1458305589875/21555/- WARN    act -           -   -   seneca: No matching action pattern found for { cmd: 'get' }, and no default result provided (using a default$ property).    act_not_found   {args:{ cmd: 'get' },plugin:{}} Error: seneca: No matching action pattern found for { cmd: 'get' }, and no default result provided (using a default$ property).
    at Object.errormaker [as error] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/eraro/eraro.js:94:15)
    at Object.execute_action [as fn] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/seneca.js:1090:25)
    at Immediate._onImmediate (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/gate-executor/gate-executor.js:136:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)
2016-03-18T12:53:09.947Z x0lerjt7ummy/1458305589875/21555/- ERROR   act -           OUT     -   63  {cmd:get}   ENTRY       -   seneca: No matching action pattern found for { cmd: 'get' }, and no default result provided (using a default$ property).    act_not_found   {args:{ cmd: 'get' },plugin:{}} Error: seneca: No matching action pattern found for { cmd: 'get' }, and no default result provided (using a default$ property).
    at Object.errormaker [as error] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/eraro/eraro.js:94:15)
    at Object.execute_action [as fn] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/seneca.js:1090:25)
    at Immediate._onImmediate (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/gate-executor/gate-executor.js:136:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)
👎  (client.act) Error: seneca: No matching action pattern found for { cmd: 'get' }, and no default result provided (using a default$ property).
2016-03-18T12:53:09.948Z x0lerjt7ummy/1458305589875/21555/- WARN    act -           -   -   seneca: No matching action pattern found for { role: 'test', cmd: 'get' }, and no default result provided (using a default$ property).  act_not_found   {args:{ role: 'test', cmd: 'get' },plugin:{}}   Error: seneca: No matching action pattern found for { role: 'test', cmd: 'get' }, and no default result provided (using a default$ property).
    at Object.errormaker [as error] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/eraro/eraro.js:94:15)
    at Object.execute_action [as fn] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/seneca.js:1090:25)
    at Immediate._onImmediate (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/gate-executor/gate-executor.js:136:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)
2016-03-18T12:53:09.948Z x0lerjt7ummy/1458305589875/21555/- ERROR   act -           OUT     -   64  {role:test,cmd:get} ENTRY       -   seneca: No matching action pattern found for { role: 'test', cmd: 'get' }, and no default result provided (using a default$ property).  act_not_found   {args:{ role: 'test', cmd: 'get' },plugin:{}}   Error: seneca: No matching action pattern found for { role: 'test', cmd: 'get' }, and no default result provided (using a default$ property).
    at Object.errormaker [as error] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/eraro/eraro.js:94:15)
    at Object.execute_action [as fn] (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/seneca.js:1090:25)
    at Immediate._onImmediate (/Users/heskew/src/nearform/tmp/seneca-tmp/node_modules/seneca/node_modules/gate-executor/gate-executor.js:136:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)
👎  (client.act) Error: seneca: No matching action pattern found for { role: 'test', cmd: 'get' }, and no default result provided (using a default$ property).
👍  (client.act) {"input":{"cmd":"create"}}
👍  (client.act) {"input":{"ball":"get"}}
👍  (client.act) {"input":{"dog":"get"}}
👍  (client.act) {"input":{"thing":"get"}}
👍  (client.act) {"input":{"cmd":"update"}}

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 2
  • Comments: 17 (8 by maintainers)

Commits related to this issue

Most upvoted comments