Issue #3447994 by Akhil Babu, Josue2591, thejimbirch, mikelutz, jnicola, b_sharpe: Example recipe isn't functional
parent
b6c02433e1
commit
e9574d73b2
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"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"
|
||||
}
|
|
@ -1,47 +1,37 @@
|
|||
# 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 @@ namespace Drupal\KernelTests\Core\Recipe;
|
|||
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 @@ class RecipeTest extends KernelTestBase {
|
|||
$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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue