fix(handler): return raw measurement mode value

- return the int type mode value instead of converting it to a boolean
- update attribute query tests accordingly
This commit is contained in:
douxu 2026-07-22 16:27:08 +08:00
parent 34b9a569ae
commit ec7d97d4d2
2 changed files with 7 additions and 7 deletions

View File

@ -290,7 +290,7 @@ func buildMeasurementAttributeValue(
}
return loadValue(ctx, measurement.DataSource)
case "mode":
return measurement.Mode == 1, nil
return measurement.Mode, nil
case "meta":
return "MEASUREMENT", nil
case "type":

View File

@ -214,7 +214,7 @@ func TestBuildMeasurementAttributeValue(t *testing.T) {
expected any
}{
{field: "value", expected: float64(220)},
{field: "mode", expected: true},
{field: "mode", expected: int16(1)},
{field: "meta", expected: "MEASUREMENT"},
{field: "type", expected: "TM"},
{field: "name", expected: "110kV_TV.IA_rms"},
@ -252,12 +252,12 @@ func TestBuildMeasurementAttributeValueMode(t *testing.T) {
tests := []struct {
name string
mode int16
expected bool
expected int16
}{
{name: "automatic mode", mode: 1, expected: true},
{name: "manual mode", mode: 0, expected: false},
{name: "other positive mode", mode: 2, expected: false},
{name: "negative mode", mode: -1, expected: false},
{name: "collected value", mode: 1, expected: 1},
{name: "manually assigned value", mode: 0, expected: 0},
{name: "other positive mode", mode: 2, expected: 2},
{name: "negative mode", mode: -1, expected: -1},
}
for _, tt := range tests {