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
- patrun 0.5.1; fixes issue #375 — committed to rjrodger/seneca by rjrodger 8 years ago
- Merge pull request #539 from rjrodger/master patrun 0.5.1; fixes issue #375 — committed to senecajs/seneca by mcdonnelldean 8 years ago
@heskew @indr @amitava82 just for you! https://github.com/senecajs/seneca/pull/539 /cc @mcdonnelldean @geek @AdrianRossouw