diff --git a/.circleci/config.yml b/.circleci/config.yml index dfe72e90..8ea3d3f3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ version: 2.1 orbs: - go: circleci/go@1.11.0 + go: circleci/go@1.12.0 workflows: circleci_build_and_test: @@ -10,7 +10,7 @@ workflows: name: 'test_go_<< matrix.go_version >>' matrix: parameters: - go_version: ['1.21.10'] + go_version: ['1.23.3'] jobs: test: diff --git a/.github/workflows/codegen.yml b/.github/workflows/codegen.yml index 197fae69..12fe4328 100644 --- a/.github/workflows/codegen.yml +++ b/.github/workflows/codegen.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4 - name: Generate and PR uses: algorand/generator/.github/actions/sdk-codegen/@master with: diff --git a/.github/workflows/create-release-pr.yml b/.github/workflows/create-release-pr.yml index 3705b630..4547dfcf 100644 --- a/.github/workflows/create-release-pr.yml +++ b/.github/workflows/create-release-pr.yml @@ -43,7 +43,7 @@ jobs: fi - name: Checkout - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -159,7 +159,7 @@ jobs: - name: Send Slack Message id: slack - uses: slackapi/slack-github-action@v1.24.0 + uses: slackapi/slack-github-action@v1.27.0 env: RELEASE_TAG: ${{ steps.set-release.outputs.release-tag }} SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/pr-type-category.yml b/.github/workflows/pr-type-category.yml index c33fce94..ed298332 100644 --- a/.github/workflows/pr-type-category.yml +++ b/.github/workflows/pr-type-category.yml @@ -10,7 +10,7 @@ jobs: name: Check PR Category and Type steps: - name: Checking for correct number of required github pr labels - uses: mheap/github-action-required-labels@v2 + uses: mheap/github-action-required-labels@v5 with: mode: exactly count: 1 diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index a595b8bf..671d90aa 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -6,23 +6,23 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4 with: fetch-depth: 0 # required for new-from-rev option in .golangci.yml - name: Install specific golang - uses: actions/setup-go@v4.0.1 + uses: actions/setup-go@v5 with: - go-version: '1.21.10' + go-version: '1.23.3' - name: Check format run: test -z `go fmt ./...` - name: Vet run: go vet ./... - name: reviewdog-golangci-lint - uses: reviewdog/action-golangci-lint@v2.6.1 + uses: reviewdog/action-golangci-lint@v2.6.2 with: - golangci_lint_version: "v1.58.0" + golangci_lint_version: "v1.62.0" golangci_lint_flags: "-c .golangci.yml --allow-parallel-runners" - go_version: "1.21.10" + go_version: "1.23.3" reporter: "github-pr-review" tool_name: "Lint Errors" level: "error" diff --git a/.golangci.yml b/.golangci.yml index a62927aa..3a1fdf35 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,15 +1,12 @@ run: timeout: 5m tests: false - skip-dirs: - # Don't run linter on generated files - - client/v2 linters: disable-all: true enable: - errcheck - - exportloopref + - copyloopvar - gci - gofmt - gosimple @@ -66,7 +63,11 @@ issues: - Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked # "EXC0005 staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore" - ineffective break statement. Did you mean to break out of the outer loop - + + exclude-dirs: + # Don't run linter on generated files + - client/v2 + exclude-rules: # Test utilities and helpers may have code that look unused, but is being used in another file - path: test/helpers.go diff --git a/go.mod b/go.mod index 5d6b86ea..761b6001 100644 --- a/go.mod +++ b/go.mod @@ -1,20 +1,27 @@ module github.com/algorand/go-algorand-sdk/v2 -go 1.21 +go 1.23 -toolchain go1.21.10 +toolchain go1.23.3 require ( - github.com/algorand/avm-abi v0.1.1 + github.com/algorand/avm-abi v0.2.0 github.com/algorand/go-codec/codec v1.1.10 - github.com/cucumber/godog v0.8.1 - github.com/google/go-querystring v1.0.0 - github.com/stretchr/testify v1.7.1 - golang.org/x/crypto v0.17.0 + github.com/cucumber/godog v0.14.1 + github.com/google/go-querystring v1.1.0 + github.com/stretchr/testify v1.9.0 + golang.org/x/crypto v0.29.0 ) require ( + github.com/cucumber/gherkin/go/v26 v26.2.0 // indirect + github.com/cucumber/messages/go/v21 v21.0.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/gofrs/uuid v4.3.1+incompatible // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-memdb v1.3.4 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - gopkg.in/yaml.v3 v3.0.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index fc55739b..61529467 100644 --- a/go.sum +++ b/go.sum @@ -1,26 +1,64 @@ -github.com/algorand/avm-abi v0.1.1 h1:dbyQKzXiyaEbzpmqXFB30yAhyqseBsyqXTyZbNbkh2Y= -github.com/algorand/avm-abi v0.1.1/go.mod h1:+CgwM46dithy850bpTeHh9MC99zpn2Snirb3QTl2O/g= +github.com/algorand/avm-abi v0.2.0 h1:bkjsG+BOEcxUcnGSALLosmltE0JZdg+ZisXKx0UDX2k= +github.com/algorand/avm-abi v0.2.0/go.mod h1:+CgwM46dithy850bpTeHh9MC99zpn2Snirb3QTl2O/g= github.com/algorand/go-codec/codec v1.1.10 h1:zmWYU1cp64jQVTOG8Tw8wa+k0VfwgXIPbnDfiVa+5QA= github.com/algorand/go-codec/codec v1.1.10/go.mod h1:YkEx5nmr/zuCeaDYOIhlDg92Lxju8tj2d2NrYqP7g7k= github.com/chrismcguire/gobberish v0.0.0-20150821175641-1d8adb509a0e h1:CHPYEbz71w8DqJ7DRIq+MXyCQsdibK08vdcQTY4ufas= github.com/chrismcguire/gobberish v0.0.0-20150821175641-1d8adb509a0e/go.mod h1:6Xhs0ZlsRjXLIiSMLKafbZxML/j30pg9Z1priLuha5s= -github.com/cucumber/godog v0.8.1 h1:lVb+X41I4YDreE+ibZ50bdXmySxgRviYFgKY6Aw4XE8= -github.com/cucumber/godog v0.8.1/go.mod h1:vSh3r/lM+psC1BPXvdkSEuNjmXfpVqrMGYAElF6hxnA= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cucumber/gherkin/go/v26 v26.2.0 h1:EgIjePLWiPeslwIWmNQ3XHcypPsWAHoMCz/YEBKP4GI= +github.com/cucumber/gherkin/go/v26 v26.2.0/go.mod h1:t2GAPnB8maCT4lkHL99BDCVNzCh1d7dBhCLt150Nr/0= +github.com/cucumber/godog v0.14.1 h1:HGZhcOyyfaKclHjJ+r/q93iaTJZLKYW6Tv3HkmUE6+M= +github.com/cucumber/godog v0.14.1/go.mod h1:FX3rzIDybWABU4kuIXLZ/qtqEe1Ac5RdXmqvACJOces= +github.com/cucumber/messages/go/v21 v21.0.1 h1:wzA0LxwjlWQYZd32VTlAVDTkW6inOFmSM+RuOwHZiMI= +github.com/cucumber/messages/go/v21 v21.0.1/go.mod h1:zheH/2HS9JLVFukdrsPWoPdmUtmYQAQPLk7w5vWsk5s= +github.com/cucumber/messages/go/v22 v22.0.0/go.mod h1:aZipXTKc0JnjCsXrJnuZpWhtay93k7Rn3Dee7iyPJjs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.3.1+incompatible h1:0/KbAdpx3UXAx1kEOWHJeOkpbgRFGHVgv+CFIY7dBJI= +github.com/gofrs/uuid v4.3.1+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= +github.com/hashicorp/go-immutable-radix v1.3.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-memdb v1.3.4 h1:XSL3NR682X/cVk2IeV0d70N4DZ9ljI885xAEU8IoK3c= +github.com/hashicorp/go-memdb v1.3.4/go.mod h1:uBTr1oQbtuMgd1SSGoR8YV27eT3sBHbYiNm53bMpgSg= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -42,9 +80,11 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/test/algodclientv2_test.go b/test/algodclientv2_test.go index 21b26eab..e49bc5e9 100644 --- a/test/algodclientv2_test.go +++ b/test/algodclientv2_test.go @@ -13,7 +13,7 @@ import ( "github.com/cucumber/godog" ) -func AlgodClientV2Context(s *godog.Suite) { +func AlgodClientV2Context(s *godog.ScenarioContext) { s.Step(`^mock http responses in "([^"]*)" loaded from "([^"]*)"$`, mockHttpResponsesInLoadedFrom) s.Step(`^expect error string to contain "([^"]*)"$`, expectErrorStringToContain) s.Step(`^we make any Pending Transaction Information call$`, weMakeAnyPendingTransactionInformationCall) @@ -66,8 +66,9 @@ func AlgodClientV2Context(s *godog.Suite) { s.Step(`^we make a TransactionGroupLedgerStateDeltaForRoundResponse call for round (\d+)$`, weMakeATransactionGroupLedgerStateDeltaForRoundResponseCallForRound) s.Step(`^we make a GetBlockTxids call against block number (\d+)$`, weMakeAGetBlockTxidsCallAgainstBlockNumber) - s.BeforeScenario(func(interface{}) { + s.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) { globalErrForExamination = nil + return ctx, nil }) } diff --git a/test/applications_integration_test.go b/test/applications_integration_test.go index 9003f4a4..710830b5 100644 --- a/test/applications_integration_test.go +++ b/test/applications_integration_test.go @@ -969,7 +969,7 @@ func indexerSaysCurrentAppShouldHaveTheseBoxes(max int, next string, encodedBoxe } // @applications.verified and @applications.boxes -func ApplicationsContext(s *godog.Suite) { +func ApplicationsContext(s *godog.ScenarioContext) { s.Step(`^an algod v(\d+) client connected to "([^"]*)" port (\d+) with token "([^"]*)"$`, anAlgodVClientConnectedToPortWithToken) s.Step(`^I create a new transient account and fund it with (\d+) microalgos\.$`, iCreateANewTransientAccountAndFundItWithMicroalgos) s.Step(`^I build an application transaction with the transient account, the current application, suggested params, operation "([^"]*)", approval-program "([^"]*)", clear-program "([^"]*)", global-bytes (\d+), global-ints (\d+), local-bytes (\d+), local-ints (\d+), app-args "([^"]*)", foreign-apps "([^"]*)", foreign-assets "([^"]*)", app-accounts "([^"]*)", extra-pages (\d+), boxes "([^"]*)"$`, iBuildAnApplicationTransaction) diff --git a/test/applications_unit_test.go b/test/applications_unit_test.go index 6fd19d8c..5a56eff8 100644 --- a/test/applications_unit_test.go +++ b/test/applications_unit_test.go @@ -71,7 +71,7 @@ func weMakeALookupApplicationsCall(applicationID int) error { return nil } -func ApplicationsUnitContext(s *godog.Suite) { +func ApplicationsUnitContext(s *godog.ScenarioContext) { // @unit.transactions s.Step(`^fee field is in txn$`, feeFieldIsInTxn) s.Step(`^fee field not in txn$`, feeFieldNotInTxn) diff --git a/test/docker/Dockerfile b/test/docker/Dockerfile index 322707f0..0052bed4 100644 --- a/test/docker/Dockerfile +++ b/test/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG GO_IMAGE=golang:1.21.10 +ARG GO_IMAGE=golang:1.23.3 FROM $GO_IMAGE # Copy SDK code into the container diff --git a/test/indexer_unit_test.go b/test/indexer_unit_test.go index 4e9f915e..ca678bae 100644 --- a/test/indexer_unit_test.go +++ b/test/indexer_unit_test.go @@ -10,7 +10,7 @@ import ( "github.com/cucumber/godog" ) -func IndexerUnitTestContext(s *godog.Suite) { +func IndexerUnitTestContext(s *godog.ScenarioContext) { s.Step(`^we make any LookupAssetBalances call$`, weMakeAnyLookupAssetBalancesCall) s.Step(`^the parsed LookupAssetBalances response should be valid on round (\d+), and contain an array of len (\d+) and element number (\d+) should have address "([^"]*)" amount (\d+) and frozen state "([^"]*)"$`, theParsedResponseShouldEqualTheMockResponse) s.Step(`^we make any LookupAssetTransactions call$`, weMakeAnyLookupAssetTransactionsCall) @@ -56,8 +56,9 @@ func IndexerUnitTestContext(s *godog.Suite) { s.Step(`^we make a Lookup Block call against round (\d+) and header "([^"]*)"$`, weMakeALookupBlockCallAgainstRoundAndHeader) s.Step(`^we make a LookupApplicationBoxByIDandName call with applicationID (\d+) with encoded box name "([^"]*)"$`, weMakeALookupApplicationBoxByIDandName) s.Step(`^we make a SearchForApplicationBoxes call with applicationID (\d+) with max (\d+) nextToken "([^"]*)"$`, weMakeASearchForApplicationBoxes) - s.BeforeScenario(func(interface{}) { + s.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) { globalErrForExamination = nil + return ctx, nil }) } diff --git a/test/responses_unit_test.go b/test/responses_unit_test.go index ad299696..bd13b558 100644 --- a/test/responses_unit_test.go +++ b/test/responses_unit_test.go @@ -235,7 +235,7 @@ func theParsedResponseShouldEqualTheMockResponse() error { return VerifyResponse(baselinePath, responseJson) } -func ResponsesContext(s *godog.Suite) { +func ResponsesContext(s *godog.ScenarioContext) { s.Step(`^mock http responses in "([^"]*)" loaded from "([^"]*)" with status (\d+)\.$`, mockHttpResponsesInLoadedFromWithStatus) s.Step(`^we make any "([^"]*)" call to "([^"]*)"\.$`, weMakeAnyCallTo) s.Step(`^the parsed response should equal the mock response\.$`, theParsedResponseShouldEqualTheMockResponse) diff --git a/test/steps_test.go b/test/steps_test.go index bd5dbd80..484eff8f 100644 --- a/test/steps_test.go +++ b/test/steps_test.go @@ -206,15 +206,19 @@ func TestMain(m *testing.M) { flag.Parse() opt.Paths = flag.Args() - status := godog.RunWithOptions("godogs", func(s *godog.Suite) { - FeatureContext(s) - AlgodClientV2Context(s) - IndexerUnitTestContext(s) - TransactionsUnitContext(s) - ApplicationsContext(s) - ApplicationsUnitContext(s) - ResponsesContext(s) - }, opt) + status := godog.TestSuite{ + Name: "godogs", + ScenarioInitializer: func(s *godog.ScenarioContext) { + FeatureContext(s) + AlgodClientV2Context(s) + IndexerUnitTestContext(s) + TransactionsUnitContext(s) + ApplicationsContext(s) + ApplicationsUnitContext(s) + ResponsesContext(s) + }, + Options: &opt, + }.Run() if st := m.Run(); st > status { status = st @@ -222,7 +226,7 @@ func TestMain(m *testing.M) { os.Exit(status) } -func FeatureContext(s *godog.Suite) { +func FeatureContext(s *godog.ScenarioContext) { s.Step("I create a wallet", createWallet) s.Step("the wallet should exist", walletExist) s.Step("I get the wallet handle", getHandle) @@ -387,10 +391,11 @@ func FeatureContext(s *godog.Suite) { s.Step(`^I prepare the transaction without signatures for simulation$`, iPrepareTheTransactionWithoutSignaturesForSimulation) s.Step(`^the simulation should report a failure at group "([^"]*)", path "([^"]*)" with message "([^"]*)"$`, theSimulationShouldReportAFailureAtGroupPathWithMessage) - s.BeforeScenario(func(interface{}) { + s.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) { stxObj = types.SignedTxn{} abiMethods = nil kcl.RenewWalletHandle(handle) + return ctx, nil }) } diff --git a/test/transactions_test.go b/test/transactions_test.go index 8d8925ce..adcc2a7a 100644 --- a/test/transactions_test.go +++ b/test/transactions_test.go @@ -183,7 +183,7 @@ func buildLegacyAppCallTransaction( } -func TransactionsUnitContext(s *godog.Suite) { +func TransactionsUnitContext(s *godog.ScenarioContext) { // @unit.transactions s.Step(`^a signing account with address "([^"]*)" and mnemonic "([^"]*)"$`, aSigningAccountWithAddressAndMnemonic) s.Step(`^sign the transaction$`, signTheTransaction)