A website for my game dev stuff that supports chat, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
zedshaw-games/tests/admin_test.go

68 lines
1.8 KiB

package tests
import (
"testing"
"fmt"
"reflect"
"github.com/stretchr/testify/require"
"zedshaw.games/webapp/data"
"zedshaw.games/webapp/admin"
sq "github.com/Masterminds/squirrel"
)
func TestAdminIndexPage(t *testing.T) {
assert := require.New(t)
models := data.Models()
table := "user"
model := models[table]
fmt.Printf("\n------\ntable=%s; model=%s\n", table, model.Name())
fields := reflect.VisibleFields(model)
for _, field := range fields {
fmt.Println("\t", field.Name, field.Type, 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)
err = admin.Insert(table, val)
assert.NoError(err, email)
}
all_rows, err := admin.SelectTable(table, model, 20, 20 * 3)
assert.NoError(err)
for i, row := range all_rows { fmt.Println("row", i, row) }
assert.Equal(20, len(all_rows))
first_row := all_rows[0]
result, err := admin.Get(table, model, first_row.FieldByName("Id").Int())
if err != nil { fmt.Println("ERROR", err) }
fmt.Println("TABLE: ", result)
id := result.FieldByName("Id")
result, err = admin.Get(table, model, id.Int())
assert.NoError(err)
fmt.Println("BEFORE: ", result)
result.FieldByName("Username").SetString("joeblow")
result.FieldByName("Email").SetString("what@what.com")
fmt.Println("AFTER: ", result)
err = admin.Update(table, result)
assert.NoError(err, )
err = admin.Delete(table, id.Int())
assert.NoError(err)
}