Skip to content
Snippets Groups Projects
Verified Commit a225c0a3 authored by Dave Long's avatar Dave Long
Browse files

Issue #3447994 by Akhil Babu, Josue2591, thejimbirch, mikelutz, jnicola,...

Issue #3447994 by Akhil Babu, Josue2591, thejimbirch, mikelutz, jnicola, b_sharpe: Example recipe isn't functional

(cherry picked from commit e9574d73)
parent 8964a2de
No related branches found
No related tags found
3 merge requests!11769Issue #3517987: Add option to contextual filters to encode slashes in query parameter.,!11185Issue #3477324 by andypost, alexpott: Fix usage of str_getcsv() and fgetcsv() for PHP 8.4,!9944Issue #3483353: Consider making the createCopy config action optionally fail...
Pipeline #247073 passed with warnings
Pipeline: drupal

#247094

    Pipeline: drupal

    #247089

      Pipeline: drupal

      #247083

        +1
        {
        "name": "drupal_recipe/example",
        "description": "An example Drupal recipe description",
        "type": "drupal-recipe",
        "require": {
        "drupal/core": "^10.0.x-dev"
        },
        "license": "GPL-2.0-or-later"
        }
        # The type key is similar to the package key in module.info.yml. It
        # can be used by the UI to group Drupal recipes. Additionally,
        # the type 'Site' means that the Drupal recipe will be listed in
        # the installer.
        type: 'Content type'
        # The name of the recipe.
        name: 'Example'
        # The description of the recipe.
        description: 'Provides an example recipe.'
        # The type key is similar to the package key in module.info.yml. It can be used
        # to group Drupal recipes.
        type: 'Content type'
        install:
        # An array of modules or themes to install, if they are not already.
        # The system will detect if it is a theme or a module. During the
        # install only simple configuration from the new modules is created.
        # This allows the Drupal recipe control over the configuration.
        # An array of modules or themes to install if they are not already. The system
        # will detect if it is a theme or a module. During the install only simple
        # configuration from the new modules is created. This allows the Drupal recipe
        # control over the configuration.
        - node
        - text
        config:
        # A Drupal recipe can have a config directory. All configuration
        # is this directory will be imported after the modules have been
        # installed.
        # Additionally, the Drupal recipe can install configuration entities
        # provided by the modules it configures. This allows them to not have
        # to maintain or copy this configuration. Note the examples below are
        # fictitious.
        # A Drupal recipe can have a config directory. All configuration is this
        # directory will be imported after the modules have been installed.
        # Additionally, the Drupal recipe can install configuration entities provided
        # by the modules it configures. This allows them to not have to maintain or
        # copy this configuration.
        import:
        node:
        - node.type.article
        # Import all configuration that is provided by the text module and any
        text:
        - text.settings
        # Import all configuration that is provided by the node module and any
        # optional configuration that depends on the text module that is provided by
        # modules already installed.
        text: '*'
        node: '*'
        # Configuration actions may be defined. The structure here should be
        # entity_type.ID.action. Below the user role entity type with an ID of
        # editor is having the permissions added. The permissions key will be
        # mapped to the \Drupal\user\Entity\Role::grantPermission() method.
        actions:
        user.role.editor:
        createIfNotExists:
        label: 'Editor'
        grantPermissions:
        - 'delete any article content'
        - 'edit any article content'
        content: {}
        # A Drupal recipe can have a content directory. All content in this
        # directory will be created after the configuration is installed.
        text.settings:
        simpleConfigUpdate:
        default_summary_length: 700
        # A Drupal recipe can have a content directory. All content in this directory
        # will be created after the configuration is installed.
        ......@@ -7,6 +7,7 @@
        use Drupal\Core\Recipe\Recipe;
        use Drupal\Core\Recipe\RecipeFileException;
        use Drupal\Core\Recipe\RecipePreExistingConfigException;
        use Drupal\Core\Recipe\RecipeRunner;
        use Drupal\KernelTests\KernelTestBase;
        /**
        ......@@ -67,4 +68,16 @@ public function testPreExistingMatchingConfiguration(): void {
        $this->assertSame('core/tests/fixtures/recipes/install_node_with_config/config', $recipe->config->recipeConfigDirectory);
        }
        public function testExampleRecipe(): void {
        // The example recipe imports all the configurations from the node module
        // including optional configurations associated with the search and view
        // modules. So we have to install them before applying the example recipe.
        $this->container->get('module_installer')->install(['search', 'views']);
        // Apply the example recipe.
        $recipe = Recipe::createFromDirectory('core/recipes/example');
        RecipeRunner::processRecipe($recipe);
        // Verify if the 'default_summary_length' value is updated.
        $this->assertSame($this->config('text.settings')->get('default_summary_length'), 700);
        }
        }
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Please register or to comment