Skip to content

Commit 9ebca23

Browse files
committed
add test for GogsHttp.get/1 via Gogs.HTTPoisonMock.get/2 for #1
1 parent 3c4d0a4 commit 9ebca23

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

lib/http.ex

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ defmodule GogsHttp do
66
If anything is unclear, please open an issue:
77
[github.com/dwyl/**gogs/issues**](https://github.com/dwyl/gogs/issues)
88
"""
9-
import GogsHelpers
109
require Logger
1110

1211
@access_token Envar.get("GOGS_ACCESS_TOKEN")
@@ -34,7 +33,7 @@ defmodule GogsHttp do
3433
def parse_body_response({:error, err}), do: {:error, err}
3534

3635
def parse_body_response({:ok, response}) do
37-
Logger.debug(response)
36+
# Logger.debug(response)
3837
body = Map.get(response, :body)
3938
if body == nil || byte_size(body) == 0 do
4039
Logger.warning("GogsHttp.parse_body_response: response body is nil!")
@@ -55,7 +54,7 @@ defmodule GogsHttp do
5554
@spec get(String.t()) :: {:ok, map} | {:error, any}
5655
def get(url) do
5756
Logger.info("GogsHttp.get #{url}")
58-
inject_poison().get(url, @headers) |> IO.inspect()
57+
inject_poison().get(url, @headers)
5958
|> parse_body_response()
6059
end
6160

lib/httpoison_mock.ex

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ defmodule Gogs.HTTPoisonMock do
1313
@remote_repo_create_response_body %{
1414
clone_url: "https://gogs-server.fly.dev/myorg/replacethis.git",
1515
# created_at: "0001-01-01T00:00:00Z",
16-
default_branch: "",
17-
description: "replacethis",
16+
# default_branch: "public-repo",
17+
# description: "replacethis",
1818
empty: false,
1919
fork: false,
2020
forks_count: 0,
@@ -39,19 +39,19 @@ defmodule Gogs.HTTPoisonMock do
3939
ssh_url: "ssh://[email protected]:10022/myorg/replacethis.git",
4040
stars_count: 0,
4141
# updated_at: "0001-01-01T00:00:00Z",
42-
watchers_count: 0,
42+
# watchers_count: 0,
4343
website: ""
4444
}
4545

4646
# make a valid response body for testing
4747
def make_repo_create_post_response_body(repo_name) do
4848
Map.merge(@remote_repo_create_response_body, %{
4949
clone_url: "https://gogs-server.fly.dev/myorg/#{repo_name}.git",
50-
description: repo_name,
50+
# description: repo_name,
5151
full_name: "myorg/#{repo_name}",
5252
html_url: "https://gogs-server.fly.dev/myorg/#{repo_name}",
5353
ssh_url: "ssh://[email protected]:10022/myorg/#{repo_name}.git",
54-
readme: repo_name,
54+
# readme: repo_name,
5555
name: repo_name
5656
})
5757
end
@@ -62,8 +62,9 @@ defmodule Gogs.HTTPoisonMock do
6262
"""
6363
def get(url, _headers) do
6464
Logger.debug("Gogs.HTTPoisonMock.get/2 #{url}")
65+
repo_name = GogsHelpers.get_repo_name_from_url(url)
6566
response_body =
66-
make_repo_create_post_response_body("tbd")
67+
make_repo_create_post_response_body(repo_name)
6768
|> Jason.encode!()
6869
{:ok, %{body: response_body}}
6970
end

test/gogshttp_test.exs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@ defmodule GogsHttpTest do
1111
res = %{body: ""}
1212
assert GogsHttp.parse_body_response({:ok, res}) == {:error, :no_body}
1313
end
14-
15-
test "GogsHttp.get/1 gets (or mocks) an HTTP GET request to Gogs Server" do
16-
url = "https://gogs-server.fly.dev/api/v1/repos/nelsonic/public-repo"
17-
{:ok, res} = GogsHttp.get(url)
1814

19-
assert true == true
15+
test "GogsHttp.get/1 gets (or mocks) an HTTP GET request to Gogs Server" do
16+
repo_name = "public-repo"
17+
url = "https://gogs-server.fly.dev/api/v1/repos/myorg/#{repo_name}"
18+
{:ok, response} = GogsHttp.get(url)
19+
# remove unpredictable fields from response when mock:false
20+
drop_fields = ~w(created_at default_branch description id readme updated_at watchers_count)a
21+
response = Map.drop(response, drop_fields)
22+
mock_response = Gogs.HTTPoisonMock.make_repo_create_post_response_body(repo_name)
23+
assert response == mock_response
2024
end
2125
end

0 commit comments

Comments
 (0)