]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
parser/metadecoders: Simplify nil check in Unmarshal
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 14 Dec 2022 14:19:04 +0000 (15:19 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 14 Dec 2022 17:03:47 +0000 (18:03 +0100)
parser/metadecoders/decoder.go
parser/metadecoders/decoder_test.go

index a31bcd5cdd5ea137cd9b74181e43cda41ff6734b..3f322ad92e4b168b77f5ec894f6d50730d15ffa7 100644 (file)
@@ -112,7 +112,7 @@ func (d Decoder) UnmarshalStringTo(data string, typ any) (any, error) {
 // Unmarshal will unmarshall data in format f into an interface{}.
 // This is what's needed for Hugo's /data handling.
 func (d Decoder) Unmarshal(data []byte, f Format) (any, error) {
-       if data == nil || len(data) == 0 {
+       if len(data) == 0 {
                switch f {
                case CSV:
                        return make([][]string, 0), nil
index fbeab41a47a4c3409aac231979cf1d26f2253917..5e917beffbfa483ae4a4800d21ddc34c63e36735 100644 (file)
@@ -116,22 +116,23 @@ func TestUnmarshalToInterface(t *testing.T) {
        d := Default
 
        for i, test := range []struct {
-               data   string
+               data   []byte
                format Format
                expect any
        }{
-               {`[ "Brecker", "Blake", "Redman" ]`, JSON, []any{"Brecker", "Blake", "Redman"}},
-               {`{ "a": "b" }`, JSON, expect},
-               {``, JSON, map[string]any{}},
-               {`#+a: b`, ORG, expect},
-               {`#+DATE: <2020-06-26 Fri>`, ORG, map[string]any{"date": "2020-06-26"}},
-               {`a = "b"`, TOML, expect},
-               {`a: "b"`, YAML, expect},
-               {`<root><a>b</a></root>`, XML, expect},
-               {`a,b,c`, CSV, [][]string{{"a", "b", "c"}}},
-               {"a: Easy!\nb:\n  c: 2\n  d: [3, 4]", YAML, map[string]any{"a": "Easy!", "b": map[string]any{"c": 2, "d": []any{3, 4}}}},
+               {[]byte(`[ "Brecker", "Blake", "Redman" ]`), JSON, []any{"Brecker", "Blake", "Redman"}},
+               {[]byte(`{ "a": "b" }`), JSON, expect},
+               {[]byte(``), JSON, map[string]any{}},
+               {[]byte(nil), JSON, map[string]any{}},
+               {[]byte(`#+a: b`), ORG, expect},
+               {[]byte(`#+DATE: <2020-06-26 Fri>`), ORG, map[string]any{"date": "2020-06-26"}},
+               {[]byte(`a = "b"`), TOML, expect},
+               {[]byte(`a: "b"`), YAML, expect},
+               {[]byte(`<root><a>b</a></root>`), XML, expect},
+               {[]byte(`a,b,c`), CSV, [][]string{{"a", "b", "c"}}},
+               {[]byte("a: Easy!\nb:\n  c: 2\n  d: [3, 4]"), YAML, map[string]any{"a": "Easy!", "b": map[string]any{"c": 2, "d": []any{3, 4}}}},
                // errors
-               {`a = "`, TOML, false},
+               {[]byte(`a = "`), TOML, false},
        } {
                msg := qt.Commentf("%d: %s", i, test.format)
                m, err := d.Unmarshal([]byte(test.data), test.format)