private Mono<ServerResponse> getByName(ServerRequest request) {
        return determineMenuName(request)
            .flatMap(menuFinder::getByName)
            .flatMap(menuVo -> ServerResponse.ok()
                .contentType(MediaType.APPLICATION_JSON)
                .bodyValue(menuVo)
            );
    }
@Test
    void getMenuByName() {
        Metadata metadata = new Metadata();
        metadata.setName("test-menu");
        MenuVo menuVo = MenuVo.builder()
            .metadata(metadata)
            .spec(new Menu.Spec())
            .menuItems(List.of(MenuItemVo.from(createMenuItem("item2"))))
            .build();
        when(menuFinder.getByName(eq("test-menu")))
            .thenReturn(Mono.just(menuVo));

        webClient.get().uri("/menus/test-menu")
            .exchange()
            .expectStatus().isOk()
            .expectHeader().contentType(MediaType.APPLICATION_JSON)
            .expectBody()
            .jsonPath("$.metadata.name").isEqualTo("test-menu")
            .jsonPath("$.menuItems[0].metadata.name").isEqualTo("item2");

        verify(menuFinder).getByName(eq("test-menu"));
    }