Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 24 additions & 12 deletions internal/memdb/memdb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{})
}

Expand Down
11 changes: 10 additions & 1 deletion plugins/destination/plugin_testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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)
}
Expand All @@ -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)
}
Expand All @@ -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)
}
Expand All @@ -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)
}
Expand All @@ -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)
}
Expand All @@ -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)
}
Expand All @@ -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)
}
Expand Down