Skip to content

Commit 0eeaada

Browse files
authored
Merge pull request #23 from marco-m/add-rtm-start
Add `rtm.start` REST method.
2 parents 92e8596 + f7bf2a3 commit 0eeaada

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

src/slacker_rtm.erl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-module(slacker_rtm).
2+
3+
-include("spec.hrl").
4+
5+
-export([start/1]).
6+
7+
%% @doc Start a Real Time Messaging API session.
8+
-spec start(Token :: string()) -> http_response().
9+
start(Token) ->
10+
slacker_request:send("rtm.start", [{"token", Token}], []).

test/slacker_tests.erl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ slacker_test_() ->
1414
]
1515
}.
1616

17-
1817
% This should be the first test. It uses the lower-level slacker API and the
1918
% Slack test API, so that we don't need an API token and get an error closer
2019
% to the source of the problem. If this one fails, everything else using the
@@ -32,7 +31,6 @@ test_unauth_get() ->
3231
?assertEqual(false, get_val(<<"ok">>, Body)),
3332
?assertEqual(<<"invalid_auth">>, get_val(<<"error">>, Body)).
3433

35-
3634
test_users_list() ->
3735
{ok, Token} = read_token(),
3836
{_Ok, _Status, _Headers, Body} = slacker_user:list(Token, []),
@@ -41,11 +39,19 @@ test_users_list() ->
4139
%%% Simple tests
4240

4341
user_get_presence_test() ->
44-
slacker:start(),
42+
application:ensure_all_started(slacker),
4543
{ok, Token} = read_token(),
4644
{_, _, _, Body} = slacker_user:get_presence(Token, "ipinak"),
4745
?assertEqual(false, get_val(<<"ok">>, Body)).
4846

47+
rtm_start_test() ->
48+
application:ensure_all_started(slacker),
49+
{ok, Token} = read_token(),
50+
{ok, 200, _Headers, Body} = slacker_rtm:start(Token),
51+
?assertEqual(true, get_val(<<"ok">>, Body)),
52+
% The URL should be a secure WebSocket.
53+
?assertMatch(<<"wss://", _/binary>>, get_val(<<"url">>, Body)).
54+
4955
%%% Internal functionality
5056

5157
read_token() ->

0 commit comments

Comments
 (0)