From 1102d1f63e73ca961886c6ae134f26c753f55102 Mon Sep 17 00:00:00 2001
From: Dimas FM <dimasfaid@gmail.com>
Date: Fri, 3 May 2024 22:59:17 +0700
Subject: [PATCH] Add delete_others_comment test case

---
 db/comments.db                    | Bin 24576 -> 24576 bytes
 db/posts.db                       | Bin 15060992 -> 15060992 bytes
 db/users.db                       | Bin 53248 -> 53248 bytes
 tests/functions/__init__.py       |   3 ++-
 tests/functions/delete_comment.py |   8 +++++---
 tests/functions/logout.py         |   5 +++++
 tests/test_comment.py             |  30 ++++++++++++++++++++++--------
 7 files changed, 34 insertions(+), 12 deletions(-)
 create mode 100644 tests/functions/logout.py

diff --git a/db/comments.db b/db/comments.db
index 986328e8d39c5d6c219826486584b02fe6c8e2a1..f3b27a4a5a2318caf94fd8f264d5f094ba26908e 100644
GIT binary patch
delta 173
zcmZoTz}Rqrae_4C{fRQpjQ2Mt%-3g(+GM~eAkXrQftzJ61K(NRbv)5r_c_Zsbl7&Y
zZep3sn#rob61iEy!IFi^DSC2&t38(~=UVpwHU`c@<;jMw#=?H7<)Ou?MR|$2sc9zL
tmoP9eSWVV*HDh-Vf~yfjR%6Q8;T{N=;zyP;+5UL5V-zRj=G|_tk^rlBG~ECI

delta 115
zcmZoTz}Rqrae_4Cp@}lijE6QR%-3fO-ekZiAkV<Sz|HcEf$uEuI-Y2*`<&$*I&8aH
zH?iiiYOy?HS+rTf!IEY2iwI99r;y3fE)FbAc1}TH24ja)Adq3tYO?*YQvis?Y_fgH
OX2&Q_#?8CkTqOY&0whHM

diff --git a/db/posts.db b/db/posts.db
index 6ac96c4c168ec5394dd2238eb687e0b0b553c055..d5b549664ffcb36ddf1df9e82e03e012b5ae9500 100644
GIT binary patch
delta 4672
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

delta 3768
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

diff --git a/db/users.db b/db/users.db
index e6d76785f577848bdd591f541e525eeffd4a64ff..4c67fac0ac4e1e6eab56ea3723643130af65d8de 100644
GIT binary patch
delta 169
zcmZozz}&Ead4d!Zv*bh>Cm^{oK~k4_5yPU*HM%Z5jEgoOv<&3}QsOQzq!|}&N?=To
zXH8<@XSl?`&%-CmE5W14t;nUtY0P24?#SlNxQF4=WQ7A0^_6%S44oTm8&yR)S;R|=
zQ;XtDQj1ICi&E1wi%U|AN{buQ8bx>*B(;HRctsf}7aYCJ!J1~U>uE?)>Ezu9A2G4;
VZ=QeXFcS*{1H;SBX-8*q0RRB}H0l5V

delta 295
zcmZozz}&Ead4d!Z)60o6PC#;Ff}}3<LWYH#Yjj<B7#D6nXc@`{q{LlbNHZ?nl)#uE
z&%nUI&$x$ypNCJBSAs{8TainP)0o48-I2|kaSv<KWQ7A0<rR4t44oTm8&yR)S;R|=
zQ;XtDQj1ICi&E1wi%U|ACjWAlp8WlQU|NZ(ms3bZQl6)gyIXcyM3IVVT2YvjaZp86
zRDND^fn|7AzJFpsMNmdwn6poacZPA8OPHIZxqpVEZ+WqgheeoirhZDIeuZmRc4$Ou
zV79kjT2**jqCtwIX?azszN>eLU#YRhWX2@J$@34gDx)|;ttc@iv$WXO&;aDXG~;c%
g-4b((C+|M^h>5vs^ZY}HnOGWA8$~v!9i7Dm0JS7!G5`Po

diff --git a/tests/functions/__init__.py b/tests/functions/__init__.py
index 53b821c..86c6496 100644
--- a/tests/functions/__init__.py
+++ b/tests/functions/__init__.py
@@ -6,4 +6,5 @@ from .delete_comment import *
 from .delete_post import *
 from .edit_post import *
 from .login import *
-from .register import *
\ No newline at end of file
+from .register import *
+from .logout import *
\ No newline at end of file
diff --git a/tests/functions/delete_comment.py b/tests/functions/delete_comment.py
index 2eb71a2..a82a339 100644
--- a/tests/functions/delete_comment.py
+++ b/tests/functions/delete_comment.py
@@ -3,7 +3,9 @@ from tests.utils import URL
 
 def delete_comment(page: Page, post_id: int, comment_id: int) -> Page:
   page.goto(URL + '/post/' + str(post_id))
-  comment_section = page.get_by_test_id(f"comment-{str(comment_id)}")
-  comment_section.locator("[name=commentDeleteButton]").click()
-  
+  try:
+    comment_section = page.get_by_test_id(f"comment-{str(comment_id)}")
+    comment_section.locator("[name=commentDeleteButton]").click(timeout=1000)
+  except:
+    pass
   return page
\ No newline at end of file
diff --git a/tests/functions/logout.py b/tests/functions/logout.py
new file mode 100644
index 0000000..b20662e
--- /dev/null
+++ b/tests/functions/logout.py
@@ -0,0 +1,5 @@
+from playwright.sync_api import Page
+
+def logout(page: Page):
+  page.get_by_role("link", name="").click()
+  return page
\ No newline at end of file
diff --git a/tests/test_comment.py b/tests/test_comment.py
index 9c2f2da..82652d1 100644
--- a/tests/test_comment.py
+++ b/tests/test_comment.py
@@ -2,17 +2,20 @@
 from playwright.sync_api import expect, Page
 import pytest
 from tests.utils import URL, UserTest, delete_comment_utils, is_comment_exist
-from tests.functions import login, create_comment, new_comment, delete_comment
+from tests.functions import login, create_comment, new_comment, delete_comment, logout
 
-@pytest.fixture(autouse=True)
+@pytest.fixture()
 def user ():
   user = UserTest("User_A")
   yield user
 
+@pytest.fixture()
+def user2 ():
+  user = UserTest("User_B")
+  yield user
+
 # Define a function that takes a playwright object as an argument
 def test_create_comment(page: Page, user: UserTest) -> None:
-  page.goto(URL)
-
   page = login(page, user)    
 
   page, comment_id = create_comment(page, 1)
@@ -23,12 +26,23 @@ def test_create_comment(page: Page, user: UserTest) -> None:
 
 def test_delete_comment(page: Page, user: UserTest) -> None:
   post_id = 1
-  
-  page.goto(URL)
-  
+    
   page = login(page, user)
   page, comment_id = create_comment(page, post_id)
 
   page = delete_comment(page, post_id, comment_id)
       
-  assert is_comment_exist(comment_id) == False
\ No newline at end of file
+  assert is_comment_exist(comment_id) == False
+
+def test_delete_others_comment(page: Page, user: UserTest, user2: UserTest) -> None:
+  post_id = 1
+  page = login(page, user)
+  page, comment_id = create_comment(page, post_id)
+  page = logout(page)
+
+  page = login(page, user2)
+  page = delete_comment(page, post_id, comment_id)
+
+  assert is_comment_exist(comment_id) == True
+
+  delete_comment_utils(comment_id)
-- 
GitLab