github.com/status-im/status-go@v1.1.0/protocol/sqlite/migrations_test.go (about) 1 package sqlite 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestPrepareMigrationsEmpty(t *testing.T) { 10 names, _, err := prepareMigrations(nil) 11 require.NoError(t, err) 12 require.Empty(t, names) 13 } 14 15 func TestPrepareMigrationsWithDefaultMigrations(t *testing.T) { 16 names, _, err := prepareMigrations(defaultMigrations) 17 require.NoError(t, err) 18 require.NotEmpty(t, names) 19 } 20 21 func TestPrepareMigrationsErrors(t *testing.T) { 22 // Two migrations with the same name in the same set. 23 names, _, err := prepareMigrations([]migrationsWithGetter{ 24 { 25 Names: []string{"name1.sql", "name1.sql"}, 26 Getter: nil, 27 }, 28 }) 29 require.EqualError(t, err, "migration with name name1.sql already exists") 30 require.Empty(t, names) 31 32 // Two migrations with the same name in different sets. 33 names, _, err = prepareMigrations([]migrationsWithGetter{ 34 { 35 Names: []string{"name2.sql"}, 36 Getter: nil, 37 }, 38 { 39 Names: []string{"name2.sql"}, 40 Getter: nil, 41 }, 42 }) 43 require.EqualError(t, err, "migration with name name2.sql already exists") 44 require.Empty(t, names) 45 46 // No getter for a migration. 47 _, getter, err := prepareMigrations([]migrationsWithGetter{ 48 { 49 Names: []string{"name3.sql"}, 50 Getter: nil, 51 }, 52 }) 53 require.NoError(t, err) 54 _, err = getter("non-existing-migration.sql") 55 require.EqualError(t, err, "no migration for name non-existing-migration.sql") 56 }