/
githubmirror
/
hugo
Обзор
Документация
Войти
/
githubmirror
/
hugo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
parser/lowercase_camel_json_test.go
90 строк
2 KB
Bjørn Erik Pedersen
parser: Drop empty sub maps from hugo config output
24 май 2026, 12:52
24 май 2026, 12:52
ee4f1ac
Код
Авторство
О чём код?
package parser import ( "testing" qt "github.com/frankban/quicktest" ) func TestReplacingJSONMarshaller(t *testing.T) { c := qt.New(t) m := map[string]any{ "foo": "bar", "baz": 42, "zeroInt1": 0, "zeroInt2": 0, "zeroFloat": 0.0, "zeroString": "", "zeroBool": false, "nil": nil, } marshaller := ReplacingJSONMarshaller{ Value: m, KeysToLower: true, OmitEmpty: true, } b, err := marshaller.MarshalJSON() c.Assert(err, qt.IsNil) c.Assert(string(b), qt.Equals, `{"baz":42,"foo":"bar"}`) } // See issue 14855. func TestReplacingJSONMarshallerOmitEmptySubMaps(t *testing.T) { c := qt.New(t) m := map[string]any{ "keep": "yes", "target": map[string]any{ "path": "/x", "sites": map[string]any{ "matrix": map[string]any{ "languages": []any{}, "versions": []any{}, }, "complements": map[string]any{ "languages": []any{}, }, }, }, "all_zero_branch": map[string]any{ "inner": map[string]any{ "empty": "", "deep": map[string]any{ "zero": 0, }, }, }, "keep_slice_of_maps": []any{ map[string]any{ "name": "a", "empty": "", "sub": map[string]any{"x": 0}, }, }, } marshaller := ReplacingJSONMarshaller{ Value: m, KeysToLower: true, OmitEmpty: true, } b, err := marshaller.MarshalJSON() c.Assert(err, qt.IsNil) s := string(b) c.Assert(s, qt.Contains, `"keep":"yes"`) c.Assert(s, qt.Contains, `"path":"/x"`) c.Assert(s, qt.Not(qt.Contains), `"sites"`) c.Assert(s, qt.Not(qt.Contains), `"matrix"`) c.Assert(s, qt.Not(qt.Contains), `"complements"`) c.Assert(s, qt.Not(qt.Contains), `"all_zero_branch"`) c.Assert(s, qt.Not(qt.Contains), `"inner"`) c.Assert(s, qt.Not(qt.Contains), `"deep"`) c.Assert(s, qt.Contains, `"name":"a"`) c.Assert(s, qt.Not(qt.Contains), `"sub"`) }