defmodule HTTParrot.GzipHandlerTest do
  use ExUnit.Case
  import :meck
  import HTTParrot.GzipHandler

  setup do
    new HTTParrot.GeneralRequestInfo
    new JSX
    on_exit fn -> unload() end
    :ok
  end

  test "returns prettified json with query values, headers, url and origin" do
    expect(HTTParrot.GeneralRequestInfo, :retrieve, 1, {:info, :req2})
    expect(JSX, :encode!, [{[:info], :json}])
    expect(JSX, :prettify!, [{[:json], "json"}])
    expect(:cowboy_req, :set_resp_header, 3, :req3)

    body = :zlib.gzip("json")

    assert get_json(:req1, :state) == {body, :req3, :state}

    assert validate HTTParrot.GeneralRequestInfo
    assert validate JSX
    assert validate :cowboy_req
  end
end