aboutsummaryrefslogtreecommitdiff
path: root/test/zendex/ticket_test.exs
blob: 2b5a3ce26a1ab762d1bd7c88292af95d030584fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
defmodule Zendex.TicketTest do
  use ExUnit.Case, async: false

  setup do
    %{conn: Zendex.Connection.setup("http://test.zendesk.com", "User", "Passw")}
  end

  setup_all do
    :meck.new(HTTPoison)
    on_exit fn -> :meck.unload end
    :ok
  end

  test "getting tickets", %{conn: conn} do
    expected = "ticket"

    stub = fn("http://test.zendesk.com/api/v2/tickets.json", _headers) ->
      %HTTPoison.Response{body: Poison.encode!(expected)}
    end
    :meck.expect(HTTPoison, :get!, stub)

    assert expected == Zendex.Ticket.list(conn)
  end

  test "creating a ticket", %{conn: conn} do
    expected = "Ticket created successfully!"

    stub = fn("http://test.zendesk.com/api/v2/tickets.json",
              "{\"ticket\":{\"title\":\"HELP!\"}}",
              _headers) ->
      %HTTPoison.Response{body: Poison.encode!(expected)}
    end
    :meck.expect(HTTPoison, :post!, stub)

    assert expected ==
      Zendex.Ticket.create(conn, %{"ticket": %{"title": "HELP!"}})
  end
end