[tests] verify meshcop service after a `factoryreset` (#7592)

diff --git a/tests/scripts/thread-cert/border_router/test_publish_meshcop_service.py b/tests/scripts/thread-cert/border_router/test_publish_meshcop_service.py
index bf47e1d..17a201b 100755
--- a/tests/scripts/thread-cert/border_router/test_publish_meshcop_service.py
+++ b/tests/scripts/thread-cert/border_router/test_publish_meshcop_service.py
@@ -130,6 +130,12 @@
         self.check_meshcop_service(br1, host)
         self.check_meshcop_service(br2, host)
 
+        br1.factory_reset()
+        br1.set_network_name('ot-br-1-3')
+        self.assertEqual(len(host.browse_mdns_services('_meshcop._udp')), 2)
+        self.check_meshcop_service(br1, host)
+        self.check_meshcop_service(br2, host)
+
     def check_meshcop_service(self, br, host):
         services = self.discover_all_meshcop_services(host)
         for service in services:
diff --git a/tests/scripts/thread-cert/node.py b/tests/scripts/thread-cert/node.py
index c176f34..5d256e5 100755
--- a/tests/scripts/thread-cert/node.py
+++ b/tests/scripts/thread-cert/node.py
@@ -2145,7 +2145,13 @@
         return result
 
     def reset(self):
-        self.send_command('reset', expect_command_echo=False)
+        self._reset('reset')
+
+    def factory_reset(self):
+        self._reset('factoryreset')
+
+    def _reset(self, cmd):
+        self.send_command(cmd, expect_command_echo=False)
         time.sleep(self.RESET_DELAY)
         # Send a "version" command and drain the CLI output after reset
         self.send_command('version', expect_command_echo=False)