@Test void testCycleHoverChild() { assertThrows(IllegalStateException.class, () -> { final Component hoverComponent = TextComponent.builder().content("hover child").build(); final Component component = TextComponent.builder().content("cat") .hoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, TextComponent.builder().content("hover").build().append(hoverComponent))) .build(); // component's hover event value contains hoverComponent, we should not be able to add it hoverComponent.append(component); fail("A component was added to itself"); }); } }