4
1
Fork 0

Initial test for CreateUser

pull/24/head
Ambrose Chua 2019-08-31 23:32:42 +08:00
parent 1208c705f8
commit 54fc06e388
5 changed files with 24 additions and 5 deletions

2
.env
View File

@ -1,2 +1,2 @@
LISTEN=:8080
POSTGRES=postgresql://root@localhost:26257/core?sslmode=disable
POSTGRES=postgresql://root@localhost:5432/core?sslmode=disable

View File

@ -0,0 +1,13 @@
version: "3"
services:
pg:
image: postgres
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=
- POSTGRES_DB=core
volumes:
- ./postgres:/docker-entrypoint-initdb.d:ro
ports:
- 5432:5432

View File

@ -13,12 +13,16 @@ import (
var listen string
var postgres string
func main() {
func init() {
// Load .env
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
}
func main() {
listen = os.Getenv("LISTEN")
// Database
db := connect()
@ -27,7 +31,6 @@ func main() {
// Routes
router := NewRouter(h)
listen = os.Getenv("LISTEN")
log.Printf("starting server on %s", listen)
log.Fatal(http.ListenAndServe(listen, router))
}

View File

@ -17,6 +17,7 @@ func assertDB(t *testing.T, db *sql.DB, query string) {
if err != nil {
t.Errorf("Error during query %s: %s", query, err)
}
defer rows.Close()
if rows.Next() != true {
t.Errorf("Want one result, found none for query %s", query)
}

View File

@ -25,16 +25,18 @@ func testCreateUser(db *sql.DB, router http.Handler) func(t *testing.T) {
return func(t *testing.T) {
mockUser := &User{
PhoneNumber: "+65 99999999",
FirstName: "Test",
LastName: "User",
}
b, _ := json.Marshal(mockUser)
w := httptest.NewRecorder()
r := httptest.NewRequest("POST", "/", bytes.NewBuffer(b))
r := httptest.NewRequest("POST", "/user", bytes.NewBuffer(b))
router.ServeHTTP(w, r)
assertCode(t, w, 200)
assertDB(t, db, `SELECT * FROM "user" WHERE phone_number = "+65 97663827`)
assertDB(t, db, `SELECT * FROM "user" WHERE phone_number = '+65 9999 9999' AND first_name = 'Test' AND last_name = 'User'`)
}
}