public GoConfigHolder loadConfigHolder(final String content, Callback callback) throws Exception {
        CruiseConfig configForEdit;
        CruiseConfig config;
        LOGGER.debug("[Config Save] Loading config holder");
        configForEdit = deserializeConfig(content);
        if (callback != null) callback.call(configForEdit);
        config = preprocessAndValidate(configForEdit);

        return new GoConfigHolder(config, configForEdit);
    }
@Test
    void shouldLoadAllowOnlySuccessOnSuccessApprovalType() throws Exception {
        String content = config(
                """
                        <pipelines group="first">
                        <pipeline name="pipeline">
                          <materials>
                            <hg url="/hgrepo"/>
                          </materials>
                          <stage name="mingle">
                            <approval type="success" allowOnlyOnSuccess="true" />
                            <jobs>
                                <job name="functional">
                                    <tasks>
                                      <exec command="echo">
                                        <runif status="passed" />
                                      </exec>
                                    </tasks>
                                </job>
                            </jobs>
                          </stage>
                        </pipeline>
                        </pipelines>""", CONFIG_SCHEMA_VERSION);

        CruiseConfig config = xmlLoader.loadConfigHolder(goConfigMigration.upgradeIfNecessary(content)).config;

        Approval approval = config
                .getPipelineConfigByName(new CaseInsensitiveString("pipeline"))
                .getStage("mingle")
                .getApproval();

        assertThat(approval.getType()).isEqualTo("success");
        assertThat(approval.isAllowOnlyOnSuccess()).isEqualTo(true);
    }