CacheControl / CacheControl/json-rules-engine

allowUndefinedFacts not working when the facts type are string

オープン
#270 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
3.1k
フォーク
507
PR マージ指標
30日以内にマージされた PR はありません

説明

Here's my example, you can reproduce the issue with the code:
`const customAttributeRule = {
"name": "allowUndefinedFacts-test",
"attributes": [
{
"name": "Astring",
"type": "string"
},
{
"name": "Bnumber",
"type": "number"
}
],
"decisions": [
{
"conditions": {
"all": [
{
"fact": "Astring",
"operator": "notEqual",
"value": "string"
}
]
},
"event": {
"type": "Astring",
"params": {
"value": "1",
"description": "Astring test"
}
}
},
{
"conditions": {
"all": [
{
"fact": "Bnumber",
"operator": "lessThan",
"value": 5
}
]
},
"event": {
"type": "Bnumber",
"params": {
"value": "1",
"description": "Bnumber test"
}
}
}
]
}`
`let facts = {}`
`const engine = new Engine(customAttributeRule.decisions, {allowUndefinedFacts: true});
engine.on('success', event => {
console.log(event)
});`
`let result = engine .run(facts)`
The engine output is
`{
type: 'Astring',
params: { value: '1', description: 'Astring test' }
}`
However, the allowUndefinedFacts works when then fact type is number

Since the engine treat undefined facts as undefined, so I added another condition that `{
"fact": "Astring",
"operator": "notEqual",
"value": "undefined"
}`, but it still does not work as expected

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。