diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatefulTest.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatefulTest.java
index 55d8252..55f0ac8 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatefulTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatefulTest.java
@@ -69,7 +69,7 @@
         super.setupMockRequests();
 
         // Mock the behavior of the Git Repository Manager
-        String repoJson = readTestFile("__files/gitProjectFiles.json");
+        String repoJson = readTestFile("__files/stateful/gitProjectFiles.json");
         when(gitRepoFiles.getGitRepoFiles(any())).thenReturn(repoJson);
 
         // Mock the behavior of the ChatGPT create-file request
@@ -129,7 +129,7 @@
                         .withBodyFile("chatGptRunStepsResponse.json")));
 
         // Mock the behavior of the formatted patch request
-        formattedPatchContent = readTestFile("__files/gerritFormattedPatch.txt");
+        formattedPatchContent = readTestFile("__files/stateful/gerritFormattedPatch.txt");
         ByteArrayInputStream inputStream = new ByteArrayInputStream(formattedPatchContent.getBytes());
         BinaryResult binaryResult = BinaryResult.create(inputStream)
                 .setContentType("text/plain")
diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatelessTest.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatelessTest.java
index 645e0ff..ced9b39 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatelessTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewStatelessTest.java
@@ -64,20 +64,20 @@
         super.setupMockRequests();
 
         // Mock the behavior of the gerritPatchSetFiles request
-        Map<String, FileInfo> files =
-            readTestFileToType(
-                "__files/gerritPatchSetFiles.json",
-                new TypeLiteral<Map<String, FileInfo>>() {}.getType());
+        Map<String, FileInfo> files = readTestFileToType(
+                "__files/stateless/gerritPatchSetFiles.json",
+                new TypeLiteral<Map<String, FileInfo>>() {}.getType()
+        );
         when(revisionApiMock.files(0)).thenReturn(files);
 
         // Mock the behavior of the gerritPatchSet diff requests
         FileApi commitMsgFileMock = mock(FileApi.class);
         when(revisionApiMock.file("/COMMIT_MSG")).thenReturn(commitMsgFileMock);
-        DiffInfo commitMsgFileDiff = readTestFileToClass("__files/gerritPatchSetDiffCommitMsg.json", DiffInfo.class);
+        DiffInfo commitMsgFileDiff = readTestFileToClass("__files/stateless/gerritPatchSetDiffCommitMsg.json", DiffInfo.class);
         when(commitMsgFileMock.diff(0)).thenReturn(commitMsgFileDiff);
         FileApi testFileMock = mock(FileApi.class);
         when(revisionApiMock.file("test_file.py")).thenReturn(testFileMock);
-        DiffInfo testFileDiff = readTestFileToClass("__files/gerritPatchSetDiffTestFile.json", DiffInfo.class);
+        DiffInfo testFileDiff = readTestFileToClass("__files/stateless/gerritPatchSetDiffTestFile.json", DiffInfo.class);
         when(testFileMock.diff(0)).thenReturn(testFileDiff);
 
         // Mock the behavior of the askGpt request
@@ -93,10 +93,10 @@
         super.initComparisonContent();
 
         diffContent = readTestFile("reducePatchSet/patchSetDiffOutput.json");
-        gerritPatchSetReview = readTestFileToClass("__files/gerritPatchSetReview.json", ReviewInput.class);
-        expectedResponseStreamed = readTestFileToClass("__files/chatGptExpectedResponseStreamed.json", ReviewInput.class);
-        promptTagReview = readTestFile("__files/chatGptPromptTagReview.json");
-        promptTagComments = readTestFile("__files/chatGptPromptTagRequests.json");
+        gerritPatchSetReview = readTestFileToClass("__files/stateless/gerritPatchSetReview.json", ReviewInput.class);
+        expectedResponseStreamed = readTestFileToClass("__files/stateless/chatGptExpectedResponseStreamed.json", ReviewInput.class);
+        promptTagReview = readTestFile("__files/stateless/chatGptPromptTagReview.json");
+        promptTagComments = readTestFile("__files/stateless/chatGptPromptTagRequests.json");
         expectedSystemPromptReview = ChatGptPromptStateless.getDefaultGptReviewSystemPrompt();
     }
 
diff --git a/src/test/resources/__files/gerritFormattedPatch.txt b/src/test/resources/__files/stateful/gerritFormattedPatch.txt
similarity index 100%
rename from src/test/resources/__files/gerritFormattedPatch.txt
rename to src/test/resources/__files/stateful/gerritFormattedPatch.txt
diff --git a/src/test/resources/__files/gitProjectFiles.json b/src/test/resources/__files/stateful/gitProjectFiles.json
similarity index 100%
rename from src/test/resources/__files/gitProjectFiles.json
rename to src/test/resources/__files/stateful/gitProjectFiles.json
diff --git a/src/test/resources/__files/chatGptExpectedResponseStreamed.json b/src/test/resources/__files/stateless/chatGptExpectedResponseStreamed.json
similarity index 100%
rename from src/test/resources/__files/chatGptExpectedResponseStreamed.json
rename to src/test/resources/__files/stateless/chatGptExpectedResponseStreamed.json
diff --git a/src/test/resources/__files/chatGptPromptTagRequests.json b/src/test/resources/__files/stateless/chatGptPromptTagRequests.json
similarity index 100%
rename from src/test/resources/__files/chatGptPromptTagRequests.json
rename to src/test/resources/__files/stateless/chatGptPromptTagRequests.json
diff --git a/src/test/resources/__files/chatGptPromptTagReview.json b/src/test/resources/__files/stateless/chatGptPromptTagReview.json
similarity index 100%
rename from src/test/resources/__files/chatGptPromptTagReview.json
rename to src/test/resources/__files/stateless/chatGptPromptTagReview.json
diff --git a/src/test/resources/__files/gerritPatchSetDiffCommitMsg.json b/src/test/resources/__files/stateless/gerritPatchSetDiffCommitMsg.json
similarity index 100%
rename from src/test/resources/__files/gerritPatchSetDiffCommitMsg.json
rename to src/test/resources/__files/stateless/gerritPatchSetDiffCommitMsg.json
diff --git a/src/test/resources/__files/gerritPatchSetDiffTestFile.json b/src/test/resources/__files/stateless/gerritPatchSetDiffTestFile.json
similarity index 100%
rename from src/test/resources/__files/gerritPatchSetDiffTestFile.json
rename to src/test/resources/__files/stateless/gerritPatchSetDiffTestFile.json
diff --git a/src/test/resources/__files/gerritPatchSetFiles.json b/src/test/resources/__files/stateless/gerritPatchSetFiles.json
similarity index 100%
rename from src/test/resources/__files/gerritPatchSetFiles.json
rename to src/test/resources/__files/stateless/gerritPatchSetFiles.json
diff --git a/src/test/resources/__files/gerritPatchSetReview.json b/src/test/resources/__files/stateless/gerritPatchSetReview.json
similarity index 100%
rename from src/test/resources/__files/gerritPatchSetReview.json
rename to src/test/resources/__files/stateless/gerritPatchSetReview.json
