feat(bulk-report-replies): support nested replies

This commit makes the feature work in nested replies apart from
top-level replies.

In order to achieve this, it modifies MessageInfoRepositoryAdapter so it
can correctly retrieve the message ID for nested replies.

Bug: twpowertools:192
Fixed: twpowertools:237
Change-Id: I6a6a636c87dee5ecf79153d5348804d16b8066b0
diff --git a/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.test.ts b/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.test.ts
index d34a4b4..2376682 100644
--- a/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.test.ts
+++ b/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.test.ts
@@ -80,17 +80,34 @@
       document.body.innerHTML = '';
     });
 
-    it('should obtain it from the data-statsid attribute of the closest .scTailwindThreadMessageMessagecardcontent element', () => {
-      document.body.innerHTML = `<div class="scTailwindThreadMessageMessagecardcontent" data-focus-item="true" data-focus-group="0" tabindex="-1" data-focus-id="${dummyMessageId}" data-stats-visible-imp="true" data-stats-ve="64" data-stats-id="${dummyMessageId}">
-        <div id="element-inside-message"></div>
-      </div>`;
-      const elementInsideMessage = document.getElementById(
-        'element-inside-message',
-      );
+    describe('when treating a top-level reply', () => {
+      it('should obtain it from the data-statsid attribute of the closest .scTailwindThreadMessageMessagecardcontent element', () => {
+        document.body.innerHTML = `<div class="scTailwindThreadMessageMessagecardcontent" data-focus-item="true" data-focus-group="0" tabindex="-1" data-focus-id="${dummyMessageId}" data-stats-visible-imp="true" data-stats-ve="64" data-stats-id="${dummyMessageId}">
+          <div id="element-inside-message"></div>
+        </div>`;
+        const elementInsideMessage = document.getElementById(
+          'element-inside-message',
+        );
 
-      const result = sut.getInfo(elementInsideMessage);
+        const result = sut.getInfo(elementInsideMessage);
 
-      expect(result.messageId).toBe(dummyMessageId);
+        expect(result.messageId).toBe(dummyMessageId);
+      });
+    });
+
+    describe('when treating a nested reply', () => {
+      it('should obtain it from the data-statsid attribute of the closest .scTailwindThreadMessageCommentcardnested-reply element', () => {
+        document.body.innerHTML = `<div class="scTailwindThreadMessageCommentcardnested-reply" data-focus-item="true" data-focus-group="9" tabindex="0" data-focus-id="${dummyMessageId}" data-stats-visible-imp="true" data-stats-ve="64" data-stats-id="${dummyMessageId}">
+          <div id="element-inside-message"></div>
+        </div>`;
+        const elementInsideMessage = document.getElementById(
+          'element-inside-message',
+        );
+
+        const result = sut.getInfo(elementInsideMessage);
+
+        expect(result.messageId).toBe(dummyMessageId);
+      });
     });
 
     it("should throw an error if the data-statsid attribute doesn't exist", () => {
diff --git a/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.ts b/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.ts
index 11b2db5..3115cd2 100644
--- a/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.ts
+++ b/src/features/bulkReportReplies/infrastructure/repositories/messageInfo/messageInfo.repository.adapter.ts
@@ -30,7 +30,7 @@
 
   private getMessageId(elementInsideMessage: Element) {
     const messageElement = elementInsideMessage.closest(
-      '.scTailwindThreadMessageMessagecardcontent',
+      '.scTailwindThreadMessageMessagecardcontent, .scTailwindThreadMessageCommentcardnested-reply',
     );
     if (messageElement === null) {
       throw new Error(