diff --git a/internal/bcd/ast/ast_test.go b/internal/bcd/ast/ast_test.go index 64f795a5b..fc64b1d55 100644 --- a/internal/bcd/ast/ast_test.go +++ b/internal/bcd/ast/ast_test.go @@ -1,7 +1,6 @@ package ast import ( - "reflect" "strings" "testing" "time" @@ -9,6 +8,7 @@ import ( "github.com/baking-bad/bcdhub/internal/bcd/consts" "github.com/baking-bad/bcdhub/internal/bcd/types" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestTypedAst_ToJSONSchema(t *testing.T) { @@ -691,10 +691,8 @@ func TestTypedAst_Docs(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { untyped, err := NewScript([]byte(tt.data)) - if err != nil { - t.Errorf("NewScript() error = %v", err) - return - } + require.NoError(t, err) + var a *TypedAst switch { case len(untyped.Parameter) > 0: @@ -705,23 +703,17 @@ func TestTypedAst_Docs(t *testing.T) { t.Errorf("Need to set parameter or storage") return } - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } + require.NoError(t, err) + got, err := a.Docs(tt.entrypoint) - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Docs() error = %v, wantErr %v", err, tt.wantErr) - return - } - gotStr, err := json.MarshalToString(got) + require.Equal(t, tt.wantErr, err != nil) if err != nil { - t.Errorf("MarshalToString() error = %v", err) return } - if gotStr != tt.want { - t.Errorf("TypedAst.Docs() = %v, want %v", gotStr, tt.want) - } + + gotStr, err := json.MarshalToString(got) + require.NoError(t, err) + require.Equal(t, tt.want, gotStr) }) } } @@ -789,52 +781,35 @@ func TestTypedAst_Compare(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var typ UntypedAST - if err := json.Unmarshal([]byte(tt.typ), &typ); err != nil { - t.Errorf("Unmarshal(typA) error = %v", err) - return + err := json.Unmarshal([]byte(tt.typ), &typ) + require.NoError(t, err) - } typA, err := typ.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } + require.NoError(t, err) + typB, err := typ.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } + require.NoError(t, err) + var aTree UntypedAST - if err := json.Unmarshal([]byte(tt.a), &aTree); err != nil { - t.Errorf("Unmarshal(a) error = %v", err) - return + err = json.Unmarshal([]byte(tt.a), &aTree) + require.NoError(t, err) - } var bTree UntypedAST - if err := json.Unmarshal([]byte(tt.b), &bTree); err != nil { - t.Errorf("Unmarshal(b) error = %v", err) - return + err = json.Unmarshal([]byte(tt.b), &bTree) + require.NoError(t, err) - } - if err := typA.Settle(aTree); err != nil { - t.Errorf("typA.Settle error = %v", err) - return + err = typA.Settle(aTree) + require.NoError(t, err) - } - if err := typB.Settle(bTree); err != nil { - t.Errorf("typA.Settle error = %v", err) - return - - } + err = typB.Settle(bTree) + require.NoError(t, err) got, err := typA.Compare(typB) - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Compare() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("TypedAst.Compare() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -899,21 +874,12 @@ func TestTypedAst_Settle(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { typ, err := NewSettledTypedAst(tt.tree, tt.data) - if err != nil { - t.Errorf("NewSettledTypedAstFromString() error = %v", err) - return - } - if !typ.IsSettled() { - t.Errorf("tree is not settled") - return - } + require.NoError(t, err) + require.True(t, typ.IsSettled()) b, err := typ.ToParameters(tt.entrypoint) - if err != nil { - t.Errorf("ToParameters() error = %v", err) - return - } - assert.Equal(t, tt.want, string(b)) + require.NoError(t, err) + require.Equal(t, tt.want, string(b)) }) } } @@ -955,18 +921,14 @@ func TestTypedAst_GetEntrypoints(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var tree UntypedAST - if err := json.UnmarshalFromString(tt.tree, &tree); err != nil { - t.Errorf("UnmarshalFromString tree error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &tree) + require.NoError(t, err) + typ, err := tree.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } - if got := typ.GetEntrypoints(); !reflect.DeepEqual(got, tt.want) { - t.Errorf("TypedAst.GetEntrypoints() = %v, want %v", got, tt.want) - } + require.NoError(t, err) + + got := typ.GetEntrypoints() + require.Equal(t, tt.want, got) }) } } @@ -1034,35 +996,27 @@ func TestTypedAst_ToMiguel(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var tree UntypedAST - if err := json.UnmarshalFromString(tt.tree, &tree); err != nil { - t.Errorf("UnmarshalFromString tree error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &tree) + require.NoError(t, err) + typ, err := tree.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } + require.NoError(t, err) + var data UntypedAST - if err := json.UnmarshalFromString(tt.data, &data); err != nil { - t.Errorf("UnmarshalFromString data error = %v", err) - return - } - if err := typ.Settle(data); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Settle() error = %v, wantErr %v", err, tt.wantErr) + err = json.UnmarshalFromString(tt.data, &data) + require.NoError(t, err) + + err = typ.Settle(data) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } got, err := typ.ToMiguel() - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.ToMiguel() error = %v, wantErr %v", err, tt.wantErr) - return - } + require.NoError(t, err) + b, err := json.Marshal(got) - if err != nil { - t.Errorf("Marshal(got) data error = %v", err) - return - } - assert.Equal(t, tt.want, string(b)) + require.NoError(t, err) + require.Equal(t, tt.want, string(b)) }) } } @@ -1195,55 +1149,41 @@ func TestTypedAst_Diff(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var treeA UntypedAST - if err := json.UnmarshalFromString(tt.tree, &treeA); err != nil { - t.Errorf("UnmarshalFromString treeA error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &treeA) + require.NoError(t, err) + typA, err := treeA.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(a) error = %v", err) - return - } + require.NoError(t, err) + var dataA UntypedAST - if err := json.UnmarshalFromString(tt.curr, &dataA); err != nil { - t.Errorf("UnmarshalFromString dataA error = %v", err) - return - } - if err := typA.Settle(dataA); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Settle(a) error = %v, wantErr %v", err, tt.wantErr) - return - } + err = json.UnmarshalFromString(tt.curr, &dataA) + require.NoError(t, err) + + err = typA.Settle(dataA) + require.NoError(t, err) var treeB UntypedAST - if err := json.UnmarshalFromString(tt.tree, &treeB); err != nil { - t.Errorf("UnmarshalFromString treeB error = %v", err) - return - } + err = json.UnmarshalFromString(tt.tree, &treeB) + require.NoError(t, err) + typB, err := treeB.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(b) error = %v", err) - return - } + require.NoError(t, err) + var dataB UntypedAST - if err := json.UnmarshalFromString(tt.prev, &dataB); err != nil { - t.Errorf("UnmarshalFromString dataB error = %v", err) - return - } - if err := typB.Settle(dataB); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Settle(b) error = %v, wantErr %v", err, tt.wantErr) - return - } + err = json.UnmarshalFromString(tt.prev, &dataB) + require.NoError(t, err) + + err = typB.Settle(dataB) + require.NoError(t, err) got, err := typA.Diff(typB) - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Diff() error = %v, wantErr %v", err, tt.wantErr) - return - } - b, err := json.Marshal(got) + require.Equal(t, tt.wantErr, err != nil) if err != nil { - t.Errorf("Marshal(got) data error = %v", err) return } + + b, err := json.Marshal(got) + require.NoError(t, err) assert.Equal(t, tt.want, string(b)) }) } @@ -1303,34 +1243,25 @@ func TestTypedAst_EnrichBigMap(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var treeA UntypedAST - if err := json.UnmarshalFromString(tt.tree, &treeA); err != nil { - t.Errorf("UnmarshalFromString treeA error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &treeA) + require.NoError(t, err) + typA, err := treeA.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(a) error = %v", err) - return - } + require.NoError(t, err) + var dataA UntypedAST - if err := json.UnmarshalFromString(tt.data, &dataA); err != nil { - t.Errorf("UnmarshalFromString dataA error = %v", err) - return - } - if err := typA.Settle(dataA); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Settle(a) error = %v, wantErr %v", err, tt.wantErr) - return - } - if err := typA.EnrichBigMap(tt.bmd); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.EnrichBigMap() error = %v, wantErr %v", err, tt.wantErr) - return - } + err = json.UnmarshalFromString(tt.data, &dataA) + require.NoError(t, err) + + err = typA.Settle(dataA) + require.NoError(t, err) + + err = typA.EnrichBigMap(tt.bmd) + require.NoError(t, err) + b, err := typA.ToParameters("") - if err != nil { - t.Errorf("ToParameters(a) error = %v", err) - return - } - assert.Equal(t, tt.want, string(b)) + require.NoError(t, err) + require.Equal(t, tt.want, string(b)) }) } } @@ -1341,7 +1272,6 @@ func TestTypedAst_ToBaseNode(t *testing.T) { tree string data string optimized bool - wantErr bool }{ { name: "simple big map", @@ -1398,56 +1328,43 @@ func TestTypedAst_ToBaseNode(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var treeA UntypedAST - if err := json.UnmarshalFromString(tt.tree, &treeA); err != nil { - t.Errorf("UnmarshalFromString treeA error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &treeA) + require.NoError(t, err) + a, err := treeA.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(a) error = %v", err) - return - } + require.NoError(t, err) + var dataA UntypedAST - if err := json.UnmarshalFromString(tt.data, &dataA); err != nil { - t.Errorf("UnmarshalFromString dataA error = %v", err) - return - } - if err := a.Settle(dataA); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.Settle(a) error = %v, wantErr %v", err, tt.wantErr) - return - } + err = json.UnmarshalFromString(tt.data, &dataA) + require.NoError(t, err) + + err = a.Settle(dataA) + require.NoError(t, err) + got, err := a.ToBaseNode(tt.optimized) - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.ToBaseNode() error = %v, wantErr %v", err, tt.wantErr) - return - } + require.NoError(t, err) + bGot, err := json.Marshal(got) - if err != nil { - t.Errorf("Marshal(got) error = %v", err) - return - } + require.NoError(t, err) + var mGot map[string]interface{} - if err := json.Unmarshal(bGot, &mGot); err != nil { - t.Errorf("Unmarshal(got) error = %v", err) - return - } + err = json.Unmarshal(bGot, &mGot) + require.NoError(t, err) + var mWant map[string]interface{} - if err := json.UnmarshalFromString(tt.data, &mWant); err != nil { - t.Errorf("UnmarshalFromString(want) error = %v", err) - return - } - assert.Equal(t, mWant, mGot) + err = json.UnmarshalFromString(tt.data, &mWant) + require.NoError(t, err) + require.Equal(t, mWant, mGot) }) } } func TestTypedAst_FromJSONSchema(t *testing.T) { tests := []struct { - name string - tree string - data string - want string - wantErr bool + name string + tree string + data string + want string }{ { name: "atomex initiate", @@ -1514,30 +1431,22 @@ func TestTypedAst_FromJSONSchema(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var treeA UntypedAST - if err := json.UnmarshalFromString(tt.tree, &treeA); err != nil { - t.Errorf("UnmarshalFromString treeA error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &treeA) + require.NoError(t, err) + a, err := treeA.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(a) error = %v", err) - return - } + require.NoError(t, err) + var m map[string]interface{} - if err := json.UnmarshalFromString(tt.data, &m); err != nil { - t.Errorf("UnmarshalFromString(want) error = %v", err) - return - } - if err := a.FromJSONSchema(m); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.FromJSONSchema() error = %v, wantErr %v", err, tt.wantErr) - return - } + err = json.UnmarshalFromString(tt.data, &m) + require.NoError(t, err) + + err = a.FromJSONSchema(m) + require.NoError(t, err) + b, err := a.ToParameters("") - if err != nil { - t.Errorf("ToParameters(a) error = %v", err) - return - } - assert.Equal(t, tt.want, string(b)) + require.NoError(t, err) + require.Equal(t, tt.want, string(b)) }) } } @@ -1601,23 +1510,17 @@ func TestTypedAst_FindByName(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var treeA UntypedAST - if err := json.UnmarshalFromString(tt.tree, &treeA); err != nil { - t.Errorf("UnmarshalFromString treeA error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &treeA) + require.NoError(t, err) + a, err := treeA.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(a) error = %v", err) - return - } + require.NoError(t, err) + got := a.FindByName(tt.fieldName, tt.isEntrypoint) s, err := json.MarshalToString(got) - if err != nil { - t.Errorf("ToParameters(a) error = %v", err) - return - } + require.NoError(t, err) s = strings.ReplaceAll(s, " ", "") - assert.Equal(t, tt.want, s) + require.Equal(t, tt.want, s) }) } } @@ -1629,7 +1532,6 @@ func TestTypedAst_FromParameters(t *testing.T) { entrypoint string data string want string - wantErr bool }{ { name: "atomex/initiate", @@ -1661,38 +1563,28 @@ func TestTypedAst_FromParameters(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { a, err := NewTypedAstFromString(tt.tree) - if err != nil { - t.Errorf("NewTypedAstFromString error = %v", err) - return - } + require.NoError(t, err) p := &types.Parameters{ Entrypoint: tt.entrypoint, Value: []byte(tt.data), } got, err := a.FromParameters(p) - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.FromParameters() error = %v, wantErr %v", err, tt.wantErr) - return - } + require.NoError(t, err) res, err := got.ToParameters(DocsFull) - if err != nil { - t.Errorf("ToParameters() error = %v", err) - return - } + require.NoError(t, err) if tt.want == "" { tt.want = tt.data } - assert.Equal(t, tt.want, string(res)) + require.Equal(t, tt.want, string(res)) }) } } func TestTypedAst_GetEntrypointsDocs(t *testing.T) { tests := []struct { - name string - tree string - result string - wantErr bool + name string + tree string + result string }{ { name: "mainnet/KT1VsSxSXUkgw6zkBGgUuDXXuJs9ToPqkrCg/VestedFunds4", @@ -1723,26 +1615,18 @@ func TestTypedAst_GetEntrypointsDocs(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var tree UntypedAST - if err := json.UnmarshalFromString(tt.tree, &tree); err != nil { - t.Errorf("UnmarshalFromString tree error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &tree) + require.NoError(t, err) + a, err := tree.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST(a) error = %v", err) - return - } + require.NoError(t, err) + got, err := a.GetEntrypointsDocs() - if (err != nil) != tt.wantErr { - t.Errorf("TypedAst.GetEntrypointsDocs() error = %v, wantErr %v", err, tt.wantErr) - return - } + require.NoError(t, err) + gotStr, err := json.MarshalToString(got) - if err != nil { - t.Errorf("MarshalToString(fot) error = %v", err) - return - } - assert.Equal(t, tt.result, gotStr) + require.NoError(t, err) + require.Equal(t, tt.result, gotStr) }) } } @@ -1764,18 +1648,13 @@ func TestTypedAst_EqualType(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { a, err := NewTypedAstFromString(tt.typ1) - if err != nil { - t.Errorf("NewTypedAstFromString(a) = %v", err) - return - } + require.NoError(t, err) + b, err := NewTypedAstFromString(tt.typ2) - if err != nil { - t.Errorf("NewTypedAstFromString(b) = %v", err) - return - } - if got := a.EqualType(b); got != tt.want { - t.Errorf("TypedAst.EqualType() = %v, want %v", got, tt.want) - } + require.NoError(t, err) + + got := a.EqualType(b) + require.Equal(t, tt.want, got) }) } } @@ -1809,18 +1688,15 @@ func TestTypedAst_ParametersForExecution(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { a, err := NewTypedAstFromString(tt.tree) - if err != nil { - t.Errorf("NewTypedAstFromString(a) = %v", err) - return - } + require.NoError(t, err) + var data map[string]interface{} - if err := json.UnmarshalFromString(tt.data, &data); err != nil { - t.Errorf("UnmarshalFromString() error = %v", err) - return - } + err = json.UnmarshalFromString(tt.data, &data) + require.NoError(t, err) - if _, err := a.ParametersForExecution(tt.entrypoint, data); (err != nil) != tt.wantErr { - t.Errorf("TypedAst.ParametersForExecution() error = %v, wantErr %v", err, tt.wantErr) + _, err = a.ParametersForExecution(tt.entrypoint, data) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } }) diff --git a/internal/bcd/ast/bytes_test.go b/internal/bcd/ast/bytes_test.go index 83facfcd4..15298edce 100644 --- a/internal/bcd/ast/bytes_test.go +++ b/internal/bcd/ast/bytes_test.go @@ -1,8 +1,10 @@ package ast import ( - "reflect" "testing" + + "github.com/baking-bad/bcdhub/internal/testsuite" + "github.com/stretchr/testify/require" ) func TestBytes_ToMiguel(t *testing.T) { @@ -20,7 +22,7 @@ func TestBytes_ToMiguel(t *testing.T) { want: &MiguelNode{ Prim: "bytes", Type: "bytes", - Name: getStringPtr("@bytes_1"), + Name: testsuite.Ptr("@bytes_1"), Value: `{ Pair "ledger" "tz1b1L4P8P1ucwuqCEP1Hxs7KB68CX8prFCp" }`, }, }, @@ -28,22 +30,14 @@ func TestBytes_ToMiguel(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { tree, err := NewSettledTypedAst(tt.tree, tt.node) - if err != nil { - t.Errorf("NewSettledTypedAst error %v", err) - return - } + require.NoError(t, err) + got, err := tree.Nodes[0].ToMiguel() - if (err != nil) != tt.wantErr { - t.Errorf("Bytes.ToMiguel() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("Bytes.ToMiguel() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } - -func getStringPtr(val string) *string { - return &val -} diff --git a/internal/bcd/ast/contract_interface_test.go b/internal/bcd/ast/contract_interface_test.go index b5b685e9c..0040106d5 100644 --- a/internal/bcd/ast/contract_interface_test.go +++ b/internal/bcd/ast/contract_interface_test.go @@ -3,7 +3,7 @@ package ast import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestFindContractInterface(t *testing.T) { @@ -78,20 +78,13 @@ func TestFindContractInterface(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var tree UntypedAST - if err := json.UnmarshalFromString(tt.tree, &tree); err != nil { - t.Errorf("UnmarshalFromString() error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &tree) + require.NoError(t, err) typedTree, err := tree.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } + require.NoError(t, err) - if got := FindContractInterface(typedTree, tt.interfaceName); got != tt.want { - t.Errorf("FindContractInterface() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, FindContractInterface(typedTree, tt.interfaceName)) }) } } @@ -111,18 +104,14 @@ func TestFindContractInterfaces(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var tree UntypedAST - if err := json.UnmarshalFromString(tt.tree, &tree); err != nil { - t.Errorf("UnmarshalFromString() error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &tree) + require.NoError(t, err) typedTree, err := tree.ToTypedAST() - if err != nil { - t.Errorf("ToTypedAST() error = %v", err) - return - } + require.NoError(t, err) + got := FindContractInterfaces(typedTree) - assert.ElementsMatch(t, tt.want, got) + require.ElementsMatch(t, tt.want, got) }) } } diff --git a/internal/bcd/ast/ordered_map_test.go b/internal/bcd/ast/ordered_map_test.go index fbcc3bd45..843003aac 100644 --- a/internal/bcd/ast/ordered_map_test.go +++ b/internal/bcd/ast/ordered_map_test.go @@ -2,6 +2,8 @@ package ast import ( "testing" + + "github.com/stretchr/testify/require" ) func TestOrderedMap_Add(t *testing.T) { @@ -55,52 +57,29 @@ func TestOrderedMap_Add(t *testing.T) { t.Run(tt.name, func(t *testing.T) { m := NewOrderedMap() for i := range tt.data { - if err := m.Add(tt.data[i].key, tt.data[i].value); (err != nil) != tt.wantErr { - t.Errorf("OrderedMap.Add() error = %v, wantErr %v", err, tt.wantErr) - return - } + err := m.Add(tt.data[i].key, tt.data[i].value) + require.NoError(t, err) } - if len(tt.wantKeys) != m.Len() { - t.Errorf("OrderedMap.Len() len(tt.wantKeys) = %d, m.Len() = %d", len(tt.wantKeys), m.Len()) - return - } + require.Equal(t, len(tt.wantKeys), m.Len()) for i := range tt.wantKeys { res, err := tt.wantKeys[i].Compare(m.keys[i]) - if err != nil { - t.Errorf("Compare err = %v", err) - return - } - if res != 0 { - t.Errorf("Compare res=%d, i=%d", res, i) - return - } + require.NoError(t, err) + require.Equal(t, res, 0) } receive, ok := m.Get(tt.getKey) - if !ok { - t.Errorf("Get ok = %v", ok) - return - } + require.True(t, ok) + res, err := receive.Compare(tt.wantForGet) - if err != nil { - t.Errorf("receive.Compare err = %v", err) - return - } - if res != 0 { - t.Errorf("receive.Compare res=%d", res) - return - } + require.NoError(t, err) + require.Equal(t, res, 0) - if _, ok := m.Remove(tt.remove); !ok { - t.Errorf("OrderedMap.Remove() ok=%v", ok) - return - } - if tt.lengthAfterRemove != m.Len() { - t.Errorf("lengthAfterRemove=%d, m.Len()=%d", tt.lengthAfterRemove, m.Len()) - return - } + _, ok = m.Remove(tt.remove) + require.True(t, ok) + + require.Equal(t, tt.lengthAfterRemove, m.Len()) _ = m.Range(func(key, value Comparable) (bool, error) { return false, nil diff --git a/internal/bcd/ast/pack_test.go b/internal/bcd/ast/pack_test.go index c2735525d..647b0fea5 100644 --- a/internal/bcd/ast/pack_test.go +++ b/internal/bcd/ast/pack_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/baking-bad/bcdhub/internal/bcd/base" + "github.com/stretchr/testify/require" ) func TestBigMapKeyHash(t *testing.T) { @@ -42,18 +43,12 @@ func TestBigMapKeyHash(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var node base.Node - if err := json.UnmarshalFromString(tt.input, &node); err != nil { - t.Errorf("UnmarshalFromString error: %v", err) - return - } + err := json.UnmarshalFromString(tt.input, &node) + require.NoError(t, err) + result, err := BigMapKeyHash(&node) - if err != nil { - t.Errorf("error in Key, error: %v", err) - return - } - if result != tt.expected { - t.Errorf("error in Key, got: %v, expected: %v", result, tt.expected) - } + require.NoError(t, err) + require.Equal(t, tt.expected, result) }) } } diff --git a/internal/bcd/ast/simple_test.go b/internal/bcd/ast/simple_test.go index a9510ec9e..52072d468 100644 --- a/internal/bcd/ast/simple_test.go +++ b/internal/bcd/ast/simple_test.go @@ -1,6 +1,10 @@ package ast -import "testing" +import ( + "testing" + + "github.com/stretchr/testify/require" +) func TestAddress_Compare(t *testing.T) { tests := []struct { @@ -81,13 +85,11 @@ func TestAddress_Compare(t *testing.T) { second.ValueKind = tt.secondType got, err := first.Compare(second) - if (err != nil) != tt.wantErr { - t.Errorf("Address.Compare() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("Address.Compare() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/ast/timestamp_test.go b/internal/bcd/ast/timestamp_test.go index b2052366c..4325676dd 100644 --- a/internal/bcd/ast/timestamp_test.go +++ b/internal/bcd/ast/timestamp_test.go @@ -6,7 +6,7 @@ import ( "time" "github.com/baking-bad/bcdhub/internal/bcd/base" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestTimestamp_ParseValue(t *testing.T) { @@ -46,10 +46,12 @@ func TestTimestamp_ParseValue(t *testing.T) { node := &base.Node{ StringValue: &tt.ts, } - if err := ts.ParseValue(node); (err != nil) != tt.wantErr { - t.Errorf("Timestamp.ParseValue() error = %v, wantErr %v", err, tt.wantErr) + err := ts.ParseValue(node) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { + return } - assert.Equal(t, tt.want, ts.Value) + require.Equal(t, tt.want, ts.Value) }) } } diff --git a/internal/bcd/ast/untyped_test.go b/internal/bcd/ast/untyped_test.go index 1be5176fa..e1e7e905e 100644 --- a/internal/bcd/ast/untyped_test.go +++ b/internal/bcd/ast/untyped_test.go @@ -1,8 +1,9 @@ package ast import ( - "reflect" "testing" + + "github.com/stretchr/testify/require" ) func TestUntypedAST_GetStrings(t *testing.T) { @@ -23,18 +24,15 @@ func TestUntypedAST_GetStrings(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var tree UntypedAST - if err := json.UnmarshalFromString(tt.tree, &tree); err != nil { - t.Errorf("UntypedAST.GetStrings() error = %v, wantErr %v", err, tt.wantErr) - return - } + err := json.UnmarshalFromString(tt.tree, &tree) + require.NoError(t, err) + got, err := tree.GetStrings(tt.tryUnpack) - if (err != nil) != tt.wantErr { - t.Errorf("UntypedAST.GetStrings() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("UntypedAST.GetStrings() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/ast/validators_test.go b/internal/bcd/ast/validators_test.go index 51fbfe9fb..444a90764 100644 --- a/internal/bcd/ast/validators_test.go +++ b/internal/bcd/ast/validators_test.go @@ -2,6 +2,8 @@ package ast import ( "testing" + + "github.com/stretchr/testify/require" ) func TestAddressValidator(t *testing.T) { @@ -34,9 +36,8 @@ func TestAddressValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := AddressValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("AddressValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := AddressValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } @@ -67,9 +68,8 @@ func TestBakerHashValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := BakerHashValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("BakerHashValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := BakerHashValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } @@ -100,9 +100,8 @@ func TestPublicKeyValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := PublicKeyValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("PublicKeyValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := PublicKeyValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } @@ -133,9 +132,8 @@ func TestBytesValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := BytesValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("BytesValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := BytesValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } @@ -162,9 +160,8 @@ func TestChainIDValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := ChainIDValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("ChainIDValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := ChainIDValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } @@ -199,9 +196,8 @@ func TestSignatureValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := SignatureValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("SignatureValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := SignatureValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } @@ -220,9 +216,8 @@ func TestContractValidator(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if err := ContractValidator(tt.value); (err != nil) != tt.wantErr { - t.Errorf("ContractValidator() error = %v, wantErr %v", err, tt.wantErr) - } + err := ContractValidator(tt.value) + require.Equal(t, tt.wantErr, err != nil) }) } } diff --git a/internal/bcd/base/node_test.go b/internal/bcd/base/node_test.go index 51a194349..65b35f02f 100644 --- a/internal/bcd/base/node_test.go +++ b/internal/bcd/base/node_test.go @@ -3,7 +3,7 @@ package base import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestNode_GetAnnotations(t *testing.T) { @@ -24,12 +24,10 @@ func TestNode_GetAnnotations(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var node Node - if err := json.UnmarshalFromString(tt.tree, &node); err != nil { - t.Errorf("UnmarshalFromString error=%s", err) - return - } + err := json.UnmarshalFromString(tt.tree, &node) + require.NoError(t, err) got := node.GetAnnotations() - assert.Equal(t, tt.want, got) + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/contract/parser_test.go b/internal/bcd/contract/parser_test.go index 5c9a0e002..d1ff4e078 100644 --- a/internal/bcd/contract/parser_test.go +++ b/internal/bcd/contract/parser_test.go @@ -5,6 +5,7 @@ import ( "github.com/baking-bad/bcdhub/internal/bcd/base" "github.com/baking-bad/bcdhub/internal/bcd/consts" + "github.com/stretchr/testify/require" ) func Test_parseConstants(t *testing.T) { @@ -57,9 +58,8 @@ func Test_parseConstants(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := parseConstants(tt.node); got != tt.want { - t.Errorf("parseConstants() = %v, want %v", got, tt.want) - } + got := parseConstants(tt.node) + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/encoding/base58_test.go b/internal/bcd/encoding/base58_test.go index 9a4d177ed..577147fb4 100644 --- a/internal/bcd/encoding/base58_test.go +++ b/internal/bcd/encoding/base58_test.go @@ -2,6 +2,8 @@ package encoding import ( "testing" + + "github.com/stretchr/testify/require" ) func TestDecodeBase58String(t *testing.T) { @@ -55,13 +57,11 @@ func TestDecodeBase58String(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := DecodeBase58String(tt.data) - if (err != nil) != tt.wantErr { - t.Errorf("DecodeBase58() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("DecodeBase58() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -186,13 +186,11 @@ func TestEncodeBase58String(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := EncodeBase58String(tt.data, []byte(tt.prefix)) - if (err != nil) != tt.wantErr { - t.Errorf("EncodeBase58() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("EncodeBase58() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/forge/domaintypes_test.go b/internal/bcd/forge/domaintypes_test.go index c7b1182e5..cadafbad4 100644 --- a/internal/bcd/forge/domaintypes_test.go +++ b/internal/bcd/forge/domaintypes_test.go @@ -2,6 +2,8 @@ package forge import ( "testing" + + "github.com/stretchr/testify/require" ) func Test_Contract(t *testing.T) { @@ -98,13 +100,11 @@ func Test_Contract(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := Contract(tt.val) - if (err != nil) != tt.wantErr { - t.Errorf("Contract() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("Contract() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -125,13 +125,11 @@ func TestUnforgeBakerHash(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := UnforgeBakerHash(tt.str) - if (err != nil) != tt.wantErr { - t.Errorf("UnforgeBakerHash() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("UnforgeBakerHash() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -156,13 +154,11 @@ func TestUnforgeAddress(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := UnforgeAddress(tt.str) - if (err != nil) != tt.wantErr { - t.Errorf("UnforgeAddress() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("UnforgeAddress() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -187,13 +183,11 @@ func TestUnforgePublicKey(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := UnforgePublicKey(tt.str) - if (err != nil) != tt.wantErr { - t.Errorf("UnforgePublicKey() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("UnforgePublicKey() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -214,13 +208,11 @@ func TestUnforgeContract(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := UnforgeContract(tt.str) - if (err != nil) != tt.wantErr { - t.Errorf("UnforgeContract() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if got != tt.want { - t.Errorf("UnforgeContract() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/forge/int_test.go b/internal/bcd/forge/int_test.go index be4faf08a..98babc271 100644 --- a/internal/bcd/forge/int_test.go +++ b/internal/bcd/forge/int_test.go @@ -2,8 +2,9 @@ package forge import ( "math/big" - "reflect" "testing" + + "github.com/stretchr/testify/require" ) func TestInt_Unforge(t *testing.T) { @@ -60,18 +61,12 @@ func TestInt_Unforge(t *testing.T) { t.Run(tt.name, func(t *testing.T) { val := NewInt() got, err := val.Unforge(tt.data) - if (err != nil) != tt.wantErr { - t.Errorf("Int.Unforge() error = %v, wantErr %v", err, tt.wantErr) - return - } - if got != tt.want { - t.Errorf("Int.Unforge() = %v, want %v", got, tt.want) - return - } - if val.IntValue.Cmp(tt.val) != 0 { - t.Errorf("Int.Unforge() parsed value = %v, want %v", val.IntValue.Int64(), tt.val.Int64()) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } + require.Equal(t, tt.want, got) + require.EqualValues(t, val.IntValue.Cmp(tt.val), 0) }) } } @@ -119,13 +114,11 @@ func TestInt_encode(t *testing.T) { val := NewInt() val.IntValue.Set(tt.data) got, err := val.encode() - if (err != nil) != tt.wantErr { - t.Errorf("Int.encode() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("Int.encode() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/forge/michelson_test.go b/internal/bcd/forge/michelson_test.go index c49129c2b..b3aabeee8 100644 --- a/internal/bcd/forge/michelson_test.go +++ b/internal/bcd/forge/michelson_test.go @@ -6,13 +6,10 @@ import ( "github.com/baking-bad/bcdhub/internal/bcd/base" "github.com/baking-bad/bcdhub/internal/bcd/types" - "github.com/stretchr/testify/assert" + "github.com/baking-bad/bcdhub/internal/testsuite" + "github.com/stretchr/testify/require" ) -func getStringPtr(val string) *string { - return &val -} - func TestMichelson_Unforge(t *testing.T) { tests := []struct { name string @@ -79,7 +76,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "01000000096d696368656c696e65", want: []*base.Node{ { - StringValue: getStringPtr("micheline"), + StringValue: testsuite.Ptr("micheline"), }, }, }, @@ -88,7 +85,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0100000000", want: []*base.Node{ { - StringValue: getStringPtr(""), + StringValue: testsuite.Ptr(""), }, }, }, @@ -97,7 +94,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0a000000080123456789abcdef", want: []*base.Node{ { - BytesValue: getStringPtr("0123456789abcdef"), + BytesValue: testsuite.Ptr("0123456789abcdef"), }, }, }, @@ -111,11 +108,11 @@ func TestMichelson_Unforge(t *testing.T) { { IntValue: types.NewBigInt(-33), }, { - StringValue: getStringPtr("tezos"), + StringValue: testsuite.Ptr("tezos"), }, { - StringValue: getStringPtr(""), + StringValue: testsuite.Ptr(""), }, { - StringValue: getStringPtr("cryptonomic"), + StringValue: testsuite.Ptr("cryptonomic"), }, }, }, @@ -233,7 +230,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "010000000561646d696e", want: []*base.Node{ { - StringValue: getStringPtr("admin"), + StringValue: testsuite.Ptr("admin"), }, }, }, @@ -242,7 +239,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0a00000016000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9", want: []*base.Node{ { - BytesValue: getStringPtr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), + BytesValue: testsuite.Ptr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), }, }, }, @@ -251,7 +248,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0100000006706175736564", want: []*base.Node{ { - StringValue: getStringPtr("paused"), + StringValue: testsuite.Ptr("paused"), }, }, }, @@ -269,7 +266,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "010000000866616c6c6261636b", want: []*base.Node{ { - StringValue: getStringPtr("fallback"), + StringValue: testsuite.Ptr("fallback"), }, }, }, @@ -292,7 +289,7 @@ func TestMichelson_Unforge(t *testing.T) { { Prim: "string", }, { - StringValue: getStringPtr("UparamNoSuchEntryPoint"), + StringValue: testsuite.Ptr("UparamNoSuchEntryPoint"), }, }, }, @@ -311,7 +308,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "01000000086e65774f776e6572", want: []*base.Node{ { - StringValue: getStringPtr("newOwner"), + StringValue: testsuite.Ptr("newOwner"), }, }, }, @@ -329,7 +326,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "01000000096f70657261746f7273", want: []*base.Node{ { - StringValue: getStringPtr("operators"), + StringValue: testsuite.Ptr("operators"), }, }, }, @@ -348,7 +345,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0100000009746f6b656e636f6465", want: []*base.Node{ { - StringValue: getStringPtr("tokencode"), + StringValue: testsuite.Ptr("tokencode"), }, }, }, @@ -357,7 +354,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0100000005545a425443", want: []*base.Node{ { - StringValue: getStringPtr("TZBTC"), + StringValue: testsuite.Ptr("TZBTC"), }, }, }, @@ -366,7 +363,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0100000009746f6b656e6e616d65", want: []*base.Node{ { - StringValue: getStringPtr("tokenname"), + StringValue: testsuite.Ptr("tokenname"), }, }, }, @@ -375,7 +372,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "010000000b746f74616c4275726e6564", want: []*base.Node{ { - StringValue: getStringPtr("totalBurned"), + StringValue: testsuite.Ptr("totalBurned"), }, }, }, @@ -393,7 +390,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "010000000b746f74616c4d696e746564", want: []*base.Node{ { - StringValue: getStringPtr("totalMinted"), + StringValue: testsuite.Ptr("totalMinted"), }, }, }, @@ -402,7 +399,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "010000000b746f74616c537570706c79", want: []*base.Node{ { - StringValue: getStringPtr("totalSupply"), + StringValue: testsuite.Ptr("totalSupply"), }, }, }, @@ -411,7 +408,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "010000000d72656465656d41646472657373", want: []*base.Node{ { - StringValue: getStringPtr("redeemAddress"), + StringValue: testsuite.Ptr("redeemAddress"), }, }, }, @@ -420,7 +417,7 @@ func TestMichelson_Unforge(t *testing.T) { data: "0a00000016000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9", want: []*base.Node{ { - BytesValue: getStringPtr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), + BytesValue: testsuite.Ptr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), }, }, }, @@ -429,24 +426,14 @@ func TestMichelson_Unforge(t *testing.T) { t.Run(tt.name, func(t *testing.T) { m := NewMichelson() b, err := hex.DecodeString(tt.data) - if err != nil { - t.Errorf("Michelson.Unforge() DecodeString error = %v", err) - return - } + require.NoError(t, err) + _, err = m.Unforge(b) - if (err != nil) != tt.wantErr { - t.Errorf("Michelson.Unforge() error = %v, wantErr %v", err, tt.wantErr) - return - } - if len(m.Nodes) != len(tt.want) { - t.Errorf("Michelson.Unforge() len = %d, len(want) %v", len(m.Nodes), len(tt.want)) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - for i := range tt.want { - if !assert.Equal(t, tt.want[i], m.Nodes[i]) { - return - } - } + require.ElementsMatch(t, tt.want, m.Nodes) }) } } @@ -517,7 +504,7 @@ func TestMichelson_Forge(t *testing.T) { want: "01000000096d696368656c696e65", nodes: []*base.Node{ { - StringValue: getStringPtr("micheline"), + StringValue: testsuite.Ptr("micheline"), }, }, }, @@ -526,7 +513,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0100000000", nodes: []*base.Node{ { - StringValue: getStringPtr(""), + StringValue: testsuite.Ptr(""), }, }, }, @@ -535,7 +522,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0a000000080123456789abcdef", nodes: []*base.Node{ { - BytesValue: getStringPtr("0123456789abcdef"), + BytesValue: testsuite.Ptr("0123456789abcdef"), }, }, }, @@ -549,11 +536,11 @@ func TestMichelson_Forge(t *testing.T) { { IntValue: types.NewBigInt(-33), }, { - StringValue: getStringPtr("tezos"), + StringValue: testsuite.Ptr("tezos"), }, { - StringValue: getStringPtr(""), + StringValue: testsuite.Ptr(""), }, { - StringValue: getStringPtr("cryptonomic"), + StringValue: testsuite.Ptr("cryptonomic"), }, }, }, @@ -654,7 +641,7 @@ func TestMichelson_Forge(t *testing.T) { want: "010000000561646d696e", nodes: []*base.Node{ { - StringValue: getStringPtr("admin"), + StringValue: testsuite.Ptr("admin"), }, }, }, @@ -663,7 +650,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0a00000016000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9", nodes: []*base.Node{ { - BytesValue: getStringPtr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), + BytesValue: testsuite.Ptr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), }, }, }, @@ -672,7 +659,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0100000006706175736564", nodes: []*base.Node{ { - StringValue: getStringPtr("paused"), + StringValue: testsuite.Ptr("paused"), }, }, }, @@ -690,7 +677,7 @@ func TestMichelson_Forge(t *testing.T) { want: "010000000866616c6c6261636b", nodes: []*base.Node{ { - StringValue: getStringPtr("fallback"), + StringValue: testsuite.Ptr("fallback"), }, }, }, @@ -713,7 +700,7 @@ func TestMichelson_Forge(t *testing.T) { { Prim: "string", }, { - StringValue: getStringPtr("UparamNoSuchEntryPoint"), + StringValue: testsuite.Ptr("UparamNoSuchEntryPoint"), }, }, }, @@ -732,7 +719,7 @@ func TestMichelson_Forge(t *testing.T) { want: "01000000086e65774f776e6572", nodes: []*base.Node{ { - StringValue: getStringPtr("newOwner"), + StringValue: testsuite.Ptr("newOwner"), }, }, }, @@ -750,7 +737,7 @@ func TestMichelson_Forge(t *testing.T) { want: "01000000096f70657261746f7273", nodes: []*base.Node{ { - StringValue: getStringPtr("operators"), + StringValue: testsuite.Ptr("operators"), }, }, }, @@ -769,7 +756,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0100000009746f6b656e636f6465", nodes: []*base.Node{ { - StringValue: getStringPtr("tokencode"), + StringValue: testsuite.Ptr("tokencode"), }, }, }, @@ -778,7 +765,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0100000005545a425443", nodes: []*base.Node{ { - StringValue: getStringPtr("TZBTC"), + StringValue: testsuite.Ptr("TZBTC"), }, }, }, @@ -787,7 +774,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0100000009746f6b656e6e616d65", nodes: []*base.Node{ { - StringValue: getStringPtr("tokenname"), + StringValue: testsuite.Ptr("tokenname"), }, }, }, @@ -796,7 +783,7 @@ func TestMichelson_Forge(t *testing.T) { want: "010000000b746f74616c4275726e6564", nodes: []*base.Node{ { - StringValue: getStringPtr("totalBurned"), + StringValue: testsuite.Ptr("totalBurned"), }, }, }, @@ -814,7 +801,7 @@ func TestMichelson_Forge(t *testing.T) { want: "010000000b746f74616c4d696e746564", nodes: []*base.Node{ { - StringValue: getStringPtr("totalMinted"), + StringValue: testsuite.Ptr("totalMinted"), }, }, }, @@ -823,7 +810,7 @@ func TestMichelson_Forge(t *testing.T) { want: "010000000b746f74616c537570706c79", nodes: []*base.Node{ { - StringValue: getStringPtr("totalSupply"), + StringValue: testsuite.Ptr("totalSupply"), }, }, }, @@ -832,7 +819,7 @@ func TestMichelson_Forge(t *testing.T) { want: "010000000d72656465656d41646472657373", nodes: []*base.Node{ { - StringValue: getStringPtr("redeemAddress"), + StringValue: testsuite.Ptr("redeemAddress"), }, }, }, @@ -841,7 +828,7 @@ func TestMichelson_Forge(t *testing.T) { want: "0a00000016000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9", nodes: []*base.Node{ { - BytesValue: getStringPtr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), + BytesValue: testsuite.Ptr("000006a868bd80219eb1f6a25108d1bdaa98ae27b2d9"), }, }, }, @@ -852,14 +839,11 @@ func TestMichelson_Forge(t *testing.T) { Nodes: tt.nodes, } got, err := m.Forge() - if (err != nil) != tt.wantErr { - t.Errorf("Michelson.Forge() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - gotStr := hex.EncodeToString(got) - if gotStr != tt.want { - t.Errorf("Michelson.Forge() = %v, want %v", gotStr, tt.want) - } + require.Equal(t, tt.want, hex.EncodeToString(got)) }) } } diff --git a/internal/bcd/forge/string_test.go b/internal/bcd/forge/string_test.go index 290017d9b..ac2eed014 100644 --- a/internal/bcd/forge/string_test.go +++ b/internal/bcd/forge/string_test.go @@ -2,8 +2,9 @@ package forge import ( "encoding/hex" - "reflect" "testing" + + "github.com/stretchr/testify/require" ) func TestString_Unforge(t *testing.T) { @@ -36,19 +37,14 @@ func TestString_Unforge(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { input, err := hex.DecodeString(tt.data) + require.NoError(t, err) + + got, err := new(String).Unforge(input) + require.Equal(t, tt.wantErr, err != nil) if err != nil { - t.Errorf("String.Unforge() DecodeString error = %v", err) - return - } - s := &String{} - got, err := s.Unforge(input) - if (err != nil) != tt.wantErr { - t.Errorf("String.Unforge() error = %v, wantErr %v", err, tt.wantErr) return } - if got != tt.want { - t.Errorf("String.Unforge() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } @@ -80,20 +76,14 @@ func TestString_Forge(t *testing.T) { s.StringValue = &tt.s got, err := s.Forge() - if (err != nil) != tt.wantErr { - t.Errorf("String.Forge() error = %v, wantErr %v", err, tt.wantErr) - return - } - - want, err := hex.DecodeString(tt.want) + require.Equal(t, tt.wantErr, err != nil) if err != nil { - t.Errorf("String.Forge() DecodeString error = %v", err) return } - if !reflect.DeepEqual(got, want) { - t.Errorf("String.Forge() = %v, want %v", got, want) - } + want, err := hex.DecodeString(tt.want) + require.NoError(t, err) + require.Equal(t, want, got) }) } } diff --git a/internal/bcd/forge/unpacking_test.go b/internal/bcd/forge/unpacking_test.go index 6c98a549d..b661bf3a2 100644 --- a/internal/bcd/forge/unpacking_test.go +++ b/internal/bcd/forge/unpacking_test.go @@ -2,11 +2,11 @@ package forge import ( "encoding/hex" - "reflect" "testing" "github.com/baking-bad/bcdhub/internal/bcd/base" - "github.com/stretchr/testify/assert" + "github.com/baking-bad/bcdhub/internal/testsuite" + "github.com/stretchr/testify/require" ) func TestCollectStrings(t *testing.T) { @@ -123,16 +123,15 @@ func TestCollectStrings(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var node base.Node - if err := json.UnmarshalFromString(tt.tree, &node); err != nil { - t.Errorf("UnmarshalFromString error = %v", err) - return - } + err := json.UnmarshalFromString(tt.tree, &node) + require.NoError(t, err) + got, err := CollectStrings(&node, tt.tryUnpack) - if (err != nil) != tt.wantErr { - t.Errorf("CollectStrings() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - assert.Equal(t, tt.want, got) + require.Equal(t, tt.want, got) }) } } @@ -149,7 +148,7 @@ func TestUnpack(t *testing.T) { data: "050100000035697066733a2f2f516d585a4846695a5a35566747794c634b514c4d6b5032314e733855394e47316d6f707945777348446663575835", want: []*base.Node{ { - StringValue: getStringPtr("ipfs://QmXZHFiZZ5VgGyLcKQLMkP21Ns8U9NG1mopyEwsHDfcWX5"), + StringValue: testsuite.Ptr("ipfs://QmXZHFiZZ5VgGyLcKQLMkP21Ns8U9NG1mopyEwsHDfcWX5"), }, }, }, @@ -157,18 +156,14 @@ func TestUnpack(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { b, err := hex.DecodeString(tt.data) - if err != nil { - t.Errorf("DecodeString error = %v", err) - return - } + require.NoError(t, err) + got, err := Unpack(b) - if (err != nil) != tt.wantErr { - t.Errorf("Unpack() error = %v, wantErr %v", err, tt.wantErr) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("Unpack() = %v, want %v", got, tt.want) - } + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/formatter/diff_test.go b/internal/bcd/formatter/diff_test.go index cdd0a26be..a46a60628 100644 --- a/internal/bcd/formatter/diff_test.go +++ b/internal/bcd/formatter/diff_test.go @@ -3,6 +3,8 @@ package formatter import ( "strings" "testing" + + "github.com/stretchr/testify/require" ) func Test_skipSpaces(t *testing.T) { @@ -47,9 +49,8 @@ func Test_skipSpaces(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := skipSpaces(tt.args.s, tt.args.offset); got != tt.want { - t.Errorf("skipSpaces() = %v, want %v", got, tt.want) - } + got := skipSpaces(tt.args.s, tt.args.offset) + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/formatter/error/formatter_error_test.go b/internal/bcd/formatter/error/formatter_error_test.go index 9afafadf7..6f5dcf6dc 100644 --- a/internal/bcd/formatter/error/formatter_error_test.go +++ b/internal/bcd/formatter/error/formatter_error_test.go @@ -6,6 +6,7 @@ import ( "os" "testing" + "github.com/stretchr/testify/require" "github.com/tidwall/gjson" ) @@ -30,44 +31,24 @@ func TestLocateContractError(t *testing.T) { dirpath := fmt.Sprintf("formatter_error_tests/%v/", c) data, err := os.ReadFile(dirpath + "code.json") - if err != nil { - t.Errorf("error in os.ReadFile(%v%v): %v", dirpath, "code.json", err) - } - - if !gjson.Valid(string(data)) { - t.Error("invalid json") - } + require.NoError(t, err) + require.True(t, gjson.Valid(string(data))) results, err := os.ReadFile(dirpath + "results.json") - if err != nil { - t.Errorf("error in os.ReadFile(%v%v): %v", dirpath, "results.json", err) - } + require.NoError(t, err) var res Results err = json.Unmarshal(results, &res) - if err != nil { - t.Error("cant unmarshal results.json file") - } + require.NoError(t, err) parsedData := gjson.ParseBytes(data) row, start, end, err := LocateContractError(parsedData, res.Location) - if err != nil { - t.Errorf("err in LocateContractError: %v", err) - } - - if row != res.Row { - t.Errorf("wrong row. got %v, expected %v", row, res.Row) - } - - if start != res.ColStart { - t.Errorf("wrong start. got %v, expected %v", start, res.ColStart) - } - - if end != res.ColEnd { - t.Errorf("wrong end. got %v, expected %v", end, res.ColEnd) - } + require.NoError(t, err) + require.Equal(t, res.Row, row) + require.Equal(t, res.ColStart, start) + require.Equal(t, res.ColEnd, end) }) } diff --git a/internal/bcd/formatter/formatter_test.go b/internal/bcd/formatter/formatter_test.go index 629e43be1..edf99e8f9 100644 --- a/internal/bcd/formatter/formatter_test.go +++ b/internal/bcd/formatter/formatter_test.go @@ -7,6 +7,7 @@ import ( "strings" "testing" + "github.com/stretchr/testify/require" "github.com/tidwall/gjson" ) @@ -103,34 +104,23 @@ func TestMichelineToMichelson(t *testing.T) { jsonFile := fmt.Sprintf("./formatter_tests/%v/code_%v.json", tt, tt[:6]) data, err := os.ReadFile(jsonFile) - if err != nil { - t.Error("os.ReadFile code.json error:", err) - } - - if !gjson.Valid(string(data)) { - t.Error("invalid json") - } + require.NoError(t, err) + require.True(t, gjson.Valid(string(data))) parsedData := gjson.ParseBytes(data) result, err := MichelineToMichelson(parsedData, true, DefLineSize) - if err != nil { - t.Error("MichelineToMichelson error:", err) - } + require.NoError(t, err) tzFile := fmt.Sprintf("./formatter_tests/%v/code_%v.tz", tt, tt[:6]) expected, err := os.ReadFile(tzFile) - if err != nil { - t.Error("os.ReadFile code.tz error:", err) - } + require.NoError(t, err) re := regexp.MustCompile(`\n\s*`) exp := re.ReplaceAllString(string(expected), " ") exp = strings.ReplaceAll(exp, "{ }", "{}") exp = strings.TrimSpace(exp) - if exp != result { - t.Errorf("expected != result") - } + require.Equal(t, exp, result) }) } } diff --git a/internal/bcd/literal_test.go b/internal/bcd/literal_test.go index 05d3d9457..4c7334d2d 100644 --- a/internal/bcd/literal_test.go +++ b/internal/bcd/literal_test.go @@ -2,6 +2,8 @@ package bcd import ( "testing" + + "github.com/stretchr/testify/require" ) func TestIsContract(t *testing.T) { @@ -30,9 +32,8 @@ func TestIsContract(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := IsContract(tt.address); got != tt.want { - t.Errorf("IsContract() = %v, want %v", got, tt.want) - } + got := IsContract(tt.address) + require.Equal(t, tt.want, got) }) } } @@ -67,10 +68,8 @@ func TestIsAddress(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := IsAddress(tt.address); got != tt.want { - t.Errorf("IsAddress() = %v, want %v", got, tt.want) - - } + got := IsAddress(tt.address) + require.Equal(t, tt.want, got) }) } } @@ -93,9 +92,8 @@ func TestIsBakerHash(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := IsBakerHash(tt.str); got != tt.want { - t.Errorf("IsBakerHash() = %v, want %v", got, tt.want) - } + got := IsBakerHash(tt.str) + require.Equal(t, tt.want, got) }) } } diff --git a/internal/bcd/raw_script_test.go b/internal/bcd/raw_script_test.go index 4c30d1985..faf6ca72e 100644 --- a/internal/bcd/raw_script_test.go +++ b/internal/bcd/raw_script_test.go @@ -3,7 +3,7 @@ package bcd import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestRawScript_UnmarshalJSON(t *testing.T) { @@ -26,20 +26,15 @@ func TestRawScript_UnmarshalJSON(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var s RawScript - if err := s.UnmarshalJSON(tt.data); (err != nil) != tt.wantErr { - t.Errorf("RawScript.UnmarshalJSON() error = %v, wantErr %v", err, tt.wantErr) + err := s.UnmarshalJSON(tt.data) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - if !assert.ElementsMatch(t, tt.wantCode, s.Code) { - return - } - if !assert.ElementsMatch(t, tt.wantParameter, s.Parameter) { - return - } - if !assert.ElementsMatch(t, tt.wantStorage, s.Storage) { - return - } + require.ElementsMatch(t, tt.wantCode, s.Code) + require.ElementsMatch(t, tt.wantParameter, s.Parameter) + require.ElementsMatch(t, tt.wantStorage, s.Storage) }) } } diff --git a/internal/bcd/tezerrors/error_test.go b/internal/bcd/tezerrors/error_test.go index cb03294ba..877da51b9 100644 --- a/internal/bcd/tezerrors/error_test.go +++ b/internal/bcd/tezerrors/error_test.go @@ -2,10 +2,10 @@ package tezerrors import ( stdJSON "encoding/json" - "reflect" "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestError_parse(t *testing.T) { @@ -107,17 +107,10 @@ func TestError_parse(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - assert := assert.New(t) - var e Error - if err := json.Unmarshal([]byte(tt.errJSON), &e); err != nil { - t.Errorf("json.Unmarshal: %v", err) - return - } - - if assert.NotNil(e) && assert.NotNil(tt.ret) { - assert.Equalf(e, tt.ret, "Invalid parsed error: %##v != %##v", e.IError, tt.ret.IError) - } + err := json.Unmarshal([]byte(tt.errJSON), &e) + require.NoError(t, err) + require.Equal(t, tt.ret, e, "Invalid parsed error") }) } } @@ -144,20 +137,15 @@ func TestBalanceTooLowError_Parse(t *testing.T) { }, } - if err := LoadErrorDescriptions(); err != nil { - panic(err) - } + err := LoadErrorDescriptions() + require.NoError(t, err) + for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var e Error - if err := json.Unmarshal([]byte(tt.args), &e); err != nil { - t.Errorf("json.Unmarshal: %v", err) - return - } - - if !reflect.DeepEqual(e, tt.ret) { - t.Errorf("Invalid parsed error: %v != %v", e, tt.ret) - } + err := json.Unmarshal([]byte(tt.args), &e) + require.NoError(t, err) + require.Equal(t, tt.ret, e) }) } } @@ -246,23 +234,19 @@ func TestError_Format(t *testing.T) { }, } - if err := LoadErrorDescriptions(); err != nil { - panic(err) - } + err := LoadErrorDescriptions() + require.NoError(t, err) + for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - assert := assert.New(t) - err := tt.args.Format() - if err != nil { - t.Errorf("args format error %v", err) - return - } + require.NoError(t, err) + switch err := tt.args.IError.(type) { case *BalanceTooLowError: - assert.Equalf(err.With, tt.compareWith, "Invalid formatted with error: %v != %v", err.With, tt.compareWith) + require.Equal(t, tt.compareWith, err.With, "Invalid formatted with error") case *DefaultError: - assert.Equalf(err.With, tt.compareWith, "Invalid formatted with error: %v != %v", err.With, tt.compareWith) + assert.Equal(t, tt.compareWith, err.With, "Invalid formatted with error") } }) } @@ -290,20 +274,15 @@ func TestInvalidSyntacticConstantError_Parse(t *testing.T) { }, } - if err := LoadErrorDescriptions(); err != nil { - panic(err) - } + err := LoadErrorDescriptions() + require.NoError(t, err) + for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var e Error - if err := json.Unmarshal([]byte(tt.args), &e); err != nil { - t.Errorf("json.Unmarshal: %v", err) - return - } - - if !reflect.DeepEqual(e, tt.ret) { - t.Errorf("Invalid parsed error: %v != %v", e, tt.ret) - } + err := json.Unmarshal([]byte(tt.args), &e) + require.NoError(t, err) + require.Equal(t, tt.ret, e) }) } } diff --git a/internal/bcd/translator/converter_test.go b/internal/bcd/translator/converter_test.go index 7609ba80e..5d9d7d454 100644 --- a/internal/bcd/translator/converter_test.go +++ b/internal/bcd/translator/converter_test.go @@ -5,21 +5,15 @@ import ( "os" "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestConverter_FromFile(t *testing.T) { files, err := os.ReadDir("./tests/") - if err != nil { - t.Errorf("os.ReadDir(./tests/) error = %v", err) - return - } + require.NoError(t, err) c, err := NewConverter() - if err != nil { - t.Errorf("Converter.NewConverter() error = %v", err) - return - } + require.NoError(t, err) for _, file := range files { if !file.IsDir() { @@ -29,19 +23,13 @@ func TestConverter_FromFile(t *testing.T) { t.Run(file.Name(), func(t *testing.T) { resultFilename := fmt.Sprintf("tests/%s/code.json", file.Name()) resultBytes, err := os.ReadFile(resultFilename) - if err != nil { - t.Errorf("os.ReadFile() error = %v", err) - return - } + require.NoError(t, err) filename := fmt.Sprintf("tests/%s/code.tz", file.Name()) got, err := c.FromFile(filename) - if err != nil { - t.Errorf("Converter.FromFile() error = %v", err) - return - } + require.NoError(t, err) - assert.JSONEq(t, string(resultBytes), got, "JSON comparing") + require.JSONEq(t, string(resultBytes), got, "JSON comparing") }) } } diff --git a/internal/parsers/operations/migration_test.go b/internal/parsers/operations/migration_test.go index f25d04d32..e575d6ef4 100644 --- a/internal/parsers/operations/migration_test.go +++ b/internal/parsers/operations/migration_test.go @@ -12,7 +12,7 @@ import ( "github.com/baking-bad/bcdhub/internal/models/types" "github.com/baking-bad/bcdhub/internal/noderpc" "github.com/baking-bad/bcdhub/internal/parsers" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" ) @@ -66,10 +66,8 @@ func TestMigration_Parse(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var op noderpc.Operation - if err := readJSONFile(tt.fileName, &op); err != nil { - t.Errorf(`readJSONFile("%s") = error %v`, tt.fileName, err) - return - } + err := readJSONFile(tt.fileName, &op) + require.NoError(t, err) contractRepo. EXPECT(). @@ -78,15 +76,14 @@ func TestMigration_Parse(t *testing.T) { AnyTimes() store := parsers.NewTestStore() - if err := NewMigration(contractRepo).Parse(op, tt.operation, "PtEdoTezd3RHSC31mpxxo1npxFjoWWcFgQtxapi51Z8TLu6v6Uq", store); err != nil { - t.Errorf("Migration.Parse() = %s", err) - return - } + err = NewMigration(contractRepo).Parse(op, tt.operation, "PtEdoTezd3RHSC31mpxxo1npxFjoWWcFgQtxapi51Z8TLu6v6Uq", store) + require.NoError(t, err) + if tt.want != nil { tt.want.ID = store.Migrations[0].ID - assert.Equal(t, tt.want, store.Migrations[0]) + require.Equal(t, tt.want, store.Migrations[0]) } else { - assert.Len(t, store.Migrations, 0) + require.Len(t, store.Migrations, 0) } }) } diff --git a/internal/parsers/operations/operation_group_test.go b/internal/parsers/operations/operation_group_test.go index 8e357ba1e..a856f906c 100644 --- a/internal/parsers/operations/operation_group_test.go +++ b/internal/parsers/operations/operation_group_test.go @@ -17,6 +17,7 @@ import ( "github.com/baking-bad/bcdhub/internal/models/bigmapdiff" "github.com/baking-bad/bcdhub/internal/models/contract" modelContract "github.com/baking-bad/bcdhub/internal/models/contract" + "github.com/baking-bad/bcdhub/internal/models/migration" mock_general "github.com/baking-bad/bcdhub/internal/models/mock" mock_accounts "github.com/baking-bad/bcdhub/internal/models/mock/account" mock_bmd "github.com/baking-bad/bcdhub/internal/models/mock/bigmapdiff" @@ -29,7 +30,9 @@ import ( "github.com/baking-bad/bcdhub/internal/models/types" "github.com/baking-bad/bcdhub/internal/noderpc" "github.com/baking-bad/bcdhub/internal/parsers" + "github.com/baking-bad/bcdhub/internal/testsuite" "github.com/go-pg/pg/v10" + "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" ) @@ -451,6 +454,8 @@ func TestGroup_Parse(t *testing.T) { }, filename: "./data/rpc/opg/opJXaAMkBrAbd1XFd23kS8vXiw63tU4rLUcLrZgqUCpCbhT1Pn9.json", want: &parsers.TestStore{ + Contracts: []*contract.Contract{}, + Migrations: []*migration.Migration{}, Operations: []*operation.Operation{ { Kind: types.OperationKindTransaction, @@ -460,6 +465,8 @@ func TestGroup_Parse(t *testing.T) { }, Fee: 37300, Counter: 5791164, + ConsumedGas: 24494800, + StorageSize: 6607, GasLimit: 369423, StorageLimit: 90, Destination: account.Account{ @@ -520,14 +527,16 @@ func TestGroup_Parse(t *testing.T) { Level: 1068669, Counter: 5791164, Hash: encoding.MustDecodeBase58("opJXaAMkBrAbd1XFd23kS8vXiw63tU4rLUcLrZgqUCpCbhT1Pn9"), - Nonce: getInt64Pointer(0), + Nonce: testsuite.Ptr[int64](0), Entrypoint: types.NullString{ Str: "validateAccounts", Valid: true, }, - Internal: true, - Timestamp: timestamp, - ProtocolID: 1, + Internal: true, + Timestamp: timestamp, + ConsumedGas: 8932200, + StorageSize: 5460, + ProtocolID: 1, Initiator: account.Account{ Address: "tz1aSPEN4RTZbn4aXEsxDiix38dDmacGQ8sq", Type: types.AccountTypeTz, @@ -549,14 +558,16 @@ func TestGroup_Parse(t *testing.T) { Level: 1068669, Counter: 5791164, Hash: encoding.MustDecodeBase58("opJXaAMkBrAbd1XFd23kS8vXiw63tU4rLUcLrZgqUCpCbhT1Pn9"), - Nonce: getInt64Pointer(1), + Nonce: testsuite.Ptr[int64](1), Entrypoint: types.NullString{ Str: "validateRules", Valid: true, }, - Internal: true, - Timestamp: timestamp, - ProtocolID: 1, + Internal: true, + Timestamp: timestamp, + StorageSize: 1164, + ConsumedGas: 3505300, + ProtocolID: 1, Initiator: account.Account{ Address: "tz1aSPEN4RTZbn4aXEsxDiix38dDmacGQ8sq", Type: types.AccountTypeTz, @@ -649,6 +660,8 @@ func TestGroup_Parse(t *testing.T) { Fee: 43074, Counter: 6909186, GasLimit: 427673, + ConsumedGas: 19228300, + StorageSize: 2976, StorageLimit: 47, Destination: account.Account{ Address: "KT1Ap287P1NzsnToSJdA4aqSNjPomRaHBZSr", @@ -663,7 +676,7 @@ func TestGroup_Parse(t *testing.T) { BigMapDiffs: []*bigmapdiff.BigMapDiff{ { Ptr: 32, - Key: []byte(`{"bytes": "80729e85e284dff3a30bb24a58b37ccdf474bbbe7794aad439ba034f48d66af3"}`), + Key: []byte(`{"bytes":"80729e85e284dff3a30bb24a58b37ccdf474bbbe7794aad439ba034f48d66af3"}`), KeyHash: "exprvJp4s8RJpoXMwD9aQujxWQUiojrkeubesi3X9LDcU3taDfahYR", Level: 1151495, Contract: "KT1Ap287P1NzsnToSJdA4aqSNjPomRaHBZSr", @@ -676,7 +689,7 @@ func TestGroup_Parse(t *testing.T) { ProtocolID: 1, Hash: encoding.MustDecodeBase58("opPUPCpQu6pP38z9TkgFfwLiqVBFGSWQCH8Z2PUL3jrpxqJH5gt"), Internal: true, - Nonce: getInt64Pointer(0), + Nonce: testsuite.Ptr[int64](0), Status: types.OperationStatusApplied, Timestamp: timestamp, Level: 1151495, @@ -1044,25 +1057,25 @@ func TestGroup_Parse(t *testing.T) { BigMapActions: []*bigmapaction.BigMapAction{ { Action: types.BigMapActionRemove, - SourcePtr: getInt64Pointer(25167), + SourcePtr: testsuite.Ptr[int64](25167), Level: 72207, Address: "KT1C2MfcjWb5R1ZDDxVULCsGuxrf5fEn5264", Timestamp: timestamp, }, { Action: types.BigMapActionRemove, - SourcePtr: getInt64Pointer(25166), + SourcePtr: testsuite.Ptr[int64](25166), Level: 72207, Address: "KT1C2MfcjWb5R1ZDDxVULCsGuxrf5fEn5264", Timestamp: timestamp, }, { Action: types.BigMapActionRemove, - SourcePtr: getInt64Pointer(25165), + SourcePtr: testsuite.Ptr[int64](25165), Level: 72207, Address: "KT1C2MfcjWb5R1ZDDxVULCsGuxrf5fEn5264", Timestamp: timestamp, }, { Action: types.BigMapActionRemove, - SourcePtr: getInt64Pointer(25164), + SourcePtr: testsuite.Ptr[int64](25164), Level: 72207, Address: "KT1C2MfcjWb5R1ZDDxVULCsGuxrf5fEn5264", Timestamp: timestamp, @@ -1074,7 +1087,7 @@ func TestGroup_Parse(t *testing.T) { Address: "KT1C2MfcjWb5R1ZDDxVULCsGuxrf5fEn5264", Type: types.AccountTypeContract, }, - Nonce: getInt64Pointer(0), + Nonce: testsuite.Ptr[int64](0), Destination: account.Account{ Address: "KT1JgHoXtZPjVfG82BY3FSys2VJhKVZo2EJU", Type: types.AccountTypeContract, @@ -1098,29 +1111,29 @@ func TestGroup_Parse(t *testing.T) { BigMapActions: []*bigmapaction.BigMapAction{ { Action: types.BigMapActionCopy, - SourcePtr: getInt64Pointer(25167), - DestinationPtr: getInt64Pointer(25171), + SourcePtr: testsuite.Ptr[int64](25167), + DestinationPtr: testsuite.Ptr[int64](25171), Level: 72207, Address: "KT1JgHoXtZPjVfG82BY3FSys2VJhKVZo2EJU", Timestamp: timestamp, }, { Action: types.BigMapActionCopy, - SourcePtr: getInt64Pointer(25166), - DestinationPtr: getInt64Pointer(25170), + SourcePtr: testsuite.Ptr[int64](25166), + DestinationPtr: testsuite.Ptr[int64](25170), Level: 72207, Address: "KT1JgHoXtZPjVfG82BY3FSys2VJhKVZo2EJU", Timestamp: timestamp, }, { Action: types.BigMapActionCopy, - SourcePtr: getInt64Pointer(25165), - DestinationPtr: getInt64Pointer(25169), + SourcePtr: testsuite.Ptr[int64](25165), + DestinationPtr: testsuite.Ptr[int64](25169), Level: 72207, Address: "KT1JgHoXtZPjVfG82BY3FSys2VJhKVZo2EJU", Timestamp: timestamp, }, { Action: types.BigMapActionCopy, - SourcePtr: getInt64Pointer(25164), - DestinationPtr: getInt64Pointer(25168), + SourcePtr: testsuite.Ptr[int64](25164), + DestinationPtr: testsuite.Ptr[int64](25168), Level: 72207, Address: "KT1JgHoXtZPjVfG82BY3FSys2VJhKVZo2EJU", Timestamp: timestamp, @@ -1350,7 +1363,7 @@ func TestGroup_Parse(t *testing.T) { Timestamp: timestamp, Status: types.OperationStatusApplied, Level: 1520888, - Nonce: newInt64Ptr(0), + Nonce: testsuite.Ptr[int64](0), Counter: 10671622, ProtocolID: 4, Burned: 27000, @@ -1555,7 +1568,7 @@ func TestGroup_Parse(t *testing.T) { Type: types.AccountTypeTz, }, Status: types.OperationStatusApplied, - Nonce: newInt64Ptr(2), + Nonce: testsuite.Ptr[int64](2), Timestamp: timestamp, Level: 381735, ProtocolID: 6, @@ -1601,7 +1614,7 @@ func TestGroup_Parse(t *testing.T) { Type: types.AccountTypeTz, }, Status: types.OperationStatusApplied, - Nonce: newInt64Ptr(1), + Nonce: testsuite.Ptr[int64](1), Timestamp: timestamp, Level: 381735, ConsumedGas: 5715, @@ -1651,7 +1664,7 @@ func TestGroup_Parse(t *testing.T) { Type: types.AccountTypeTz, }, Status: types.OperationStatusApplied, - Nonce: newInt64Ptr(0), + Nonce: testsuite.Ptr[int64](0), Timestamp: timestamp, Level: 381735, ConsumedGas: 11494, @@ -1724,81 +1737,81 @@ func TestGroup_Parse(t *testing.T) { { Timestamp: timestamp, Level: 381735, - SourcePtr: newInt64Ptr(40067), - DestinationPtr: newInt64Ptr(40081), + SourcePtr: testsuite.Ptr[int64](40067), + DestinationPtr: testsuite.Ptr[int64](40081), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40080), + DestinationPtr: testsuite.Ptr[int64](40080), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - SourcePtr: newInt64Ptr(40065), - DestinationPtr: newInt64Ptr(40079), + SourcePtr: testsuite.Ptr[int64](40065), + DestinationPtr: testsuite.Ptr[int64](40079), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40078), + DestinationPtr: testsuite.Ptr[int64](40078), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40077), + DestinationPtr: testsuite.Ptr[int64](40077), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40076), + DestinationPtr: testsuite.Ptr[int64](40076), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40075), + DestinationPtr: testsuite.Ptr[int64](40075), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40074), + DestinationPtr: testsuite.Ptr[int64](40074), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40073), + DestinationPtr: testsuite.Ptr[int64](40073), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40072), + DestinationPtr: testsuite.Ptr[int64](40072), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40071), + DestinationPtr: testsuite.Ptr[int64](40071), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40070), + DestinationPtr: testsuite.Ptr[int64](40070), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, { Timestamp: timestamp, Level: 381735, - DestinationPtr: newInt64Ptr(40069), + DestinationPtr: testsuite.Ptr[int64](40069), Action: types.BigMapActionCopy, Address: "KT1BM1SyQnTzNU1J8TZv5Mdj4ScuTgNKH5uj", }, @@ -2183,24 +2196,17 @@ func TestGroup_Parse(t *testing.T) { } var op noderpc.LightOperationGroup - if err := readJSONFile(tt.filename, &op); err != nil { - t.Errorf(`readJSONFile("%s") = error %v`, tt.filename, err) - return - } + err := readJSONFile(tt.filename, &op) + require.NoError(t, err) parseParams, err := NewParseParams(tt.ctx, tt.paramsOpts...) - if err != nil { - t.Errorf(`NewParseParams = error %v`, err) - return - } + require.NoError(t, err) store := parsers.NewTestStore() - if err := NewGroup(parseParams).Parse(op, store); (err != nil) != tt.wantErr { - t.Errorf("Group.Parse() error = %v, wantErr %v", err, tt.wantErr) - return - } - if !compareParserResponse(t, store, tt.want) { - t.Errorf("Group.Parse() = %#v, want %#v", store, tt.want) + err = NewGroup(parseParams).Parse(op, store) + require.Equal(t, tt.wantErr, err != nil) + if err == nil { + compareParserResponse(t, store, tt.want) } }) } diff --git a/internal/parsers/operations/result_test.go b/internal/parsers/operations/result_test.go index c1a88de12..944ca2999 100644 --- a/internal/parsers/operations/result_test.go +++ b/internal/parsers/operations/result_test.go @@ -52,10 +52,8 @@ func Test_parseOperationResult(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var op noderpc.Operation - if err := readJSONFile(tt.fileName, &op); err != nil { - t.Errorf(`readJSONFile("%s") = error %v`, tt.fileName, err) - return - } + err := readJSONFile(tt.fileName, &op) + require.NoError(t, err) var res operation.Operation parseOperationResult(op, &res) diff --git a/internal/parsers/operations/test_common.go b/internal/parsers/operations/test_common.go index 4699ae600..2049f0720 100644 --- a/internal/parsers/operations/test_common.go +++ b/internal/parsers/operations/test_common.go @@ -11,7 +11,6 @@ import ( "github.com/baking-bad/bcdhub/internal/bcd" "github.com/baking-bad/bcdhub/internal/bcd/consts" astContract "github.com/baking-bad/bcdhub/internal/bcd/contract" - "github.com/baking-bad/bcdhub/internal/logger" "github.com/baking-bad/bcdhub/internal/models/bigmapaction" "github.com/baking-bad/bcdhub/internal/models/bigmapdiff" "github.com/baking-bad/bcdhub/internal/models/contract" @@ -20,13 +19,9 @@ import ( "github.com/baking-bad/bcdhub/internal/noderpc" "github.com/baking-bad/bcdhub/internal/parsers" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) -func newInt64Ptr(val int64) *int64 { - return &val -} - func readJSONFile(name string, response interface{}) error { f, err := os.Open(name) if err != nil { @@ -90,7 +85,6 @@ func readTestScriptModel(address, symLink string) (contract.Script, error) { }, nil } -// nolint func readTestScriptPart(address, symLink, part string) ([]byte, error) { data, err := readTestScript(address, bcd.SymLinkBabylon) if err != nil { @@ -124,294 +118,114 @@ func readTestContractModel(address string) (contract.Contract, error) { return c, err } -func compareParserResponse(t *testing.T, got, want *parsers.TestStore) bool { - if !assert.Len(t, got.BigMapState, len(want.BigMapState)) { - return false - } - if !assert.Len(t, got.Contracts, len(want.Contracts)) { - return false - } - if !assert.Len(t, got.Migrations, len(want.Migrations)) { - return false - } - if !assert.Len(t, got.Operations, len(want.Operations)) { - return false - } - if !assert.Len(t, got.GlobalConstants, len(want.GlobalConstants)) { - return false - } +func compareParserResponse(t *testing.T, got, want *parsers.TestStore) { + require.Len(t, got.BigMapState, len(want.BigMapState)) + require.Len(t, got.Contracts, len(want.Contracts)) + require.Len(t, got.Migrations, len(want.Migrations)) + require.Len(t, got.Operations, len(want.Operations)) + require.Len(t, got.GlobalConstants, len(want.GlobalConstants)) for i := range got.Contracts { - if !compareContract(t, want.Contracts[i], got.Contracts[i]) { - return false - } + compareContract(t, want.Contracts[i], got.Contracts[i]) } for i := range got.Migrations { - if !assert.Equal(t, want.Migrations[i], got.Migrations[i]) { - return false - } + require.Equal(t, want.Migrations[i], got.Migrations[i]) } for i := range got.Operations { - if !compareOperations(t, want.Operations[i], got.Operations[i]) { - return false - } + compareOperations(t, want.Operations[i], got.Operations[i]) } for i := range got.BigMapState { - if !assert.Equal(t, want.BigMapState[i], got.BigMapState[i]) { - return false - } + require.Equal(t, want.BigMapState[i], got.BigMapState[i]) } for i := range got.GlobalConstants { - if !assert.Equal(t, want.GlobalConstants[i], got.GlobalConstants[i]) { - return false - } + require.Equal(t, want.GlobalConstants[i], got.GlobalConstants[i]) } - - return true } -func compareOperations(t *testing.T, one, two *operation.Operation) bool { - if one.Internal != two.Internal { - logger.Info().Msgf("Internal: %v != %v", one.Internal, two.Internal) - return false - } - if !compareInt64Ptr(one.Nonce, two.Nonce) { - logger.Info().Msgf("Operation.Nonce: %d != %d", *one.Nonce, *two.Nonce) - return false - } - if one.Timestamp != two.Timestamp { - logger.Info().Msgf("Timestamp: %s != %s", one.Timestamp, two.Timestamp) - return false - } - if one.Level != two.Level { - logger.Info().Msgf("Level: %d != %d", one.Level, two.Level) - return false - } - if one.ContentIndex != two.ContentIndex { - logger.Info().Msgf("ContentIndex: %d != %d", one.ContentIndex, two.ContentIndex) - return false - } - if one.Counter != two.Counter { - logger.Info().Msgf("Counter: %d != %d", one.Counter, two.Counter) - return false - } - if one.GasLimit != two.GasLimit { - logger.Info().Msgf("GasLimit: %d != %d", one.GasLimit, two.GasLimit) - return false - } - if one.StorageLimit != two.StorageLimit { - logger.Info().Msgf("StorageLimit: %d != %d", one.StorageLimit, two.StorageLimit) - return false - } - if one.Fee != two.Fee { - logger.Info().Msgf("Fee: %d != %d", one.Fee, two.Fee) - return false - } - if one.Amount != two.Amount { - logger.Info().Msgf("Amount: %d != %d", one.Amount, two.Amount) - return false - } - if one.Burned != two.Burned { - logger.Info().Msgf("Burned: %d != %d", one.Burned, two.Burned) - return false - } - if one.AllocatedDestinationContractBurned != two.AllocatedDestinationContractBurned { - logger.Info().Msgf("AllocatedDestinationContractBurned: %d != %d", one.AllocatedDestinationContractBurned, two.AllocatedDestinationContractBurned) - return false - } - if one.ProtocolID != two.ProtocolID { - logger.Info().Msgf("Protocol: %d != %d", one.ProtocolID, two.ProtocolID) - return false - } - if !bytes.Equal(one.Hash, two.Hash) { - logger.Info().Msgf("Hash: %s != %s", one.Hash, two.Hash) - return false - } - if one.Status != two.Status { - logger.Info().Msgf("Status: %s != %s", one.Status, two.Status) - return false - } - if one.Kind != two.Kind { - logger.Info().Msgf("Kind: %s != %s", one.Kind, two.Kind) - return false - } - if !assert.Equal(t, one.Initiator, two.Initiator) { - return false - } - if !assert.Equal(t, one.Source, two.Source) { - return false - } - if !assert.Equal(t, one.Destination, two.Destination) { - return false - } - if !assert.Equal(t, one.Delegate, two.Delegate) { - return false - } - if one.Entrypoint != two.Entrypoint { - logger.Info().Msgf("Entrypoint: %s != %s", one.Entrypoint, two.Entrypoint) - return false - } - if len(one.Parameters) > 0 && len(two.Parameters) > 0 { - if !assert.JSONEq(t, string(one.Parameters), string(two.Parameters)) { - logger.Info().Msgf("Parameters: %s != %s", one.Parameters, two.Parameters) - return false - } - } - if len(one.DeffatedStorage) > 0 && len(two.DeffatedStorage) > 0 { - if !assert.JSONEq(t, string(one.DeffatedStorage), string(two.DeffatedStorage)) { - logger.Info().Msgf("DeffatedStorage: %s != %s", one.DeffatedStorage, two.DeffatedStorage) - return false - } - } - if one.Tags != two.Tags { - logger.Info().Msgf("Tags: %d != %d", one.Tags, two.Tags) - return false +func compareOperations(t *testing.T, want, got *operation.Operation) { + require.EqualValues(t, want.Internal, got.Internal) + compareInt64Ptr(t, want.Nonce, got.Nonce) + require.EqualValues(t, want.Timestamp, got.Timestamp) + require.EqualValues(t, want.Level, got.Level) + require.EqualValues(t, want.ContentIndex, got.ContentIndex) + require.EqualValues(t, want.Counter, got.Counter) + require.EqualValues(t, want.GasLimit, got.GasLimit) + require.EqualValues(t, want.StorageLimit, got.StorageLimit) + require.EqualValues(t, want.Fee, got.Fee) + require.EqualValues(t, want.Amount, got.Amount) + require.EqualValues(t, want.Burned, got.Burned) + require.EqualValues(t, want.AllocatedDestinationContractBurned, got.AllocatedDestinationContractBurned) + require.EqualValues(t, want.ProtocolID, got.ProtocolID) + require.Equal(t, want.Hash, got.Hash) + require.EqualValues(t, want.Status, got.Status) + require.EqualValues(t, want.Kind, got.Kind) + require.Equal(t, want.Initiator, got.Initiator) + require.Equal(t, want.Source, got.Source) + require.Equal(t, want.Destination, got.Destination) + require.Equal(t, want.Delegate, got.Delegate) + require.Equal(t, want.Entrypoint, got.Entrypoint) + compareBytesArray(t, want.Parameters, got.Parameters) + compareBytesArray(t, want.DeffatedStorage, got.DeffatedStorage) + require.EqualValues(t, want.Tags, got.Tags) + require.Len(t, got.BigMapDiffs, len(want.BigMapDiffs)) + require.Len(t, got.BigMapActions, len(want.BigMapActions)) + + for i := range want.BigMapDiffs { + compareBigMapDiff(t, want.BigMapDiffs[i], got.BigMapDiffs[i]) + } + + for i := range want.BigMapActions { + compareBigMapAction(t, want.BigMapActions[i], got.BigMapActions[i]) } - - if len(one.BigMapDiffs) != len(two.BigMapDiffs) { - logger.Info().Msgf("BigMapDiffs length: %d != %d", len(one.BigMapDiffs), len(two.BigMapDiffs)) - return false - } - - if one.BigMapDiffs != nil && two.BigMapDiffs != nil { - for i := range one.BigMapDiffs { - if !compareBigMapDiff(t, one.BigMapDiffs[i], two.BigMapDiffs[i]) { - return false - } - } - } - - if !assert.Len(t, one.BigMapActions, len(two.BigMapActions)) { - return false - } - if one.BigMapActions != nil && two.BigMapActions != nil { - for i := range one.BigMapActions { - if !compareBigMapAction(one.BigMapActions[i], two.BigMapActions[i]) { - return false - } - } - } - - return true } -func compareBigMapDiff(t *testing.T, one, two *bigmapdiff.BigMapDiff) bool { - if one.Contract != two.Contract { - logger.Info().Msgf("BigMapDiff.Address: %s != %s", one.Contract, two.Contract) - return false - } - if one.KeyHash != two.KeyHash { - logger.Info().Msgf("KeyHash: %s != %s", one.KeyHash, two.KeyHash) - return false - } - if len(one.Value) > 0 || len(two.Value) > 0 { - if !assert.JSONEq(t, string(one.ValueBytes()), string(two.ValueBytes())) { - return false - } - } - if one.Level != two.Level { - logger.Info().Msgf("Level: %d != %d", one.Level, two.Level) - return false - } - if one.Timestamp != two.Timestamp { - logger.Info().Msgf("Timestamp: %s != %s", one.Timestamp, two.Timestamp) - return false - } - if one.ProtocolID != two.ProtocolID { - logger.Info().Msgf("Protocol: %d != %d", one.ProtocolID, two.ProtocolID) - return false - } - if one.Ptr != two.Ptr { - logger.Info().Msgf("Ptr: %d != %d", one.Ptr, two.Ptr) - return false - } - if !assert.JSONEq(t, string(one.KeyBytes()), string(two.KeyBytes())) { - return false - } - return true +func compareBigMapDiff(t *testing.T, want, got *bigmapdiff.BigMapDiff) { + require.EqualValues(t, want.Contract, got.Contract) + require.EqualValues(t, want.KeyHash, got.KeyHash) + require.EqualValues(t, want.Level, got.Level) + require.EqualValues(t, want.Timestamp, got.Timestamp) + require.EqualValues(t, want.ProtocolID, got.ProtocolID) + require.EqualValues(t, want.Ptr, got.Ptr) + compareBytesArray(t, want.KeyBytes(), got.KeyBytes()) + compareBytesArray(t, want.ValueBytes(), got.ValueBytes()) } -func compareBigMapAction(one, two *bigmapaction.BigMapAction) bool { - if one.Action != two.Action { - logger.Info().Msgf("Action: %s != %s", one.Action, two.Action) - return false +func compareBytesArray(t *testing.T, want, got []byte) { + if len(want) > 0 { + require.JSONEq(t, string(want), string(got)) } - if !compareInt64Ptr(one.SourcePtr, two.SourcePtr) { - logger.Info().Msgf("SourcePtr: %d != %d", *one.SourcePtr, *two.SourcePtr) - return false - } - if !compareInt64Ptr(one.DestinationPtr, two.DestinationPtr) { - logger.Info().Msgf("DestinationPtr: %d != %d", *one.DestinationPtr, *two.DestinationPtr) - return false - } - if one.Level != two.Level { - logger.Info().Msgf("Level: %d != %d", one.Level, two.Level) - return false - } - if one.Address != two.Address { - logger.Info().Msgf("BigMapAction.Address: %s != %s", one.Address, two.Address) - return false - } - if one.Timestamp != two.Timestamp { - logger.Info().Msgf("Timestamp: %s != %s", one.Timestamp, two.Timestamp) - return false - } - return true } -func compareContract(t *testing.T, one, two *contract.Contract) bool { - if !assert.Equal(t, one.Account, two.Account) { - return false - } - if !assert.Equal(t, one.Manager, two.Manager) { - return false - } - if !assert.Equal(t, one.Level, two.Level) { - return false - } - if !assert.Equal(t, one.Timestamp, two.Timestamp) { - return false - } - if !assert.Equal(t, one.Tags, two.Tags) { - return false - } - if !compareScript(t, one.Alpha, two.Alpha) { - logger.Info().Msgf("Contract.Alpha: %v != %v", one.Alpha, two.Alpha) - return false - } - if !compareScript(t, one.Babylon, two.Babylon) { - logger.Info().Msgf("Contract.Babylon: %v != %v", one.Babylon, two.Babylon) - return false - } - return true +func compareBigMapAction(t *testing.T, want, got *bigmapaction.BigMapAction) { + require.EqualValues(t, want.Action, got.Action) + compareInt64Ptr(t, want.SourcePtr, got.SourcePtr) + compareInt64Ptr(t, want.DestinationPtr, got.DestinationPtr) + require.EqualValues(t, want.Level, got.Level) + require.EqualValues(t, want.Address, got.Address) + require.EqualValues(t, want.Timestamp, got.Timestamp) } -func compareScript(t *testing.T, one, two contract.Script) bool { - if !assert.Equal(t, one.Hash, two.Hash) { - return false - } - if !assert.ElementsMatch(t, one.Entrypoints, two.Entrypoints) { - return false - } - if !assert.ElementsMatch(t, one.Annotations, two.Annotations) { - return false - } - if !assert.ElementsMatch(t, one.FailStrings, two.FailStrings) { - return false - } - if !assert.ElementsMatch(t, one.Hardcoded, two.Hardcoded) { - return false - } - if !assert.ElementsMatch(t, one.Code, two.Code) { - return false - } - return true +func compareContract(t *testing.T, want, got *contract.Contract) { + require.Equal(t, want.Account, got.Account) + require.Equal(t, want.Manager, got.Manager) + require.Equal(t, want.Level, got.Level) + require.Equal(t, want.Timestamp, got.Timestamp) + require.Equal(t, want.Tags, got.Tags) + compareScript(t, want.Alpha, got.Alpha) + compareScript(t, want.Babylon, got.Babylon) } -func compareInt64Ptr(one, two *int64) bool { - return (one != nil && two != nil && *one == *two) || (one == nil && two == nil) +func compareScript(t *testing.T, want, got contract.Script) { + require.Equal(t, want.Hash, got.Hash) + require.ElementsMatch(t, want.Entrypoints, got.Entrypoints) + require.ElementsMatch(t, want.Annotations, got.Annotations) + require.ElementsMatch(t, want.FailStrings, got.FailStrings) + require.ElementsMatch(t, want.Hardcoded, got.Hardcoded) + require.ElementsMatch(t, want.Code, got.Code) } -func getInt64Pointer(x int64) *int64 { - return &x +func compareInt64Ptr(t *testing.T, want, got *int64) { + require.Condition(t, func() (success bool) { + return (want != nil && got != nil && *want == *got) || (want == nil && got == nil) + }) } diff --git a/internal/parsers/stacktrace/stacktrace_test.go b/internal/parsers/stacktrace/stacktrace_test.go index 0538d5427..f54c6bdd4 100644 --- a/internal/parsers/stacktrace/stacktrace_test.go +++ b/internal/parsers/stacktrace/stacktrace_test.go @@ -2,6 +2,8 @@ package stacktrace import ( "testing" + + "github.com/stretchr/testify/require" ) func setInt64(x int64) *int64 { @@ -35,9 +37,8 @@ func Test_GetID(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := tt.sti.GetID(); got != tt.want { - t.Errorf("getStackTraceID() = %v, want %v", got, tt.want) - } + got := tt.sti.GetID() + require.Equal(t, tt.want, got) }) } } @@ -101,9 +102,8 @@ func TestStackTraceItem_gtNonce(t *testing.T) { sti := &Item{ nonce: tt.fields.nonce, } - if got := sti.gtNonce(tt.nonce); got != tt.want { - t.Errorf("StackTraceItem.gtNonce() = %v, want %v", got, tt.want) - } + got := sti.gtNonce(tt.nonce) + require.Equal(t, tt.want, got) }) } } diff --git a/internal/parsers/storage/alpha_test.go b/internal/parsers/storage/alpha_test.go index e134b24d9..90f55f361 100644 --- a/internal/parsers/storage/alpha_test.go +++ b/internal/parsers/storage/alpha_test.go @@ -9,7 +9,7 @@ import ( "github.com/baking-bad/bcdhub/internal/models/operation" "github.com/baking-bad/bcdhub/internal/noderpc" "github.com/baking-bad/bcdhub/internal/parsers" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestAlpha_ParseOrigination(t *testing.T) { @@ -70,25 +70,23 @@ func TestAlpha_ParseOrigination(t *testing.T) { a := NewAlpha() var content noderpc.Operation - if err := json.UnmarshalFromString(tt.args.content, &content); err != nil { - t.Errorf("Alpha.UnmarshalFromString() error = %v", err) - return - } + err := json.UnmarshalFromString(tt.args.content, &content) + require.NoError(t, err) tree, err := ast.NewScriptWithoutCode(tt.args.operation.Script) - if err != nil { - t.Errorf("NewScriptWithoutCode() error = %v", err) - return - } + require.NoError(t, err) + tt.args.operation.AST = tree store := parsers.NewTestStore() - if err := a.ParseOrigination(content, &tt.args.operation, store); (err != nil) != tt.wantErr { - t.Errorf("Alpha.ParseOrigination() error = %v, wantErr %v", err, tt.wantErr) + err = a.ParseOrigination(content, &tt.args.operation, store) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - assert.Len(t, store.BigMapState, len(tt.want.BigMapState)) - assert.Len(t, tt.args.operation.BigMapDiffs, len(tt.wantOperation.BigMapDiffs)) + + require.Len(t, store.BigMapState, len(tt.want.BigMapState)) + require.Len(t, tt.args.operation.BigMapDiffs, len(tt.wantOperation.BigMapDiffs)) for i := range tt.wantOperation.BigMapDiffs { tt.wantOperation.BigMapDiffs[i].ID = tt.args.operation.BigMapDiffs[i].GetID() @@ -97,10 +95,10 @@ func TestAlpha_ParseOrigination(t *testing.T) { for i := range tt.want.BigMapState { tt.want.BigMapState[i].ID = store.BigMapState[i].GetID() } - assert.Equal(t, tt.wantOperation.BigMapDiffs, tt.args.operation.BigMapDiffs) - assert.Equal(t, tt.want.BigMapState, store.BigMapState) + require.Equal(t, tt.wantOperation.BigMapDiffs, tt.args.operation.BigMapDiffs) + require.Equal(t, tt.want.BigMapState, store.BigMapState) - assert.Equal(t, tt.wantOperation.DeffatedStorage, tt.args.operation.DeffatedStorage) + require.Equal(t, tt.wantOperation.DeffatedStorage, tt.args.operation.DeffatedStorage) }) } } diff --git a/internal/parsers/storage/babylon_test.go b/internal/parsers/storage/babylon_test.go index f8a944cfa..1d5ae3942 100644 --- a/internal/parsers/storage/babylon_test.go +++ b/internal/parsers/storage/babylon_test.go @@ -10,7 +10,7 @@ import ( "github.com/baking-bad/bcdhub/internal/models/types" "github.com/baking-bad/bcdhub/internal/noderpc" "github.com/baking-bad/bcdhub/internal/parsers" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" mock_bmd "github.com/baking-bad/bcdhub/internal/models/mock/bigmapdiff" "go.uber.org/mock/gomock" @@ -94,28 +94,24 @@ func TestBabylon_ParseTransaction(t *testing.T) { AnyTimes() var content noderpc.Operation - if err := json.UnmarshalFromString(tt.args.content, &content); err != nil { - t.Errorf("UnmarshalFromString error = %v", err) - return - } + err := json.UnmarshalFromString(tt.args.content, &content) + require.NoError(t, err) tree, err := ast.NewScriptWithoutCode(tt.args.operation.Script) - if err != nil { - t.Errorf("NewScriptWithoutCode() error = %v", err) - return - } + require.NoError(t, err) tt.args.operation.AST = tree store := parsers.NewTestStore() - if err := b.ParseTransaction(content, &tt.args.operation, store); (err != nil) != tt.wantErr { - t.Errorf("Babylon.ParseTransaction() error = %v, wantErr %v", err, tt.wantErr) + err = b.ParseTransaction(content, &tt.args.operation, store) + require.Equal(t, tt.wantErr, err != nil) + if err != nil { return } - assert.Equal(t, tt.wantOperation.DeffatedStorage, tt.args.operation.DeffatedStorage) + require.Equal(t, tt.wantOperation.DeffatedStorage, tt.args.operation.DeffatedStorage) - assert.Len(t, tt.args.operation.BigMapDiffs, len(tt.wantOperation.BigMapDiffs)) - assert.Len(t, store.BigMapState, len(tt.want.BigMapState)) + require.Len(t, tt.args.operation.BigMapDiffs, len(tt.wantOperation.BigMapDiffs)) + require.Len(t, store.BigMapState, len(tt.want.BigMapState)) for i := range tt.wantOperation.BigMapDiffs { tt.wantOperation.BigMapDiffs[i].ID = tt.args.operation.BigMapDiffs[i].GetID() @@ -125,8 +121,8 @@ func TestBabylon_ParseTransaction(t *testing.T) { tt.want.BigMapState[i].ID = store.BigMapState[i].GetID() } - assert.Equal(t, tt.wantOperation.BigMapDiffs, tt.args.operation.BigMapDiffs) - assert.Equal(t, tt.want.BigMapState, store.BigMapState) + require.Equal(t, tt.wantOperation.BigMapDiffs, tt.args.operation.BigMapDiffs) + require.Equal(t, tt.want.BigMapState, store.BigMapState) }) } } diff --git a/internal/parsers/storage/helpers_test.go b/internal/parsers/storage/helpers_test.go index 0eec18718..550a25b5b 100644 --- a/internal/parsers/storage/helpers_test.go +++ b/internal/parsers/storage/helpers_test.go @@ -1,16 +1,16 @@ package storage import ( - "reflect" "testing" + + "github.com/stretchr/testify/require" ) func Test_GetStrings(t *testing.T) { tests := []struct { - name string - data []byte - want []string - wantErr bool + name string + data []byte + want []string }{ { name: "test 1", @@ -31,13 +31,8 @@ func Test_GetStrings(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := GetStrings(tt.data) - if (err != nil) != tt.wantErr { - t.Errorf("GetStrings() error = %v, wantErr %v", err, tt.wantErr) - return - } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("GetStrings() = %v, want %v", got, tt.want) - } + require.NoError(t, err) + require.Equal(t, tt.want, got) }) } } diff --git a/internal/testsuite/functions.go b/internal/testsuite/functions.go new file mode 100644 index 000000000..70c5a6e4c --- /dev/null +++ b/internal/testsuite/functions.go @@ -0,0 +1,5 @@ +package testsuite + +func Ptr[T any](val T) *T { + return &val +} diff --git a/internal/tzbase58/tzbase58_test.go b/internal/tzbase58/tzbase58_test.go index c1c0355d8..55668a0fb 100644 --- a/internal/tzbase58/tzbase58_test.go +++ b/internal/tzbase58/tzbase58_test.go @@ -1,6 +1,10 @@ package tzbase58 -import "testing" +import ( + "testing" + + "github.com/stretchr/testify/require" +) func TestEncodeFromHex(t *testing.T) { tests := []struct { @@ -110,14 +114,8 @@ func TestEncodeFromHex(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result, err := EncodeFromHex(tt.input, tt.prefix) - if err != nil { - t.Errorf("Error in encodeFromHex: %v", err) - return - } - - if result != tt.res { - t.Errorf("Invalid base58 encoding. Got: %v, Expected: %v", result, tt.res) - } + require.NoError(t, err) + require.Equal(t, tt.res, result) }) } } @@ -151,9 +149,8 @@ func TestEncodeFromBytes(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if result := EncodeFromBytes(tt.input, tt.prefix); result != tt.res { - t.Errorf("Invalid base58 encoding. Got: %v, Expected: %v", result, tt.res) - } + result := EncodeFromBytes(tt.input, tt.prefix) + require.Equal(t, tt.res, result) }) } } @@ -206,14 +203,8 @@ func TestDecodeToHex(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result, err := DecodeToHex(tt.input, tt.prefix) - if err != nil { - t.Errorf("Error in DecodeFromHex: %v", err) - return - } - - if result != tt.res { - t.Errorf("Invalid base58 decoding. Got: %v, Expected: %v", result, tt.res) - } + require.NoError(t, err) + require.Equal(t, tt.res, result) }) } }