CacheControl / CacheControl/json-rules-engine

PATH is not resolving correctly

Aberta
#285 3 comentários 1 reação 0 responsáveis Ver no GitHub
Linguagem predominante
JavaScript
Estrelas
3.1k
Forks
507
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

I have seen some strange happenings with regard to how the JSON-PATH is resolving in the rules with `"json-rules-engine": "6.1.2"`.

If you consider the following rule:
```JSON
{
"ruleId": 1,
"description": "Returns an NDC exceeded error response (ML error 4001) from the simulator when transfer value is 123 in any currency",
"conditions": {
"all": [
{
"fact": "path",
"operator": "equal",
"value": "/transfers"
},
{
"fact": "method",
"operator": "equal",
"value": "POST"
},
{
"fact": "body",
"operator": "equal",
"value": "123",
"path": "$.amount"
}
]
},
"event": {
"type": "simulateError",
"params": {
"statusCode": 500,
"body": {
"statusCode": "4001",
"message": "Payer FSP insufficient liquidity"
}
}
}
}
```

With the following payload:

```javascript
{
path: '/transfers',
body: '123', // <-- Non-matching PATH
method: 'POST',
}
```

The rule will still resolve and fire off the event which I believe is incorrect.

My expectation is that it should only resolve when the payload is as follows:

```javascript
{
path: '/transfers',
body: { // <-- correct body
amount: '123', // <-- Matching PATH
},
method: 'POST',
}
```

Link for reference: https://github.com/mojaloop/mojaloop-simulator/pull/120/files#r747311386

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Reproduza a issue #285 usando a regra e os payloads fornecidos e, em seguida, revise a discussão vinculada do Mojaloop para obter contexto sobre o comportamento de JSON-PATH. A correção estará concluída quando um body de string não satisfizer a condição $.amount, enquanto um body de objeto contendo amount: '123' a satisfizer, e uma cobertura de regressão tiver sido adicionada ao teste apropriado do projeto.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript
Domínio
backend
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.