drone-yaml/yaml/manifest_test.go

42 lines
787 B
Go

// Copyright 2019 Drone.IO Inc. All rights reserved.
// Use of this source code is governed by the Drone Community
// License that can be found in the LICENSE file.
package yaml
import (
"encoding/json"
"io/ioutil"
"testing"
"github.com/google/go-cmp/cmp"
)
func TestManifestUnmarshal(t *testing.T) {
diff, err := diff("testdata/manifest.yml")
if err != nil {
t.Error(err)
}
if diff != "" {
t.Error("Failed to parse manifest with multiple entries")
t.Log(diff)
}
}
func diff(file string) (string, error) {
a, err := ParseFile(file)
if err != nil {
return "", err
}
d, err := ioutil.ReadFile(file + ".golden")
if err != nil {
return "", err
}
b := new(Manifest)
err = json.Unmarshal(d, b)
if err != nil {
return "", err
}
return cmp.Diff(a, b), nil
}