Sort Table slice to ensure stable template output

This commit is contained in:
guns 2017-05-03 03:53:56 -05:00
parent 070df18197
commit e22d6cf77b
2 changed files with 15 additions and 1 deletions

View file

@ -1,7 +1,11 @@
// Package bdb supplies the sql(b)oiler (d)ata(b)ase abstractions.
package bdb
import "github.com/pkg/errors"
import (
"sort"
"github.com/pkg/errors"
)
// Interface for a database driver. Functionality required to support a specific
// database type (eg, MySQL, Postgres etc.)
@ -45,6 +49,8 @@ func Tables(db Interface, schema string, whitelist, blacklist []string) ([]Table
return nil, errors.Wrap(err, "unable to get table names")
}
sort.Strings(names)
var tables []Table
for _, name := range names {
t := Table{

View file

@ -124,6 +124,14 @@ func TestTables(t *testing.T) {
t.Errorf("Expected len 7, got: %d\n", len(tables))
}
prev := ""
for i := range tables {
if prev >= tables[i].Name {
t.Error("tables are not sorted")
}
prev = tables[i].Name
}
pilots := GetTable(tables, "pilots")
if len(pilots.Columns) != 2 {
t.Error()