| defmodule PlausibleWeb.AvatarControllerTest do |
| use PlausibleWeb.ConnCase, async: true |
|
|
| import Mox |
| setup :verify_on_exit! |
|
|
| setup {PlausibleWeb.FirstLaunchPlug.Test, :skip} |
|
|
| describe "GET /avatar/:hash" do |
| test "proxies the request to gravatar", %{conn: conn} do |
| expect( |
| Plausible.HTTPClient.Mock, |
| :get, |
| fn "https://www.gravatar.com/avatar/myhash?s=150&d=identicon" -> |
| {:ok, |
| %Finch.Response{ |
| status: 200, |
| body: "avatar response body", |
| headers: [ |
| {"content-type", "image/png"}, |
| {"cache-control", "max-age=300"}, |
| {"expires", "soon"} |
| ] |
| }} |
| end |
| ) |
|
|
| conn = get(conn, "/avatar/myhash") |
|
|
| assert response(conn, 200) =~ "avatar response body" |
| assert {"content-type", "image/png"} in conn.resp_headers |
| assert {"cache-control", "max-age=300"} in conn.resp_headers |
| assert {"expires", "soon"} in conn.resp_headers |
| end |
| end |
| end |
|
|