From 767b981019c42402036fec6b78fef1c1c502558a Mon Sep 17 00:00:00 2001 From: Matroskeen <matroskeen@3426249.no-reply.drupal.org> Date: Sat, 9 Apr 2022 17:00:49 +0000 Subject: [PATCH] Issue #2822737 by Matroskeen, mpriscella, cruno: Configuration is not cleaned on uninstall process of example modules (Migrate Example, Migrate Example (Advanced), Migrate JSON Example) --- .../install/comment.type.node_comments.yml | 5 +- .../field.storage.node.field_comments.yml | 3 ++ ....node.field_migrate_example_beer_style.yml | 3 ++ ...age.node.field_migrate_example_country.yml | 3 ++ ...orage.node.field_migrate_example_image.yml | 3 ++ ...ge.user.field_migrate_example_favbeers.yml | 3 ++ ...rage.user.field_migrate_example_gender.yml | 3 ++ .../node.type.migrate_example_beer.yml | 4 ++ ...vocabulary.migrate_example_beer_styles.yml | 5 +- .../tests/src/Kernel/MigrateExampleTest.php | 18 +++++++ ....type.migrate_example_advanced_comment.yml | 5 +- ...e.node.field_migrate_example_adv_image.yml | 3 ++ ...ge.node.field_migrate_example_comments.yml | 3 ++ ....node.field_migrate_example_top_vintag.yml | 3 ++ ...e.node.field_migrate_example_wine_best.yml | 3 ++ ....node.field_migrate_example_wine_ratin.yml | 3 ++ ....node.field_migrate_example_wine_regio.yml | 3 ++ ...ge.node.field_migrate_example_wine_var.yml | 3 ++ ...taxonomy_term.field_variety_attributes.yml | 3 ++ .../node.type.migrate_example_producer.yml | 5 +- .../node.type.migrate_example_wine.yml | 5 +- ...urce.migrate_example_advanced_position.yml | 4 ++ ...migrate_example_advanced_variety_items.yml | 4 ++ ....migrate_example_advanced_variety_list.yml | 4 ++ ...rate_example_advanced_variety_multiple.yml | 4 ++ ...abulary.migrate_example_wine_best_with.yml | 5 +- ...ocabulary.migrate_example_wine_regions.yml | 5 +- ...abulary.migrate_example_wine_varieties.yml | 5 +- .../Functional/MigrateExampleAdvancedTest.php | 48 +++++++++++++++++++ .../field.storage.node.field_description.yml | 3 ++ .../field.storage.node.field_price.yml | 3 ++ .../optional/field.storage.node.field_upc.yml | 3 ++ .../config/optional/node.type.product.yml | 3 ++ .../src/Kernel/MigrateJsonExampleTest.php | 19 ++++++++ 34 files changed, 191 insertions(+), 8 deletions(-) create mode 100644 migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php diff --git a/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml b/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml index 07629a81..c4b4d195 100644 --- a/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml +++ b/migrate_example/migrate_example_setup/config/install/comment.type.node_comments.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_setup id: node_comments label: 'Node comments' target_entity_type_id: node diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml index fd01476f..eab959ee 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_comments.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - comment - node diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml index 9a037d7d..36e19239 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_beer_style.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - node - taxonomy diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml index 7f2ca760..071b1b0e 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_country.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - node id: node.field_migrate_example_country diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml index db02f162..6b1427b4 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.node.field_migrate_example_image.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - file - image diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml index 54bbe12c..4b41bc7d 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_favbeers.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - node - user diff --git a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml index 34fcc903..b0c48469 100644 --- a/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml +++ b/migrate_example/migrate_example_setup/config/install/field.storage.user.field_migrate_example_gender.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_setup module: - user id: user.field_migrate_example_gender diff --git a/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml b/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml index 24c2e1da..33f243e8 100644 --- a/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml +++ b/migrate_example/migrate_example_setup/config/install/node.type.migrate_example_beer.yml @@ -1,5 +1,9 @@ langcode: en status: true +dependencies: + enforced: + module: + - migrate_example_setup name: Beer type: migrate_example_beer description: 'Beer is what we drink.' diff --git a/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml b/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml index afad4b0d..93d8be8d 100644 --- a/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml +++ b/migrate_example/migrate_example_setup/config/install/taxonomy.vocabulary.migrate_example_beer_styles.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_setup name: 'Migrate Example Beer Styles' vid: migrate_example_beer_styles description: 'Use tags to group beers on similar topics into categories.' diff --git a/migrate_example/tests/src/Kernel/MigrateExampleTest.php b/migrate_example/tests/src/Kernel/MigrateExampleTest.php index 6933265b..d30b97be 100755 --- a/migrate_example/tests/src/Kernel/MigrateExampleTest.php +++ b/migrate_example/tests/src/Kernel/MigrateExampleTest.php @@ -4,6 +4,7 @@ declare(strict_types = 1); namespace Drupal\Tests\migrate_example\Kernel; +use Drupal\node\Entity\NodeType; use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase; /** @@ -40,6 +41,7 @@ final class MigrateExampleTest extends MigrateDrupalTestBase { $this->installSchema('system', ['sequences']); $this->installSchema('comment', ['comment_entity_statistics']); $this->installSchema('node', ['node_access']); + $this->installSchema('user', ['users_data']); // Install the module via installer to trigger hook_install. \Drupal::service('module_installer')->install(['migrate_example_setup']); @@ -71,4 +73,20 @@ final class MigrateExampleTest extends MigrateDrupalTestBase { $this->assertCount(5, $comments); } + /** + * Tests whether the module can be uninstalled and installed again. + * + * Also, checks whether the example configs are removed after uninstall. + */ + public function testModuleCleanup(): void { + $test_node_type = 'migrate_example_beer'; + // Prove that test content type existed before the uninstall process. + $this->assertInstanceOf(NodeType::class, NodeType::load($test_node_type)); + \Drupal::service('module_installer')->uninstall(['migrate_example_setup']); + // Make sure the test content type was removed. + $this->assertNull(NodeType::load($test_node_type)); + // Check whether the module can be installed again. + \Drupal::service('module_installer')->install(['migrate_example_setup']); + } + } diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml index ba582793..f44a92dd 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/comment.type.migrate_example_advanced_comment.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_comment label: 'Node comments' target_entity_type_id: node diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml index 62fc9b09..b7fb3fa8 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_adv_image.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - file - image diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml index 1d7b9f10..68b0b084 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_comments.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - comment - node diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml index 86b0c27b..e385fe70 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_top_vintag.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node id: node.field_migrate_example_top_vintag diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml index 9026e588..3b9e548c 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_best.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node - taxonomy diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml index fc3dbe9c..ae93a089 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_ratin.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node id: node.field_migrate_example_wine_ratin diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml index 3b2b1633..78c072d7 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_regio.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node - taxonomy diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml index cca7a39f..111a584b 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.node.field_migrate_example_wine_var.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - node - taxonomy diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml index e5db23f2..a78c0442 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/field.storage.taxonomy_term.field_variety_attributes.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_example_advanced_setup module: - taxonomy id: taxonomy_term.field_variety_attributes diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml index 4d78fee8..88adc888 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_producer.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Wine Producer' type: migrate_example_producer description: 'Wineries, vineyards, and large producers.' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml index 6f442d5e..6dcd5031 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/node.type.migrate_example_wine.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: Wine type: migrate_example_wine description: 'Wine is what we drink.' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml index 6a79fc90..13aa0361 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_position.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_position plugin_id: 'migrate_example_advanced_position' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml index bf2518a5..c2b13e93 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_items.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_variety_items plugin_id: 'migrate_example_advanced_variety_items' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml index f19dc60f..1ebd8e6c 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_list.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_variety_list plugin_id: 'migrate_example_advanced_variety_list' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml index c8960369..94a99c45 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/rest.resource.migrate_example_advanced_variety_multiple.yml @@ -1,3 +1,7 @@ +dependencies: + enforced: + module: + - migrate_example_advanced_setup id: migrate_example_advanced_variety_multiple plugin_id: 'migrate_example_advanced_variety_multiple' granularity: method diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml index 51cb1c93..b06d658a 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_best_with.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Migrate Example Wine Best With' vid: migrate_example_wine_best_with description: 'Foods the wine goes best with' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml index 9ebbadfc..875df550 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_regions.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Migrate Example Wine Regions' vid: migrate_example_wine_regions description: 'Wine regions' diff --git a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml index ca12aca5..6b1d6598 100644 --- a/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml +++ b/migrate_example_advanced/migrate_example_advanced_setup/config/install/taxonomy.vocabulary.migrate_example_wine_varieties.yml @@ -1,6 +1,9 @@ langcode: en status: true -dependencies: { } +dependencies: + enforced: + module: + - migrate_example_advanced_setup name: 'Migrate Example Wine Varieties' vid: migrate_example_wine_varieties description: 'Wine varieties' diff --git a/migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php b/migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php new file mode 100644 index 00000000..a9b5d2e5 --- /dev/null +++ b/migrate_example_advanced/tests/src/Functional/MigrateExampleAdvancedTest.php @@ -0,0 +1,48 @@ +<?php + +namespace Drupal\Tests\migrate_example_advanced\Functional; + +use Drupal\node\Entity\NodeType; +use Drupal\Tests\BrowserTestBase; + +/** + * Tests migrate_example_advanced migrations. + * + * @group migrate_plus + */ +class MigrateExampleAdvancedTest extends BrowserTestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'node', + 'taxonomy', + 'path', + 'migrate_plus', + 'migrate_example_advanced', + 'migrate_example_advanced_setup', + ]; + + /** + * {@inheritdoc} + */ + protected $defaultTheme = 'stark'; + + /** + * Tests whether the module can be uninstalled and installed again. + * + * Also, checks whether the example configs are removed after uninstall. + */ + public function testModuleCleanup(): void { + $test_node_type = 'migrate_example_producer'; + // Prove that test content type existed before the uninstall process. + $this->assertInstanceOf(NodeType::class, NodeType::load($test_node_type)); + \Drupal::service('module_installer')->uninstall(['migrate_example_advanced_setup']); + // Make sure the test content type was removed. + $this->assertNull(NodeType::load($test_node_type)); + // Check whether test configuration files were removed. + \Drupal::service('module_installer')->install(['migrate_example_advanced_setup']); + } + +} diff --git a/migrate_json_example/config/optional/field.storage.node.field_description.yml b/migrate_json_example/config/optional/field.storage.node.field_description.yml index a5c39580..5472e66a 100644 --- a/migrate_json_example/config/optional/field.storage.node.field_description.yml +++ b/migrate_json_example/config/optional/field.storage.node.field_description.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - node id: node.field_description diff --git a/migrate_json_example/config/optional/field.storage.node.field_price.yml b/migrate_json_example/config/optional/field.storage.node.field_price.yml index 090acad3..298dcc01 100644 --- a/migrate_json_example/config/optional/field.storage.node.field_price.yml +++ b/migrate_json_example/config/optional/field.storage.node.field_price.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - node id: node.field_price diff --git a/migrate_json_example/config/optional/field.storage.node.field_upc.yml b/migrate_json_example/config/optional/field.storage.node.field_upc.yml index 149b11da..1e8bfcde 100644 --- a/migrate_json_example/config/optional/field.storage.node.field_upc.yml +++ b/migrate_json_example/config/optional/field.storage.node.field_upc.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - node id: node.field_upc diff --git a/migrate_json_example/config/optional/node.type.product.yml b/migrate_json_example/config/optional/node.type.product.yml index 18d8499d..3482ef87 100644 --- a/migrate_json_example/config/optional/node.type.product.yml +++ b/migrate_json_example/config/optional/node.type.product.yml @@ -1,6 +1,9 @@ langcode: en status: true dependencies: + enforced: + module: + - migrate_json_example module: - menu_ui third_party_settings: diff --git a/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php b/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php index d6d3232d..6382be8c 100755 --- a/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php +++ b/migrate_json_example/tests/src/Kernel/MigrateJsonExampleTest.php @@ -4,6 +4,7 @@ declare(strict_types = 1); namespace Drupal\Tests\migrate_json_example\Kernel; +use Drupal\node\Entity\NodeType; use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase; /** @@ -20,6 +21,7 @@ final class MigrateJsonExampleTest extends MigrateDrupalTestBase { 'node', 'file', 'text', + 'menu_ui', 'migrate_plus', ]; @@ -32,6 +34,7 @@ final class MigrateJsonExampleTest extends MigrateDrupalTestBase { $this->installConfig(['node']); $this->installEntitySchema('file'); $this->installSchema('file', ['file_usage']); + $this->installSchema('user', ['users_data']); // Install the module via installer to trigger hook_install. \Drupal::service('module_installer')->install(['migrate_json_example']); @@ -49,4 +52,20 @@ final class MigrateJsonExampleTest extends MigrateDrupalTestBase { $this->assertCount(2, $node_storage->loadMultiple()); } + /** + * Tests whether the module can be uninstalled and installed again. + * + * Also, checks whether the example configs are removed after uninstall. + */ + public function testModuleCleanup(): void { + $test_node_type = 'product'; + // Prove that test content type existed before the uninstall process. + $this->assertInstanceOf(NodeType::class, NodeType::load($test_node_type)); + \Drupal::service('module_installer')->uninstall(['migrate_json_example']); + // Make sure the test content type was removed. + $this->assertNull(NodeType::load($test_node_type)); + // Check whether test configuration files were removed. + \Drupal::service('module_installer')->install(['migrate_json_example']); + } + } -- GitLab