diff --git a/internal/memdb/memdb_test.go b/internal/memdb/memdb_test.go index 5adcab81ff..5b501736b6 100644 --- a/internal/memdb/memdb_test.go +++ b/internal/memdb/memdb_test.go @@ -14,30 +14,42 @@ import ( ) func TestPluginUnmanagedClient(t *testing.T) { - p := destination.NewPlugin("test", "development", NewClient) - destination.PluginTestSuiteRunner(t, p, nil, + destination.PluginTestSuiteRunner( + t, + func() *destination.Plugin { + return destination.NewPlugin("test", "development", NewClient) + }, + nil, destination.PluginTestSuiteTests{}) } func TestPluginManagedClient(t *testing.T) { - p := destination.NewPlugin("test", "development", NewClient, destination.WithManagedWriter()) - destination.PluginTestSuiteRunner(t, p, nil, + destination.PluginTestSuiteRunner(t, + func() *destination.Plugin { + return destination.NewPlugin("test", "development", NewClient, destination.WithManagedWriter()) + }, + nil, destination.PluginTestSuiteTests{}) } func TestPluginManagedClientWithSmallBatchSize(t *testing.T) { - p := destination.NewPlugin("test", "development", NewClient, destination.WithManagedWriter(), - destination.WithDefaultBatchSize(1), - destination.WithDefaultBatchSizeBytes(1)) - destination.PluginTestSuiteRunner(t, p, nil, + destination.PluginTestSuiteRunner(t, + func() *destination.Plugin { + return destination.NewPlugin("test", "development", NewClient, destination.WithManagedWriter(), + destination.WithDefaultBatchSize(1), + destination.WithDefaultBatchSizeBytes(1)) + }, nil, destination.PluginTestSuiteTests{}) } func TestPluginManagedClientWithLargeBatchSize(t *testing.T) { - p := destination.NewPlugin("test", "development", NewClient, destination.WithManagedWriter(), - destination.WithDefaultBatchSize(100000000), - destination.WithDefaultBatchSizeBytes(100000000)) - destination.PluginTestSuiteRunner(t, p, nil, + destination.PluginTestSuiteRunner(t, + func() *destination.Plugin { + return destination.NewPlugin("test", "development", NewClient, destination.WithManagedWriter(), + destination.WithDefaultBatchSize(100000000), + destination.WithDefaultBatchSizeBytes(100000000)) + }, + nil, destination.PluginTestSuiteTests{}) } diff --git a/plugins/destination/plugin_testing.go b/plugins/destination/plugin_testing.go index eca9be202d..db39cd6ec7 100644 --- a/plugins/destination/plugin_testing.go +++ b/plugins/destination/plugin_testing.go @@ -58,7 +58,9 @@ func getTestLogger(t *testing.T) zerolog.Logger { ).Level(zerolog.TraceLevel).With().Timestamp().Logger() } -func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSuiteTests) { +type NewPluginFunc func() *Plugin + +func PluginTestSuiteRunner(t *testing.T, newPlugin NewPluginFunc, spec any, tests PluginTestSuiteTests) { t.Helper() destSpec := specs.Destination{ Name: "testsuite", @@ -76,6 +78,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu t.Skip("skipping " + t.Name()) } destSpec.Name = "test_write_overwrite" + p := newPlugin() if err := suite.destinationPluginTestWriteOverwrite(ctx, p, logger, destSpec); err != nil { t.Fatal(err) } @@ -87,6 +90,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu t.Skip("skipping " + t.Name()) } destSpec.Name = "test_write_overwrite_delete_stale" + p := newPlugin() if err := suite.destinationPluginTestWriteOverwriteDeleteStale(ctx, p, logger, destSpec); err != nil { t.Fatal(err) } @@ -99,6 +103,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu } destSpec.WriteMode = specs.WriteModeOverwrite destSpec.Name = "test_migrate_overwrite" + p := newPlugin() if err := suite.destinationPluginTestMigrate(ctx, p, logger, destSpec); err != nil { t.Fatal(err) } @@ -112,6 +117,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu destSpec.WriteMode = specs.WriteModeOverwrite destSpec.MigrateMode = specs.MigrateModeForced destSpec.Name = "test_migrate_overwrite_force" + p := newPlugin() if err := suite.destinationPluginTestMigrate(ctx, p, logger, destSpec); err != nil { t.Fatal(err) } @@ -123,6 +129,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu t.Skip("skipping " + t.Name()) } destSpec.Name = "test_write_append" + p := newPlugin() if err := suite.destinationPluginTestWriteAppend(ctx, p, logger, destSpec); err != nil { t.Fatal(err) } @@ -135,6 +142,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu } destSpec.WriteMode = specs.WriteModeAppend destSpec.Name = "test_migrate_append" + p := newPlugin() if err := suite.destinationPluginTestMigrate(ctx, p, logger, destSpec); err != nil { t.Fatal(err) } @@ -148,6 +156,7 @@ func PluginTestSuiteRunner(t *testing.T, p *Plugin, spec any, tests PluginTestSu destSpec.WriteMode = specs.WriteModeAppend destSpec.MigrateMode = specs.MigrateModeForced destSpec.Name = "test_migrate_append_force" + p := newPlugin() if err := suite.destinationPluginTestMigrate(ctx, p, logger, destSpec); err != nil { t.Fatal(err) }