github.com/kubecost/golang-migrate-duckdb/v4@v4.17.0-duckdb.1/source/google_cloud_storage/storage_test.go (about)

     1  package googlecloudstorage
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/fsouza/fake-gcs-server/fakestorage"
     7  	"github.com/golang-migrate/migrate/v4/source"
     8  	st "github.com/golang-migrate/migrate/v4/source/testing"
     9  )
    10  
    11  func Test(t *testing.T) {
    12  	server := fakestorage.NewServer([]fakestorage.Object{
    13  		{BucketName: "some-bucket", Name: "staging/migrations/1_foobar.up.sql", Content: []byte("1 up")},
    14  		{BucketName: "some-bucket", Name: "staging/migrations/1_foobar.down.sql", Content: []byte("1 down")},
    15  		{BucketName: "some-bucket", Name: "prod/migrations/1_foobar.up.sql", Content: []byte("1 up")},
    16  		{BucketName: "some-bucket", Name: "prod/migrations/1_foobar.down.sql", Content: []byte("1 down")},
    17  		{BucketName: "some-bucket", Name: "prod/migrations/3_foobar.up.sql", Content: []byte("3 up")},
    18  		{BucketName: "some-bucket", Name: "prod/migrations/4_foobar.up.sql", Content: []byte("4 up")},
    19  		{BucketName: "some-bucket", Name: "prod/migrations/4_foobar.down.sql", Content: []byte("4 down")},
    20  		{BucketName: "some-bucket", Name: "prod/migrations/5_foobar.down.sql", Content: []byte("5 down")},
    21  		{BucketName: "some-bucket", Name: "prod/migrations/7_foobar.up.sql", Content: []byte("7 up")},
    22  		{BucketName: "some-bucket", Name: "prod/migrations/7_foobar.down.sql", Content: []byte("7 down")},
    23  		{BucketName: "some-bucket", Name: "prod/migrations/not-a-migration.txt"},
    24  		{BucketName: "some-bucket", Name: "prod/migrations/0-random-stuff/whatever.txt"},
    25  	})
    26  	defer server.Stop()
    27  	driver := gcs{
    28  		bucket:     server.Client().Bucket("some-bucket"),
    29  		prefix:     "prod/migrations/",
    30  		migrations: source.NewMigrations(),
    31  	}
    32  	err := driver.loadMigrations()
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  	st.Test(t, &driver)
    37  }