mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package controllers
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
"strings"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/emilybache/gildedrose-refactoring-kata/lib"
|
|
)
|
|
|
|
func TestStatus(t *testing.T) {
|
|
runTestCase(t, func(
|
|
handler lib.RequestHandler,
|
|
) {
|
|
req, _ := http.NewRequest("GET", "/status", nil)
|
|
|
|
w := executeRequest(handler, req)
|
|
assert.Equal(t, 200, w.Code)
|
|
assert.Equal(t, `{"status":"ok"}`, w.Body.String())
|
|
})
|
|
}
|
|
|
|
func TestNotFound(t *testing.T) {
|
|
runTestCase(t, func(
|
|
handler lib.RequestHandler,
|
|
) {
|
|
req, _ := http.NewRequest("GET", "/notfoundurl", nil)
|
|
|
|
w := executeRequest(handler, req)
|
|
assert.Equal(t, 404, w.Code)
|
|
})
|
|
}
|
|
|
|
func TestInvalidItem(t *testing.T) {
|
|
runTestCase(t, func(
|
|
handler lib.RequestHandler,
|
|
) {
|
|
req, _ := http.NewRequest("POST", "/update_quality", strings.NewReader(`
|
|
{ "id": 1, "people": invalid
|
|
`))
|
|
req.Header = map[string][]string{"Content-Type": {"application/json"}}
|
|
|
|
w := executeRequest(handler, req)
|
|
assert.Equal(t, 400, w.Code)
|
|
})
|
|
}
|
|
|
|
func TestValidItem(t *testing.T) {
|
|
runTestCase(t, func(
|
|
handler lib.RequestHandler,
|
|
) {
|
|
req, _ := http.NewRequest("POST", "/update_quality", strings.NewReader(`
|
|
{ "days": 1, "items": [{ "name": "Random normal item", "quality": 5, "sellIn": 5}]}
|
|
`))
|
|
req.Header = map[string][]string{"Content-Type": {"application/json"}}
|
|
|
|
w := executeRequest(handler, req)
|
|
assert.Equal(t, 200, w.Code)
|
|
})
|
|
}
|