From f1834f5d1d3b1ff707de7b1434e1ab8be3b2edd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Mon, 15 Apr 2024 10:16:06 +0200 Subject: [PATCH] test: add test for logout --- src/server/cmds/cmd_logout.c | 4 +++- tests/test_login.py | 39 ++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/server/cmds/cmd_logout.c b/src/server/cmds/cmd_logout.c index 499e0c2..f74419d 100644 --- a/src/server/cmds/cmd_logout.c +++ b/src/server/cmds/cmd_logout.c @@ -19,7 +19,9 @@ void cmd_logout(server_t *server, client_t *client) char uuid_str[37] = {0}; user_info_t info = {0}; - uuid_unparse(client->thread_uuid, uuid_str); + if (client->user == NULL) + return; + uuid_unparse(client->user->uuid, uuid_str); server_event_user_logged_out(uuid_str); strcpy(info.user_name, client->user->name); uuid_copy(info.user_uuid, client->user->uuid); diff --git a/tests/test_login.py b/tests/test_login.py index bd1df76..600ff26 100644 --- a/tests/test_login.py +++ b/tests/test_login.py @@ -1,10 +1,14 @@ from server import run_server +from pprint import pprint def test_login(): name = "bob" - serv, cli = run_server([f'/login "{name}"\n']) - print(serv, cli) + serv, cli = run_server([ + f'/login "{name}"\n', + ]) + pprint(serv) + pprint(cli) assert serv[0][0] == "server_event_user_created" uuid = serv[0][1] @@ -15,6 +19,33 @@ def test_login(): assert cli[0][2] == name +def test_logout(): + name = "bob" + serv, cli = run_server([ + f'/login "{name}"\n', + '/logout\n', + ]) + pprint(serv) + pprint(cli) + + # login + assert serv[0][0] == "server_event_user_created" + uuid = serv[0][1] + assert serv[0][2] == name + + assert cli[0][0] == "client_event_logged_in" + assert cli[0][1] == uuid + assert cli[0][2] == name + + # logout + + assert serv[1][0] == "server_event_user_logged_out" + assert serv[1][1] == uuid + + assert cli[1][0] == "client_event_logged_out" + assert cli[1][1] == uuid + assert cli[1][2] == name + + if __name__ == "__main__": - serv, cli = run_server(['/login "uwu"\n']) - print(serv, cli) + test_logout()