Skip to content

Commit

Permalink
cli: port metadataobject/network to use internal/errors
Browse files Browse the repository at this point in the history
PR-URL: hasura/graphql-engine-mono#6408
GitOrigin-RevId: e3fb8e2b2bcef32b072818ac4c4a32124d7876d4
  • Loading branch information
scriptonist authored and hasura-bot committed Oct 27, 2022
1 parent 7ecc684 commit 5217c5f
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 34 deletions.
24 changes: 17 additions & 7 deletions cli/internal/metadataobject/network/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"io/ioutil"
"path/filepath"

"github.com/hasura/graphql-engine/cli/v2/internal/errors"
"github.com/hasura/graphql-engine/cli/v2/internal/metadataobject"

"github.com/sirupsen/logrus"
Expand All @@ -30,14 +31,15 @@ func (o *NetworkObject) Validate() error {
}

func (o *NetworkObject) CreateFiles() error {
var op errors.Op = "network.NetworkObject.CreateFiles"
v := make([]interface{}, 0)
data, err := yaml.Marshal(v)
if err != nil {
return err
return errors.E(op, err)
}
err = ioutil.WriteFile(filepath.Join(o.MetadataDir, o.Filename()), data, 0644)
if err != nil {
return err
return errors.E(op, err)
}
return nil
}
Expand All @@ -47,20 +49,26 @@ type networkObject struct {
}

func (o *NetworkObject) Build() (map[string]interface{}, error) {
var op errors.Op = "network.NetworkObject.Build"
data, err := metadataobject.ReadMetadataFile(filepath.Join(o.MetadataDir, o.Filename()))
if err != nil {
return nil, o.error(err)
return nil, errors.E(op, o.error(err))
}
var obj networkObject
err = yaml.Unmarshal(data, &obj)
if err != nil {
return nil, o.error(err)
return nil, errors.E(op, errors.KindBadInput, o.error(err))
}
return map[string]interface{}{o.Key(): obj}, nil
}

func (o *NetworkObject) Export(metadata map[string]yaml.Node) (map[string][]byte, error) {
return metadataobject.DefaultExport(o, metadata, o.error, metadataobject.DefaultObjectTypeMapping)
var op errors.Op = "network.NetworkObject.Export"
b, err := metadataobject.DefaultExport(o, metadata, o.error, metadataobject.DefaultObjectTypeMapping)
if err != nil {
return nil, errors.E(op, err)
}
return b, nil
}

func (o *NetworkObject) Key() string {
Expand All @@ -72,18 +80,20 @@ func (o *NetworkObject) Filename() string {
}

func (o *NetworkObject) GetFiles() ([]string, error) {
var op errors.Op = "network.NetworkObject.GetFiles"
rootFile := filepath.Join(o.BaseDirectory(), o.Filename())
files, err := metadataobject.DefaultGetFiles(rootFile)
if err != nil {
return nil, o.error(err)
return nil, errors.E(op, o.error(err))
}
return files, nil
}

func (o *NetworkObject) WriteDiff(opts metadataobject.WriteDiffOpts) error {
var op errors.Op = "network.NetworkObject.WriteDiff"
err := metadataobject.DefaultWriteDiff(metadataobject.DefaultWriteDiffOpts{From: o, WriteDiffOpts: opts})
if err != nil {
return o.error(err)
return errors.E(op, o.error(err))
}
return nil
}
Expand Down
59 changes: 32 additions & 27 deletions cli/internal/metadataobject/network/network_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gopkg.in/yaml.v3"
)

Expand All @@ -23,6 +24,7 @@ func TestMetadataObject_Build(t *testing.T) {
fields fields
wantGolden string
wantErr bool
assertErr require.ErrorAssertionFunc
}{
{
"t1",
Expand All @@ -33,6 +35,7 @@ func TestMetadataObject_Build(t *testing.T) {
},
"testdata/build_test/t1/want.golden.json",
false,
require.NoError,
},
{
"t2",
Expand All @@ -43,6 +46,7 @@ func TestMetadataObject_Build(t *testing.T) {
},
"testdata/build_test/t2/want.golden.json",
false,
require.NoError,
},
}
for _, tt := range tests {
Expand All @@ -52,22 +56,21 @@ func TestMetadataObject_Build(t *testing.T) {
logger: tt.fields.logger,
}
got, err := m.Build()
tt.assertErr(t, err)
if tt.wantErr {
assert.Error(t, err)
} else {
assert.NoError(t, err)
gotbs, err := yaml.Marshal(got)
assert.NoError(t, err)
jsonbs, err := goyaml.YAMLToJSON(gotbs)
assert.NoError(t, err)
return
}
gotbs, err := yaml.Marshal(got)
assert.NoError(t, err)
jsonbs, err := goyaml.YAMLToJSON(gotbs)
assert.NoError(t, err)

// uncomment following lines to update golden file
//assert.NoError(t, ioutil.WriteFile(tt.wantGolden, jsonbs, os.ModePerm))
// uncomment following lines to update golden file
//assert.NoError(t, ioutil.WriteFile(tt.wantGolden, jsonbs, os.ModePerm))

wantbs, err := ioutil.ReadFile(tt.wantGolden)
assert.NoError(t, err)
assert.Equal(t, string(wantbs), string(jsonbs))
}
wantbs, err := ioutil.ReadFile(tt.wantGolden)
assert.NoError(t, err)
assert.Equal(t, string(wantbs), string(jsonbs))
})
}
}
Expand All @@ -81,12 +84,13 @@ func TestMetadataObject_Export(t *testing.T) {
metadata map[string]yaml.Node
}
tests := []struct {
id string
name string
fields fields
args args
want map[string][]byte
wantErr bool
id string
name string
fields fields
args args
want map[string][]byte
wantErr bool
assertErr require.ErrorAssertionFunc
}{
{
"t1",
Expand Down Expand Up @@ -114,6 +118,7 @@ func TestMetadataObject_Export(t *testing.T) {
}(),
},
false,
require.NoError,
},
}
for _, tt := range tests {
Expand All @@ -123,15 +128,15 @@ func TestMetadataObject_Export(t *testing.T) {
logger: tt.fields.logger,
}
got, err := obj.Export(tt.args.metadata)
tt.assertErr(t, err)
if tt.wantErr {
assert.Error(t, err)
} else {
for k, v := range got {
assert.Contains(t, tt.want, k)
// uncomment to update golden files
//assert.NoError(t, ioutil.WriteFile(fmt.Sprintf("testdata/export_test/%v/want.%v", tt.id, filepath.Base(k)), v, os.ModePerm))
assert.Equalf(t, string(tt.want[k]), string(v), "%v", k)
}
return
}
for k, v := range got {
assert.Contains(t, tt.want, k)
// uncomment to update golden files
//assert.NoError(t, ioutil.WriteFile(fmt.Sprintf("testdata/export_test/%v/want.%v", tt.id, filepath.Base(k)), v, os.ModePerm))
assert.Equalf(t, string(tt.want[k]), string(v), "%v", k)
}
})
}
Expand Down

0 comments on commit 5217c5f

Please sign in to comment.