|
|
|
|
package tests
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
"fmt"
|
|
|
|
|
"strings"
|
|
|
|
|
"reflect"
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
"MY/webapp/data"
|
|
|
|
|
admin "MY/webapp/admin/table"
|
|
|
|
|
sq "github.com/Masterminds/squirrel"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestAdminIndexPage(t *testing.T) {
|
|
|
|
|
assert := require.New(t)
|
|
|
|
|
models := data.Models()
|
|
|
|
|
table := "user"
|
|
|
|
|
model := models[table]
|
|
|
|
|
|
|
|
|
|
fields := reflect.VisibleFields(model)
|
|
|
|
|
|
|
|
|
|
for _, field := range fields {
|
|
|
|
|
assert.NotEqual(field.Name, "")
|
|
|
|
|
assert.NotEqual(field.Tag, "")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := 0; i < 87; i++ {
|
|
|
|
|
val := reflect.New(model).Elem()
|
|
|
|
|
email := fmt.Sprintf("test%d@test.com", i)
|
|
|
|
|
val.FieldByName("Email").SetString(email)
|
|
|
|
|
val.FieldByName("Username").SetString(fmt.Sprintf("zed%d", i))
|
|
|
|
|
val.FieldByName("Password").SetString("garbage")
|
|
|
|
|
|
|
|
|
|
sql_query, args, err := sq.Delete(table).Where(sq.Eq{"email": email}).ToSql()
|
|
|
|
|
assert.NoError(err)
|
|
|
|
|
|
|
|
|
|
_, err = data.DB.Exec(sql_query, args...)
|
|
|
|
|
assert.NoError(err)
|
|
|
|
|
|
|
|
|
|
id, count, err := admin.Insert(table, val)
|
|
|
|
|
assert.Equal(count, int64(1))
|
|
|
|
|
assert.NotEqual(id, int64(0))
|
|
|
|
|
assert.NoError(err, email)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
all_rows, err := admin.SelectTable(table, 20, 2)
|
|
|
|
|
assert.NoError(err)
|
|
|
|
|
assert.Equal(20, len(all_rows))
|
|
|
|
|
|
|
|
|
|
first_row := all_rows[0].(*data.User)
|
|
|
|
|
|
|
|
|
|
result, err := admin.Get(table, int64(first_row.Id))
|
|
|
|
|
if err != nil { fmt.Println("ERROR", err) }
|
|
|
|
|
|
|
|
|
|
id := result.FieldByName("Id")
|
|
|
|
|
result, err = admin.Get(table, id.Int())
|
|
|
|
|
assert.NoError(err)
|
|
|
|
|
|
|
|
|
|
username := result.FieldByName("Username").String()
|
|
|
|
|
|
|
|
|
|
// only remove test users
|
|
|
|
|
if strings.HasPrefix(username, "test") {
|
|
|
|
|
result.FieldByName("Username").SetString("joeblow")
|
|
|
|
|
result.FieldByName("Email").SetString("what@what.com")
|
|
|
|
|
|
|
|
|
|
err = admin.Update(table, result)
|
|
|
|
|
assert.NoError(err, )
|
|
|
|
|
|
|
|
|
|
err = admin.Delete(table, id.Int())
|
|
|
|
|
assert.NoError(err)
|
|
|
|
|
}
|
|
|
|
|
}
|