mirror of https://github.com/halo-dev/halo
fix: ineffective single-character queries in labelSelector (#5007)
**What this PR does / why we need it:** This PR resolves the reported bug in issue #5001, **Which issue(s) this PR fixes:** Fixes [#5001](https://github.com/halo-dev/halo/issues/5001) ```release-note 修复 labelSelector 单字符值查询无效的问题 ```pull/5032/head
parent
1f5bef71ac
commit
8b405faa57
|
@ -12,7 +12,7 @@ public enum Operator implements Converter<String, SelectorCriteria> {
|
||||||
public SelectorCriteria convert(@Nullable String selector) {
|
public SelectorCriteria convert(@Nullable String selector) {
|
||||||
if (preFlightCheck(selector, 3)) {
|
if (preFlightCheck(selector, 3)) {
|
||||||
var i = selector.indexOf(getOperator());
|
var i = selector.indexOf(getOperator());
|
||||||
if (i > 0 && (i + getOperator().length()) < selector.length() - 1) {
|
if (i > 0 && (i + getOperator().length()) <= selector.length() - 1) {
|
||||||
String key = selector.substring(0, i);
|
String key = selector.substring(0, i);
|
||||||
String value = selector.substring(i + getOperator().length());
|
String value = selector.substring(i + getOperator().length());
|
||||||
return new SelectorCriteria(key, this, Set.of(value));
|
return new SelectorCriteria(key, this, Set.of(value));
|
||||||
|
|
|
@ -27,6 +27,8 @@ class OperatorTest {
|
||||||
new TestCase("name=", Equals, null),
|
new TestCase("name=", Equals, null),
|
||||||
new TestCase("name=value", Equals,
|
new TestCase("name=value", Equals,
|
||||||
new SelectorCriteria("name", Equals, Set.of("value"))),
|
new SelectorCriteria("name", Equals, Set.of("value"))),
|
||||||
|
new TestCase("name=v", Equals,
|
||||||
|
new SelectorCriteria("name", Equals, Set.of("v"))),
|
||||||
|
|
||||||
new TestCase("", NotEquals, null),
|
new TestCase("", NotEquals, null),
|
||||||
new TestCase("=", NotEquals, null),
|
new TestCase("=", NotEquals, null),
|
||||||
|
@ -59,4 +61,4 @@ class OperatorTest {
|
||||||
assertEquals(testCase.expected(), testCase.converter().convert(testCase.source()));
|
assertEquals(testCase.expected(), testCase.converter().convert(testCase.source()));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue