Skip to content

Commit 09cf2ac

Browse files
authored
Merge pull request #25 from ipinfo/fix-tests
Fix failing resproxy tests caused by data change
2 parents 1dafe17 + 92cec15 commit 09cf2ac

File tree

1 file changed

+38
-16
lines changed

1 file changed

+38
-16
lines changed

test/ipinfo_resproxy_SUITE.erl

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
-export([
77
all/0,
88
init_per_suite/1,
9-
end_per_suite/1
9+
end_per_suite/1,
10+
init_per_testcase/2,
11+
end_per_testcase/2
1012
]).
1113

1214
-export([
@@ -19,26 +21,46 @@ all() ->
1921

2022
init_per_suite(Config) ->
2123
{ok, _} = application:ensure_all_started(ipinfo),
22-
Token = case os:getenv("IPINFO_TOKEN") of
23-
false -> nil;
24-
TokenStr -> list_to_binary(TokenStr)
25-
end,
26-
[{token, Token} | Config].
24+
{ok, _} = application:ensure_all_started(bookish_spork),
25+
Config.
2726

2827
end_per_suite(_Config) ->
29-
ok = application:stop(ipinfo).
28+
ok = application:stop(ipinfo),
29+
ok = application:stop(bookish_spork).
3030

31-
resproxy_test(Config) ->
32-
Token = proplists:get_value(token, Config),
33-
{ok, IpInfo} = ipinfo:create(Token),
31+
init_per_testcase(_TestCase, Config) ->
32+
{ok, _} = bookish_spork:start_server(),
33+
Config.
34+
35+
end_per_testcase(_TestCase, _Config) ->
36+
ok = bookish_spork:stop_server().
37+
38+
resproxy_test(_Config) ->
39+
% Mock response for resproxy
40+
MockBody = jsx:encode(#{
41+
<<"ip">> => <<"175.107.211.204">>,
42+
<<"last_seen">> => <<"2025-01-20">>,
43+
<<"percent_days_seen">> => 0.85,
44+
<<"service">> => <<"example_service">>
45+
}),
46+
bookish_spork:stub_request([200, #{}, MockBody]),
47+
48+
% Create IPinfo client pointing to mock server (default bookish_spork port is 32002)
49+
{ok, IpInfo} = ipinfo:create(<<"test_token">>, [{base_url, <<"http://127.0.0.1:32002">>}]),
3450
{ok, Resproxy} = ipinfo:resproxy(IpInfo, <<"175.107.211.204">>),
51+
3552
?assertEqual(<<"175.107.211.204">>, maps:get(ip, Resproxy)),
36-
?assertNotEqual(undefined, maps:get(last_seen, Resproxy)),
37-
?assertNotEqual(undefined, maps:get(percent_days_seen, Resproxy)),
38-
?assertNotEqual(undefined, maps:get(service, Resproxy)).
53+
?assertEqual(<<"2025-01-20">>, maps:get(last_seen, Resproxy)),
54+
?assertEqual(0.85, maps:get(percent_days_seen, Resproxy)),
55+
?assertEqual(<<"example_service">>, maps:get(service, Resproxy)).
56+
57+
resproxy_empty_test(_Config) ->
58+
% Mock empty response for resproxy
59+
MockBody = jsx:encode(#{}),
60+
bookish_spork:stub_request([200, #{}, MockBody]),
3961

40-
resproxy_empty_test(Config) ->
41-
Token = proplists:get_value(token, Config),
42-
{ok, IpInfo} = ipinfo:create(Token),
62+
% Create IPinfo client pointing to mock server (default bookish_spork port is 32002)
63+
{ok, IpInfo} = ipinfo:create(<<"test_token">>, [{base_url, <<"http://127.0.0.1:32002">>}]),
4364
{ok, Resproxy} = ipinfo:resproxy(IpInfo, <<"8.8.8.8">>),
65+
4466
?assertEqual(#{}, Resproxy).

0 commit comments

Comments
 (0)