fix: compare properties of Invalid types (#1645)
* fix: compare properties of Invalid types fix: compare properties of Invalid types #1643 * fix linter problem * Fix review comment
This commit is contained in:
parent
44b510f48c
commit
973dd7f7ef
2 changed files with 14 additions and 1 deletions
|
@ -372,8 +372,16 @@ func (impl *interperterImpl) compareValues(leftValue reflect.Value, rightValue r
|
||||||
|
|
||||||
return impl.compareNumber(leftValue.Float(), rightValue.Float(), kind)
|
return impl.compareNumber(leftValue.Float(), rightValue.Float(), kind)
|
||||||
|
|
||||||
|
case reflect.Invalid:
|
||||||
|
if rightValue.Kind() == reflect.Invalid {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// not possible situation - params are converted to the same type in code above
|
||||||
|
return nil, fmt.Errorf("Compare params of Invalid type: left: %+v, right: %+v", leftValue.Kind(), rightValue.Kind())
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("TODO: evaluateCompare not implemented! left: %+v, right: %+v", leftValue.Kind(), rightValue.Kind())
|
return nil, fmt.Errorf("Compare not implemented for types: left: %+v, right: %+v", leftValue.Kind(), rightValue.Kind())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,11 @@ func TestOperators(t *testing.T) {
|
||||||
{`true || false`, true, "or", ""},
|
{`true || false`, true, "or", ""},
|
||||||
{`fromJSON('{}') && true`, true, "and-boolean-object", ""},
|
{`fromJSON('{}') && true`, true, "and-boolean-object", ""},
|
||||||
{`fromJSON('{}') || false`, make(map[string]interface{}), "or-boolean-object", ""},
|
{`fromJSON('{}') || false`, make(map[string]interface{}), "or-boolean-object", ""},
|
||||||
|
{"github.event.commits[0].author.username != github.event.commits[1].author.username", true, "property-comparison1", ""},
|
||||||
|
{"github.event.commits[0].author.username1 != github.event.commits[1].author.username", true, "property-comparison2", ""},
|
||||||
|
{"github.event.commits[0].author.username != github.event.commits[1].author.username1", true, "property-comparison3", ""},
|
||||||
|
{"github.event.commits[0].author.username1 != github.event.commits[1].author.username2", true, "property-comparison4", ""},
|
||||||
|
{"secrets != env", nil, "property-comparison5", "Compare not implemented for types: left: map, right: map"},
|
||||||
}
|
}
|
||||||
|
|
||||||
env := &EvaluationEnvironment{
|
env := &EvaluationEnvironment{
|
||||||
|
|
Loading…
Reference in a new issue