aboutsummaryrefslogtreecommitdiff
path: root/internal/image/image_test.go
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2020-06-27 21:23:44 -0700
committerMax Resnick <max@ofmax.li>2020-07-26 22:16:40 -0700
commit77c2e6aca2dc0f851f55e30a0f49c9ee7c2c952e (patch)
treebf5b062468b21c9b61d96e2d73dfbc183fc58dc9 /internal/image/image_test.go
parent85e7eaa3a1c9024c02cc9a63744cdfb144cc3737 (diff)
downloadiserv-77c2e6aca2dc0f851f55e30a0f49c9ee7c2c952e.tar.gz
adds post meta, basic template for single image
Diffstat (limited to 'internal/image/image_test.go')
-rw-r--r--internal/image/image_test.go61
1 files changed, 59 insertions, 2 deletions
diff --git a/internal/image/image_test.go b/internal/image/image_test.go
index 3425213..daf4aea 100644
--- a/internal/image/image_test.go
+++ b/internal/image/image_test.go
@@ -16,6 +16,7 @@ import (
"strings"
"testing"
+ "github.com/go-chi/chi"
"github.com/gomodule/redigo/redis"
"github.com/rafaeljusto/redigomock"
_ "github.com/stretchr/testify/mock"
@@ -27,6 +28,7 @@ import (
var (
projectRoot string
+ emptyBody *bytes.Buffer = bytes.NewBuffer([]byte(``))
)
func init() {
@@ -83,6 +85,34 @@ func prepareRequest(t *testing.T, filename, mimeType string) (*multipart.Writer,
return writer, body, err
}
+func prepareImage() (*redigomock.Conn, image.Handler) {
+ // setup redis for tests
+ conn := redigomock.NewConn()
+ pool := &redis.Pool{
+ // Return the same connection mock for each Get() call.
+ Dial: func() (redis.Conn, error) { return conn, nil },
+ MaxIdle: 10,
+ }
+ repo := db.NewRedisImageRepo(pool)
+
+ // setup image package
+ imageBuildDir, err := ioutil.TempDir("", "test-images")
+ if err != nil {
+ log.Fatal(err)
+ }
+ cwd, _ := os.Getwd()
+ base := filepath.Join(cwd, "templates")
+ renderer, err := tmpl.NewHTMLTmpl(base)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer os.RemoveAll(imageBuildDir)
+ imageService := image.NewService(repo, imageBuildDir, renderer)
+ imageHandler := image.NewHandler(imageService)
+ return conn, imageHandler
+
+}
+
func TestPostImage(t *testing.T) {
// setup redis for tests
conn := redigomock.NewConn()
@@ -91,7 +121,14 @@ func TestPostImage(t *testing.T) {
Dial: func() (redis.Conn, error) { return conn, nil },
MaxIdle: 10,
}
- conn.Command("HMSET", redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData())
+ conn.Command("HMSET",
+ redigomock.NewAnyData(), redigomock.NewAnyData(),
+ redigomock.NewAnyData(), redigomock.NewAnyData(),
+ redigomock.NewAnyData(), redigomock.NewAnyData(),
+ redigomock.NewAnyData(), redigomock.NewAnyData(),
+ redigomock.NewAnyData(), redigomock.NewAnyData(),
+ redigomock.NewAnyData(), redigomock.NewAnyData(),
+ redigomock.NewAnyData())
repo := db.NewRedisImageRepo(pool)
// setup image package
@@ -176,5 +213,25 @@ func TestPostImage(t *testing.T) {
}
func TestGetImage(t *testing.T) {
-
+ conn, imageHandler := prepareImage()
+ getImageResults := []string{"file_path", "imge/name.jpg", "created_at", "'feb 12'", "user_id", "111", "mime_type", "image/jpg", "title", "mine", "desc", "'hoo har'"}
+ conn.Command("HGETALL", "v1imagepost:fooo").ExpectSlice(getImageResults)
+ m := chi.NewRouter()
+ m.Get("/i/{fileName}", imageHandler.GetImage)
+ srv := httptest.NewServer(m)
+ defer srv.Close()
+ // TODO https://github.com/go-chi/chi/blob/39504566046f2c13f4d059bccfe0fe06ed67aab3/mux_test.go#L1662
+ r, err := http.NewRequest("GET", fmt.Sprintf("%s/i/fooo", srv.URL), emptyBody)
+ if err != nil {
+ t.Errorf("%s", err)
+ }
+ resp, err := http.DefaultClient.Do(r)
+ if err != nil {
+ t.Errorf("%s", err)
+ }
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ t.Errorf("%s", err)
+ }
+ fmt.Printf("hello: %s", body)
}