@Override
    public Result reconcile(Request request) {
        String name = request.name();
        if (!isSystemSetting(name)) {
            return new Result(false, null);
        }
        client.fetch(ConfigMap.class, name)
            .ifPresent(configMap -> {
                addFinalizerIfNecessary(configMap);
                routeRuleReconciler.reconcile(name);
                customizeSystem(name);
            });
        return new Result(false, null);
    }
@Test
    void reconcileCategoriesRule() {
        ConfigMap configMap = systemConfigMapForRouteRule(rules -> {
            rules.setCategories("categories-new");
            return rules;
        });
        when(environmentFetcher.getConfigMapBlocking()).thenReturn(Optional.of(configMap));
        when(client.fetch(eq(ConfigMap.class), eq(SystemSetting.SYSTEM_CONFIG)))
            .thenReturn(Optional.of(configMap));
        systemSettingReconciler.reconcile(new Reconciler.Request(SystemSetting.SYSTEM_CONFIG));
        ArgumentCaptor<ConfigMap> captor = ArgumentCaptor.forClass(ConfigMap.class);
        verify(client, times(1)).update(captor.capture());

        ConfigMap updatedConfigMap = captor.getValue();
        assertThat(rulesFrom(updatedConfigMap).getCategories()).isEqualTo("categories-new");

        assertThat(oldRulesFromAnno(updatedConfigMap).getCategories()).isEqualTo("categories-new");

        verify(applicationContext, times(1)).publishEvent(any());
    }