diff options
| author | Max Resnick <max@ofmax.li> | 2020-06-27 21:23:44 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2020-07-26 22:16:40 -0700 |
| commit | 77c2e6aca2dc0f851f55e30a0f49c9ee7c2c952e (patch) | |
| tree | bf5b062468b21c9b61d96e2d73dfbc183fc58dc9 /internal/image/image_test.go | |
| parent | 85e7eaa3a1c9024c02cc9a63744cdfb144cc3737 (diff) | |
| download | iserv-77c2e6aca2dc0f851f55e30a0f49c9ee7c2c952e.tar.gz | |
adds post meta, basic template for single image
Diffstat (limited to '')
| -rw-r--r-- | internal/image/image_test.go | 61 |
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) } |