@ParameterizedTest
    @ValueSource(strings = {"zk", "kraft"})
    public void testDescribeAndListTopicsWithoutInternalTopics(String quorum) {
        TestUtils.createTopicWithAdmin(adminClient, testTopicName, scalaBrokers, scalaControllers, defaultNumPartitions, defaultReplicationFactor,
                scala.collection.immutable.Map$.MODULE$.empty(), new Properties()
        );
        TestUtils.createTopicWithAdmin(adminClient, Topic.GROUP_METADATA_TOPIC_NAME, scalaBrokers, scalaControllers, defaultNumPartitions, defaultReplicationFactor,
                scala.collection.immutable.Map$.MODULE$.empty(), new Properties()
        );
        // test describe
        String output = captureDescribeTopicStandardOut(buildTopicCommandOptionsWithBootstrap("--describe", "--describe", "--exclude-internal"));
        assertTrue(output.contains(testTopicName),
            String.format("Output should have contained %s", testTopicName));
        assertFalse(output.contains(Topic.GROUP_METADATA_TOPIC_NAME),
                "Output should not have contained " + Topic.GROUP_METADATA_TOPIC_NAME);

        // test list
        output = captureListTopicStandardOut(buildTopicCommandOptionsWithBootstrap("--list", "--exclude-internal"));
        assertTrue(output.contains(testTopicName), String.format("Output should have contained %s", testTopicName));
        assertFalse(output.contains(Topic.GROUP_METADATA_TOPIC_NAME),
                "Output should not have contained " + Topic.GROUP_METADATA_TOPIC_NAME);
    }
Test describe --under-min-isr-partitions option with four topics:
  (1) topic with partition under the configured min ISR count
  (2) topic with under-replicated partition (but not under min ISR count)
  (3) topic with offline partition
  (4) topic with fully replicated partition

Output should only display the (1) topic with partition under min ISR count and (3) topic with offline partition
tools/src/test/java/org/apache/kafka/tools/TopicCommandIntegrationTest.java