Trying fix in the most generic way the issue with snaps failing when being called from inside a test suite.
Testing with
package issues
import (
"go-snaps-testing-suite/src/objects"
"testing"
"github.com/gkampitakis/go-snaps/snaps"
"golang.org/x/tools/go/packages/packagestest"
)
func TestGoList(t *testing.T) { packagestest.TestAll(t, testMyFunc) }
func testMyFunc(t *testing.T, x packagestest.Exporter) {
snaps.MatchSnapshot(t, "hello world from here")
}
func TestWithHelpers(t *testing.T) {
objects.MyHelper(t, "hello george ")
}
and
package issues
import (
"testing"
"go-snaps-testing-suite/src/objects"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)
// Define the suite, and absorb the built-in basic suite
// functionality from testify - including a T() method which
// returns the current testing context
type ExampleTestSuite struct {
suite.Suite
VariableThatShouldStartAtFive int
}
// Make sure that VariableThatShouldStartAtFive is set to five
// before each test
func (suite *ExampleTestSuite) SetupTest() {
suite.VariableThatShouldStartAtFive = 5
}
// All methods that begin with "Test" are run as tests within a
// suite.
func (suite *ExampleTestSuite) TestExample() {
assert.Equal(suite.T(), 5, suite.VariableThatShouldStartAtFive)
}
func (suite *ExampleTestSuite) TestExampleSnapshot() {
objects.MyHelper(suite.T(), "hello world")
}
// In order for 'go test' to run this suite, we need to create
// a normal test function and pass our suite to suite.Run
func TestExampleTestSuite(t *testing.T) {
suite.Run(t, new(ExampleTestSuite))
}
Trying fix in the most generic way the issue with snaps failing when being called from inside a test suite.
Testing with
and
Suites/Packages to support: