The master-is-stable indicator will retrieve useful information
regarding the discovery. This will be useful even if the local
cluster state is not recovered.

We currently do not evaluate the instance-has-master indicator
if the cluster state is not recovered, but we should remove this
constraint once master-is-stable is merged
server/src/test/java/org/elasticsearch/health/HealthServiceTests.java
var shardsAvailable = new HealthIndicatorResult("shards_availability", "data", GREEN, null, null, null, null, null);
        var service = new HealthService(
            List.of(createMockHealthIndicatorService(hasMaster)),
            List.of(
                createMockHealthIndicatorService(networkLatency),
                createMockHealthIndicatorService(slowTasks),
                createMockHealthIndicatorService(shardsAvailable)
            ),
            mockEmptyClusterService()
        );
        
        List<HealthComponentResult> health = service.getHealth(null, null, false);
        assertThat(health.size(), is(equalTo(2)));
        {
            HealthComponentResult component1 = health.stream()
                .filter(result -> result.name().equals("coordination"))
                .findAny()
                .orElseThrow();
            assertThat(component1.status(), is(equalTo(YELLOW)));
            assertThat(component1.indicators(), is(notNullValue()));
            assertThat(component1.indicators(), containsInAnyOrder(hasMaster, networkLatency, slowTasks));
        }
        {
            HealthComponentResult component2 = health.stream().filter(result -> result.name().equals("data")).findAny().orElseThrow();
            assertThat(component2.status(), is(equalTo(GREEN)));
            assertThat(component2.indicators(), is(notNullValue()));
            assertThat(component2.indicators(), contains(shardsAvailable));
        }
        
        health = service.getHealth("coordination", null, false);