From cc18986b76144f5e97cc789fde4454f06e024589 Mon Sep 17 00:00:00 2001 From: Glandos Date: Sat, 22 Oct 2022 22:11:06 +0200 Subject: [PATCH] add test for multiple join --- ihatemoney/tests/budget_test.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/ihatemoney/tests/budget_test.py b/ihatemoney/tests/budget_test.py index 261a958b..d944f40d 100644 --- a/ihatemoney/tests/budget_test.py +++ b/ihatemoney/tests/budget_test.py @@ -5,7 +5,7 @@ from time import sleep import unittest from urllib.parse import urlparse, urlunparse -from flask import session +from flask import session, url_for import pytest from werkzeug.security import check_password_hash, generate_password_hash @@ -121,6 +121,28 @@ class BudgetTestCase(IhatemoneyTestCase): resp = self.client.get("/raclette/join/token.invalid", follow_redirects=True) self.assertIn("Provided token is invalid", resp.data.decode("utf-8")) + def test_multiple_join(self): + """Test that joining multiple times a project doesn't add it multiple times in the session""" + self.login("raclette") + self.post_project("raclette") + project = self.get_project("raclette") + invite_link = url_for( + ".join_project", + project_id="raclette", + token=project.generate_token() + ) + + self.post_project("tartiflette") + self.client.get(invite_link) + data = self.client.get("/tartiflette/").data.decode("utf-8") + # First join is OK + assert 'href="/raclette/"' in data + + # Second join shouldn't add a double link + self.client.get(invite_link) + data = self.client.get("/tartiflette/").data.decode("utf-8") + assert data.count('href="/raclette/"') == 1 + def test_invite_code_invalidation(self): """Test that invitation link expire after code change""" self.login("raclette")