diff --git a/test/conftest.py b/test/conftest.py
index 38fa426f64bd4365511221b3c679ff6c1cd31181..731e0a3c1894d10f73a29cbbc4f6c79ec045108a 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -33,6 +33,7 @@ from starlette.testclient import TestClient
 from urllib3_mock import Responses
 
 from gso.services.partners import PartnerSchema, create_partner
+from gso.services.subscriptions import is_resource_type_value_unique
 from gso.utils.types.interfaces import LAGMember, LAGMemberList
 from test.fixtures import *  # noqa: F403
 
@@ -83,21 +84,25 @@ class FakerProvider(BaseProvider):
 
         return f"TT#{random_date}{random_int}"
 
+    def generate_unique_id(self, field_name: str, prefix: str, min_value: int = 50000, max_value: int = 99999) -> str:
+        """Generate a unique ID with a given prefix and ensure uniqueness in the database."""
+        while True:
+            random_int = self.generator.random_int(min=min_value, max=max_value)
+            unique_id = f"{prefix}-{random_int}"
+            if is_resource_type_value_unique(field_name, unique_id):
+                return unique_id
+
     def ga_id(self) -> str:
-        random_int = self.generator.random_int(min=50000, max=99999)
-        return f"GA-{random_int}"
+        return self.generate_unique_id("ga_id", "GA")
 
     def gs_id(self) -> str:
-        random_int = self.generator.random_int(min=50000, max=99999)
-        return f"GS-{random_int}"
+        return self.generate_unique_id("gs_id", "GS")
 
     def imported_ga_id(self) -> str:
-        random_int = self.generator.random_int(min=00000, max=50000)
-        return f"GA-{random_int}"
+        return self.generate_unique_id("ga_id", "GA", min_value=00000, max_value=50000)
 
     def imported_gs_id(self) -> str:
-        random_int = self.generator.random_int(min=00000, max=50000)
-        return f"GS-{random_int}"
+        return self.generate_unique_id("gs_id", "GS", min_value=00000, max_value=50000)
 
     def site_name(self) -> str:
         site_name = "".join(self.generator.random_letter().upper() for _ in range(3))