diff --git a/tests/modules/depcalc_test/config/install/block_content.type.basic.yml b/tests/modules/depcalc_test/config/install/block_content.type.basic.yml
new file mode 100644
index 0000000..2c47137
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/block_content.type.basic.yml
@@ -0,0 +1,10 @@
+uuid: 7e8a6cfa-e7d6-42e1-a0b0-d7d996005a25
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: zglzjmYxi0G0ag9MZ02y0LSJOdpWRwJxyP_OvFojFyo
+id: basic
+label: 'Basic block'
+revision: 0
+description: 'A basic block contains a title and a body.'
diff --git a/tests/modules/depcalc_test/config/install/comment.type.comment.yml b/tests/modules/depcalc_test/config/install/comment.type.comment.yml
new file mode 100644
index 0000000..0dc70e1
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/comment.type.comment.yml
@@ -0,0 +1,10 @@
+uuid: 86fe9e43-0cc5-4be1-babc-0519d00ae066
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: bqZsN31T2n0UjcbyCpOPi9D2iO0sAOHR7FnEs9qMvaA
+id: comment
+label: 'Default comments'
+target_entity_type_id: node
+description: 'Allows commenting on content'
diff --git a/tests/modules/depcalc_test/config/install/core.entity_form_display.block_content.basic.default.yml b/tests/modules/depcalc_test/config/install/core.entity_form_display.block_content.basic.default.yml
new file mode 100644
index 0000000..137f967
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_form_display.block_content.basic.default.yml
@@ -0,0 +1,35 @@
+uuid: e4ee411c-305d-4696-bada-3b7f41b5611b
+langcode: en
+status: true
+dependencies:
+  config:
+    - block_content.type.basic
+    - field.field.block_content.basic.body
+  module:
+    - text
+_core:
+  default_config_hash: jAps3FCxvKecABS_tgExbhCZrBLQB3bNPWw18WjE3ss
+id: block_content.basic.default
+targetEntityType: block_content
+bundle: basic
+mode: default
+content:
+  body:
+    type: text_textarea_with_summary
+    weight: -4
+    region: content
+    settings:
+      rows: 9
+      summary_rows: 3
+      placeholder: ''
+      show_summary: false
+    third_party_settings: {  }
+  info:
+    type: string_textfield
+    weight: -5
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_form_display.comment.comment.default.yml b/tests/modules/depcalc_test/config/install/core.entity_form_display.comment.comment.default.yml
new file mode 100644
index 0000000..4f44bf2
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_form_display.comment.comment.default.yml
@@ -0,0 +1,36 @@
+uuid: 660d266e-1383-4b1c-b492-1b209c14052c
+langcode: en
+status: true
+dependencies:
+  config:
+    - comment.type.comment
+    - field.field.comment.comment.comment_body
+  module:
+    - text
+_core:
+  default_config_hash: I0Pa0aQvT_jawlPo9oz4FE3h_ickc55dYKTPl6gILes
+id: comment.comment.default
+targetEntityType: comment
+bundle: comment
+mode: default
+content:
+  author:
+    weight: -2
+    region: content
+  comment_body:
+    type: text_textarea
+    weight: 11
+    region: content
+    settings:
+      rows: 5
+      placeholder: ''
+    third_party_settings: {  }
+  subject:
+    type: string_textfield
+    weight: 10
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_form_display.node.article.default.yml b/tests/modules/depcalc_test/config/install/core.entity_form_display.node.article.default.yml
new file mode 100644
index 0000000..96a1732
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_form_display.node.article.default.yml
@@ -0,0 +1,109 @@
+uuid: 958a4894-c5af-4867-a2ce-4909e0c60bcf
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.node.article.body
+    - field.field.node.article.comment
+    - field.field.node.article.field_image
+    - field.field.node.article.field_tags
+    - image.style.thumbnail
+    - node.type.article
+  module:
+    - comment
+    - image
+    - path
+    - text
+_core:
+  default_config_hash: 6VUXB1jTUjK5zjkfMa2Kd2WW4sFUlgfBlfJSx01qLpU
+id: node.article.default
+targetEntityType: node
+bundle: article
+mode: default
+content:
+  body:
+    type: text_textarea_with_summary
+    weight: 1
+    region: content
+    settings:
+      rows: 9
+      summary_rows: 3
+      placeholder: ''
+      show_summary: false
+    third_party_settings: {  }
+  comment:
+    type: comment_default
+    weight: 20
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  created:
+    type: datetime_timestamp
+    weight: 10
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_image:
+    type: image_image
+    weight: 4
+    region: content
+    settings:
+      progress_indicator: throbber
+      preview_image_style: thumbnail
+    third_party_settings: {  }
+  field_tags:
+    type: entity_reference_autocomplete_tags
+    weight: 3
+    region: content
+    settings:
+      match_operator: CONTAINS
+      match_limit: 10
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  path:
+    type: path
+    weight: 30
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  promote:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 15
+    region: content
+    third_party_settings: {  }
+  status:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 120
+    region: content
+    third_party_settings: {  }
+  sticky:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 16
+    region: content
+    third_party_settings: {  }
+  title:
+    type: string_textfield
+    weight: 0
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  uid:
+    type: entity_reference_autocomplete
+    weight: 5
+    region: content
+    settings:
+      match_operator: CONTAINS
+      match_limit: 10
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_form_display.node.page.default.yml b/tests/modules/depcalc_test/config/install/core.entity_form_display.node.page.default.yml
new file mode 100644
index 0000000..56a9383
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_form_display.node.page.default.yml
@@ -0,0 +1,90 @@
+uuid: a6f9cb4a-4f12-46e8-a4e6-d27214f7f7d3
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.node.page.body
+    - field.field.node.page.field_article
+    - node.type.page
+  module:
+    - path
+    - text
+_core:
+  default_config_hash: AD_lefuYmjsKeH3OQApsyP_nLj6ZnGaALznLQSQ0Z_o
+id: node.page.default
+targetEntityType: node
+bundle: page
+mode: default
+content:
+  body:
+    type: text_textarea_with_summary
+    weight: 31
+    region: content
+    settings:
+      rows: 9
+      summary_rows: 3
+      placeholder: ''
+      show_summary: false
+    third_party_settings: {  }
+  created:
+    type: datetime_timestamp
+    weight: 10
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_article:
+    weight: 121
+    settings:
+      match_operator: CONTAINS
+      match_limit: 10
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+    type: entity_reference_autocomplete
+    region: content
+  path:
+    type: path
+    weight: 30
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  promote:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 15
+    region: content
+    third_party_settings: {  }
+  status:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 120
+    region: content
+    third_party_settings: {  }
+  sticky:
+    type: boolean_checkbox
+    settings:
+      display_label: true
+    weight: 16
+    region: content
+    third_party_settings: {  }
+  title:
+    type: string_textfield
+    weight: -5
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  uid:
+    type: entity_reference_autocomplete
+    weight: 5
+    region: content
+    settings:
+      match_operator: CONTAINS
+      match_limit: 10
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_form_display.user.user.default.yml b/tests/modules/depcalc_test/config/install/core.entity_form_display.user.user.default.yml
new file mode 100644
index 0000000..da9f481
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_form_display.user.user.default.yml
@@ -0,0 +1,38 @@
+uuid: 2074a437-8497-4b0e-9cf4-f49e6adf859b
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.user.user.user_picture
+    - image.style.thumbnail
+  module:
+    - image
+    - user
+_core:
+  default_config_hash: K-1rBM8mTIkFp9RqOC2tMRUukOQ1xbRCfSKK8dEddnA
+id: user.user.default
+targetEntityType: user
+bundle: user
+mode: default
+content:
+  account:
+    weight: -10
+    region: content
+  contact:
+    weight: 5
+    region: content
+  language:
+    weight: 0
+    region: content
+  timezone:
+    weight: 6
+    region: content
+  user_picture:
+    type: image_image
+    settings:
+      progress_indicator: throbber
+      preview_image_style: thumbnail
+    third_party_settings: {  }
+    weight: -1
+    region: content
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_form_mode.user.register.yml b/tests/modules/depcalc_test/config/install/core.entity_form_mode.user.register.yml
new file mode 100644
index 0000000..bdc7b2f
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_form_mode.user.register.yml
@@ -0,0 +1,12 @@
+uuid: 29486229-1769-4ec2-b690-81110151b028
+langcode: en
+status: true
+dependencies:
+  module:
+    - user
+_core:
+  default_config_hash: flXhTcp55yLcyy7ZLOhPGKGZobZQJdkAFVWV3LseiuI
+id: user.register
+label: Register
+targetEntityType: user
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.block_content.basic.default.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.block_content.basic.default.yml
new file mode 100644
index 0000000..a7fca99
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.block_content.basic.default.yml
@@ -0,0 +1,24 @@
+uuid: c3e2f4e0-587e-4a13-97bb-837f9ef52443
+langcode: en
+status: true
+dependencies:
+  config:
+    - block_content.type.basic
+    - field.field.block_content.basic.body
+  module:
+    - text
+_core:
+  default_config_hash: orJpHUlAc_wiQLMUjIgEJXGeiqylGHMPcmNRjGtct-M
+id: block_content.basic.default
+targetEntityType: block_content
+bundle: basic
+mode: default
+content:
+  body:
+    label: hidden
+    type: text_default
+    weight: 0
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.comment.comment.default.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.comment.comment.default.yml
new file mode 100644
index 0000000..87a8483
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.comment.comment.default.yml
@@ -0,0 +1,27 @@
+uuid: bc0e1d2e-cf32-4f00-84f8-8517ffc4c3a4
+langcode: en
+status: true
+dependencies:
+  config:
+    - comment.type.comment
+    - field.field.comment.comment.comment_body
+  module:
+    - text
+_core:
+  default_config_hash: 77Ye1kR-P6AaiGfEO8mnXNSr7nqtnP3PiiVBwJeGGMI
+id: comment.comment.default
+targetEntityType: comment
+bundle: comment
+mode: default
+content:
+  comment_body:
+    label: hidden
+    type: text_default
+    weight: 0
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  links:
+    weight: 100
+    region: content
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.default.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.default.yml
new file mode 100644
index 0000000..f6e90f9
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.default.yml
@@ -0,0 +1,63 @@
+uuid: 01684b4a-9019-4d00-b6f4-84e9ee50b9e6
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_display.comment.comment.default
+    - field.field.node.article.body
+    - field.field.node.article.comment
+    - field.field.node.article.field_image
+    - field.field.node.article.field_tags
+    - image.style.large
+    - node.type.article
+  module:
+    - comment
+    - image
+    - text
+    - user
+_core:
+  default_config_hash: ChmU3AVqDKU32A_fyChG0W9dTRKmVBR58B6OClCLvZI
+id: node.article.default
+targetEntityType: node
+bundle: article
+mode: default
+content:
+  body:
+    type: text_default
+    weight: 0
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+    label: hidden
+  comment:
+    type: comment_default
+    weight: 110
+    region: content
+    label: above
+    settings:
+      view_mode: default
+      pager_id: 0
+    third_party_settings: {  }
+  field_image:
+    type: image
+    weight: -1
+    region: content
+    settings:
+      image_style: large
+      image_link: ''
+    third_party_settings: {  }
+    label: hidden
+  field_tags:
+    type: entity_reference_label
+    weight: 10
+    region: content
+    label: above
+    settings:
+      link: true
+    third_party_settings: {  }
+  links:
+    weight: 100
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.rss.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.rss.yml
new file mode 100644
index 0000000..45646b2
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.rss.yml
@@ -0,0 +1,28 @@
+uuid: 06f1e299-0d0c-46e2-96f2-71d0311dafe8
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.rss
+    - field.field.node.article.body
+    - field.field.node.article.comment
+    - field.field.node.article.field_image
+    - field.field.node.article.field_tags
+    - node.type.article
+  module:
+    - user
+_core:
+  default_config_hash: 2rIr6K5Q0UQ9khg0zE_CK-PtJH76UL-BDDZcZnZzwCc
+id: node.article.rss
+targetEntityType: node
+bundle: article
+mode: rss
+content:
+  links:
+    weight: 100
+    region: content
+hidden:
+  body: true
+  comment: true
+  field_image: true
+  field_tags: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.teaser.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.teaser.yml
new file mode 100644
index 0000000..31865d2
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.article.teaser.yml
@@ -0,0 +1,55 @@
+uuid: 73a9d56a-8272-4503-bb40-3734ea323f39
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.teaser
+    - field.field.node.article.body
+    - field.field.node.article.comment
+    - field.field.node.article.field_image
+    - field.field.node.article.field_tags
+    - image.style.medium
+    - node.type.article
+  module:
+    - image
+    - text
+    - user
+_core:
+  default_config_hash: 4NcL2hSQZBpJbYtNuh5jC6kyQTcAc1m5bQpTegEWEso
+id: node.article.teaser
+targetEntityType: node
+bundle: article
+mode: teaser
+content:
+  body:
+    type: text_summary_or_trimmed
+    weight: 0
+    region: content
+    settings:
+      trim_length: 600
+    third_party_settings: {  }
+    label: hidden
+  field_image:
+    type: image
+    weight: -1
+    region: content
+    settings:
+      image_style: medium
+      image_link: content
+    third_party_settings: {  }
+    label: hidden
+  field_tags:
+    type: entity_reference_label
+    weight: 10
+    region: content
+    settings:
+      link: true
+    third_party_settings: {  }
+    label: above
+  links:
+    weight: 100
+    region: content
+hidden:
+  comment: true
+  field_image: true
+  field_tags: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.node.page.default.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.page.default.yml
new file mode 100644
index 0000000..b8434a2
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.page.default.yml
@@ -0,0 +1,37 @@
+uuid: 81576c52-c601-41d8-9ee3-4497b2a7921b
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.node.page.body
+    - field.field.node.page.field_article
+    - node.type.page
+  module:
+    - text
+    - user
+_core:
+  default_config_hash: g1S3_GLaxq4l3I9RIca5Mlz02MxI2KmOquZpHw59akM
+id: node.page.default
+targetEntityType: node
+bundle: page
+mode: default
+content:
+  body:
+    label: hidden
+    type: text_default
+    weight: 100
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_article:
+    weight: 102
+    label: above
+    settings:
+      link: true
+    third_party_settings: {  }
+    type: entity_reference_label
+    region: content
+  links:
+    weight: 101
+    region: content
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.node.page.teaser.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.page.teaser.yml
new file mode 100644
index 0000000..98f18c5
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.node.page.teaser.yml
@@ -0,0 +1,32 @@
+uuid: 3e07f2cc-44d1-4965-8fd6-b472d6622a6a
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.teaser
+    - field.field.node.page.body
+    - field.field.node.page.field_article
+    - node.type.page
+  module:
+    - text
+    - user
+_core:
+  default_config_hash: cSv5lDnbIgDug475Hdz3woED2XMqYv3awI-J9u1JLbY
+id: node.page.teaser
+targetEntityType: node
+bundle: page
+mode: teaser
+content:
+  body:
+    label: hidden
+    type: text_summary_or_trimmed
+    weight: 100
+    region: content
+    settings:
+      trim_length: 600
+    third_party_settings: {  }
+  links:
+    weight: 101
+    region: content
+hidden:
+  field_article: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.user.user.compact.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.user.user.compact.yml
new file mode 100644
index 0000000..70d045e
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.user.user.compact.yml
@@ -0,0 +1,29 @@
+uuid: d1c3d486-f14e-4c14-9463-ae5b8675bedb
+langcode: en
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.user.compact
+    - field.field.user.user.user_picture
+    - image.style.thumbnail
+  module:
+    - image
+    - user
+_core:
+  default_config_hash: '-cLsS3M3JycipXQt9rEb81_HxKneReoGuRh8ijcOPXs'
+id: user.user.compact
+targetEntityType: user
+bundle: user
+mode: compact
+content:
+  user_picture:
+    type: image
+    weight: 0
+    region: content
+    settings:
+      image_style: thumbnail
+      image_link: content
+    third_party_settings: {  }
+    label: hidden
+hidden:
+  member_for: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_display.user.user.default.yml b/tests/modules/depcalc_test/config/install/core.entity_view_display.user.user.default.yml
new file mode 100644
index 0000000..99a0cdc
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_display.user.user.default.yml
@@ -0,0 +1,30 @@
+uuid: 6e452034-9a51-42c4-8c51-eda1be63d048
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.user.user.user_picture
+    - image.style.thumbnail
+  module:
+    - image
+    - user
+_core:
+  default_config_hash: V51QPCKkgNREKtSmB9Iu2wmAMEpktVpnzklWaZV8UYo
+id: user.user.default
+targetEntityType: user
+bundle: user
+mode: default
+content:
+  member_for:
+    weight: 5
+    region: content
+  user_picture:
+    type: image
+    weight: 0
+    region: content
+    settings:
+      image_style: thumbnail
+      image_link: content
+    third_party_settings: {  }
+    label: hidden
+hidden: {  }
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.block_content.full.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.block_content.full.yml
new file mode 100644
index 0000000..4c6e3a3
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.block_content.full.yml
@@ -0,0 +1,12 @@
+uuid: c1c7981a-d851-491f-8551-29136a832479
+langcode: en
+status: false
+dependencies:
+  module:
+    - block_content
+_core:
+  default_config_hash: 4tedlMuvQjDOdvHdw86_e-2Rt78aR7TGFMfOK8Ejppg
+id: block_content.full
+label: Full
+targetEntityType: block_content
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.comment.full.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.comment.full.yml
new file mode 100644
index 0000000..ce77ae9
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.comment.full.yml
@@ -0,0 +1,12 @@
+uuid: 015711e1-f9ae-45a7-b65e-4a14a0467e55
+langcode: en
+status: false
+dependencies:
+  module:
+    - comment
+_core:
+  default_config_hash: K7eNlfU7NEUajz01wItywZklr2oaPgL6s1_97fmDXLA
+id: comment.full
+label: 'Full comment'
+targetEntityType: comment
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.full.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.full.yml
new file mode 100644
index 0000000..ad02064
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.full.yml
@@ -0,0 +1,12 @@
+uuid: 27be6016-34cf-4385-b28a-63b84bc7e917
+langcode: en
+status: false
+dependencies:
+  module:
+    - node
+_core:
+  default_config_hash: ElrtInxGjZd7GaapJ5O9n-ugi2hG2IxFivtgn0tHOsk
+id: node.full
+label: 'Full content'
+targetEntityType: node
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.rss.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.rss.yml
new file mode 100644
index 0000000..03625e9
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.rss.yml
@@ -0,0 +1,12 @@
+uuid: a636f196-4692-4cec-90bf-5b843af0232e
+langcode: en
+status: false
+dependencies:
+  module:
+    - node
+_core:
+  default_config_hash: vlYzr-rp2f9NMp-Qlr4sFjlqRq-90mco5-afLNGwCrU
+id: node.rss
+label: RSS
+targetEntityType: node
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.search_index.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.search_index.yml
new file mode 100644
index 0000000..aa5c975
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.search_index.yml
@@ -0,0 +1,12 @@
+uuid: 2cd656fd-ac1d-42dc-9f38-3595b738d974
+langcode: en
+status: false
+dependencies:
+  module:
+    - node
+_core:
+  default_config_hash: fVFfJv_GzBRE-wpRHbfD5a3VjnhbEOXG6lvRd3uaccY
+id: node.search_index
+label: 'Search index'
+targetEntityType: node
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.search_result.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.search_result.yml
new file mode 100644
index 0000000..63d9752
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.search_result.yml
@@ -0,0 +1,12 @@
+uuid: e1bb1b3a-d1d1-47fb-8545-4adac8a054fd
+langcode: en
+status: false
+dependencies:
+  module:
+    - node
+_core:
+  default_config_hash: 6GCOQ-jP2RbdbHA5YWQ6bT8CfGbqrBYKOSC_XY4E3ZM
+id: node.search_result
+label: 'Search result highlighting input'
+targetEntityType: node
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.teaser.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.teaser.yml
new file mode 100644
index 0000000..3ff3837
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.node.teaser.yml
@@ -0,0 +1,12 @@
+uuid: dfff239b-1437-442c-b2e6-9fc2ddb07fe9
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+_core:
+  default_config_hash: Mz9qWr1kUYK0mjRAGDsr5XS6PvtZ24en_7ndt-pyWe4
+id: node.teaser
+label: Teaser
+targetEntityType: node
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.taxonomy_term.full.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.taxonomy_term.full.yml
new file mode 100644
index 0000000..62fd156
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.taxonomy_term.full.yml
@@ -0,0 +1,12 @@
+uuid: f17c85ef-ef1b-40f8-833b-bf575d5c4ad2
+langcode: en
+status: true
+dependencies:
+  module:
+    - taxonomy
+_core:
+  default_config_hash: '-PPKjsNQPvoIDjOuUAvlLocYD976MNjb9Zpgyz5_BWE'
+id: taxonomy_term.full
+label: 'Taxonomy term page'
+targetEntityType: taxonomy_term
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.user.compact.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.user.compact.yml
new file mode 100644
index 0000000..93589ee
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.user.compact.yml
@@ -0,0 +1,12 @@
+uuid: 112f57c0-8edf-47f5-aa63-ba709c417db0
+langcode: en
+status: true
+dependencies:
+  module:
+    - user
+_core:
+  default_config_hash: 71CSAr_LNPcgu6D6jI4INl1KATkahmeyUFBETAWya8g
+id: user.compact
+label: Compact
+targetEntityType: user
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/core.entity_view_mode.user.full.yml b/tests/modules/depcalc_test/config/install/core.entity_view_mode.user.full.yml
new file mode 100644
index 0000000..7f98334
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/core.entity_view_mode.user.full.yml
@@ -0,0 +1,12 @@
+uuid: 54282ff9-d5cc-475c-99fb-d935f323ab42
+langcode: en
+status: false
+dependencies:
+  module:
+    - user
+_core:
+  default_config_hash: mQIF_foYjmnVSr9MpcD4CTaJE_FpO1AyDd_DskztGhM
+id: user.full
+label: 'User account'
+targetEntityType: user
+cache: true
diff --git a/tests/modules/depcalc_test/config/install/field.field.block_content.basic.body.yml b/tests/modules/depcalc_test/config/install/field.field.block_content.basic.body.yml
new file mode 100644
index 0000000..8a94b1a
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.block_content.basic.body.yml
@@ -0,0 +1,25 @@
+uuid: 7142cb10-e378-4397-9a15-dddcfdfc5170
+langcode: en
+status: true
+dependencies:
+  config:
+    - block_content.type.basic
+    - field.storage.block_content.body
+  module:
+    - text
+_core:
+  default_config_hash: foetbaMhlB6uLc2bn-PESvaPkbuDWj0MEjpQVwQiP-o
+id: block_content.basic.body
+field_name: body
+entity_type: block_content
+bundle: basic
+label: Body
+description: ''
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  display_summary: false
+  required_summary: false
+field_type: text_with_summary
diff --git a/tests/modules/depcalc_test/config/install/field.field.comment.comment.comment_body.yml b/tests/modules/depcalc_test/config/install/field.field.comment.comment.comment_body.yml
new file mode 100644
index 0000000..2358b1d
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.comment.comment.comment_body.yml
@@ -0,0 +1,23 @@
+uuid: ce58eb43-8200-4a7b-9af0-4ed95e1a671a
+langcode: en
+status: true
+dependencies:
+  config:
+    - comment.type.comment
+    - field.storage.comment.comment_body
+  module:
+    - text
+_core:
+  default_config_hash: TmAKjNrJ7RR60YpqvJq_QqEewYe_S8Kd23n8VRCqiWs
+id: comment.comment.comment_body
+field_name: comment_body
+entity_type: comment
+bundle: comment
+label: Comment
+description: ''
+required: true
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings: {  }
+field_type: text_long
diff --git a/tests/modules/depcalc_test/config/install/field.field.node.article.body.yml b/tests/modules/depcalc_test/config/install/field.field.node.article.body.yml
new file mode 100644
index 0000000..3ffe900
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.node.article.body.yml
@@ -0,0 +1,25 @@
+uuid: 8d659cb4-bcc8-4abd-a5a7-e784bcb85d45
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.body
+    - node.type.article
+  module:
+    - text
+_core:
+  default_config_hash: IjZnOLWk1Pjq3WRg2pLSA1ERh7Po7izCq_p6UztZr2c
+id: node.article.body
+field_name: body
+entity_type: node
+bundle: article
+label: Body
+description: ''
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  display_summary: true
+  required_summary: false
+field_type: text_with_summary
diff --git a/tests/modules/depcalc_test/config/install/field.field.node.article.comment.yml b/tests/modules/depcalc_test/config/install/field.field.node.article.comment.yml
new file mode 100644
index 0000000..3ef1c4b
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.node.article.comment.yml
@@ -0,0 +1,35 @@
+uuid: 1cde0bc6-5976-4cb7-b446-1d43a5bd5153
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.comment
+    - node.type.article
+  module:
+    - comment
+_core:
+  default_config_hash: r-hrxwbKKXBKQnBefGjXNSdU00u2fPvMWEykGRHqd10
+id: node.article.comment
+field_name: comment
+entity_type: node
+bundle: article
+label: Comments
+description: ''
+required: false
+translatable: true
+default_value:
+  -
+    status: 2
+    cid: 0
+    last_comment_name: null
+    last_comment_timestamp: 0
+    last_comment_uid: 0
+    comment_count: 0
+default_value_callback: ''
+settings:
+  default_mode: 1
+  per_page: 50
+  form_location: true
+  anonymous: 0
+  preview: 1
+field_type: comment
diff --git a/tests/modules/depcalc_test/config/install/field.field.node.article.field_image.yml b/tests/modules/depcalc_test/config/install/field.field.node.article.field_image.yml
new file mode 100644
index 0000000..1c2c8a9
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.node.article.field_image.yml
@@ -0,0 +1,40 @@
+uuid: 32a5cb90-48d4-456d-a538-2331d848347f
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_image
+    - node.type.article
+  module:
+    - image
+_core:
+  default_config_hash: tgJzhA7Swh4M_gWU5FwFe5lPxPj5rebpMbvhpdNrERs
+id: node.article.field_image
+field_name: field_image
+entity_type: node
+bundle: article
+label: Image
+description: ''
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  file_directory: '[date:custom:Y]-[date:custom:m]'
+  file_extensions: 'png gif jpg jpeg'
+  max_filesize: ''
+  max_resolution: ''
+  min_resolution: ''
+  alt_field: true
+  title_field: false
+  alt_field_required: true
+  title_field_required: false
+  default_image:
+    uuid: null
+    alt: ''
+    title: ''
+    width: null
+    height: null
+  handler: 'default:file'
+  handler_settings: {  }
+field_type: image
diff --git a/tests/modules/depcalc_test/config/install/field.field.node.article.field_tags.yml b/tests/modules/depcalc_test/config/install/field.field.node.article.field_tags.yml
new file mode 100644
index 0000000..6c98f87
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.node.article.field_tags.yml
@@ -0,0 +1,29 @@
+uuid: 6a1746e0-4b44-45af-bc6a-a3d6941689d7
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_tags
+    - node.type.article
+    - taxonomy.vocabulary.tags
+_core:
+  default_config_hash: QdUgf_beeoaPiyKorFv0q1fcJpWH_uZTqe_xoVJacrw
+id: node.article.field_tags
+field_name: field_tags
+entity_type: node
+bundle: article
+label: Tags
+description: 'Enter a comma-separated list. For example: Amsterdam, Mexico City, "Cleveland, Ohio"'
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:taxonomy_term'
+  handler_settings:
+    target_bundles:
+      tags: tags
+    sort:
+      field: _none
+    auto_create: true
+field_type: entity_reference
diff --git a/tests/modules/depcalc_test/config/install/field.field.node.page.body.yml b/tests/modules/depcalc_test/config/install/field.field.node.page.body.yml
new file mode 100644
index 0000000..89b7fb5
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.node.page.body.yml
@@ -0,0 +1,25 @@
+uuid: 922a6725-dffe-43e6-b899-ab868086e828
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.body
+    - node.type.page
+  module:
+    - text
+_core:
+  default_config_hash: KgVkxLl_K3E3lvN6CEoWQIDT0V8J4Mv-fVYrAIc7-FE
+id: node.page.body
+field_name: body
+entity_type: node
+bundle: page
+label: Body
+description: ''
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  display_summary: true
+  required_summary: false
+field_type: text_with_summary
diff --git a/tests/modules/depcalc_test/config/install/field.field.node.page.field_article.yml b/tests/modules/depcalc_test/config/install/field.field.node.page.field_article.yml
new file mode 100644
index 0000000..9949066
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.node.page.field_article.yml
@@ -0,0 +1,28 @@
+uuid: 714e9491-9d31-42d7-8713-a81c6c4911eb
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_article
+    - node.type.article
+    - node.type.page
+id: node.page.field_article
+field_name: field_article
+entity_type: node
+bundle: page
+label: Article
+description: ''
+required: false
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings:
+  handler: 'default:node'
+  handler_settings:
+    target_bundles:
+      article: article
+    sort:
+      field: _none
+    auto_create: false
+    auto_create_bundle: ''
+field_type: entity_reference
diff --git a/tests/modules/depcalc_test/config/install/field.field.user.user.user_picture.yml b/tests/modules/depcalc_test/config/install/field.field.user.user.user_picture.yml
new file mode 100644
index 0000000..d205622
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.field.user.user.user_picture.yml
@@ -0,0 +1,40 @@
+uuid: 87932f74-b9c8-496a-829a-e3bf1d7a3610
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.user.user_picture
+  module:
+    - image
+    - user
+_core:
+  default_config_hash: Iiq0AttdhgbebJwabSFwQQ1ORn64GoGz0xSZ_eyCJ8A
+id: user.user.user_picture
+field_name: user_picture
+entity_type: user
+bundle: user
+label: Picture
+description: 'Your virtual face or picture.'
+required: false
+translatable: true
+default_value: {  }
+default_value_callback: ''
+settings:
+  file_extensions: 'png gif jpg jpeg'
+  file_directory: 'pictures/[date:custom:Y]-[date:custom:m]'
+  max_filesize: ''
+  alt_field: false
+  title_field: false
+  max_resolution: ''
+  min_resolution: ''
+  default_image:
+    uuid: null
+    alt: ''
+    title: ''
+    width: null
+    height: null
+  alt_field_required: false
+  title_field_required: false
+  handler: 'default:file'
+  handler_settings: {  }
+field_type: image
diff --git a/tests/modules/depcalc_test/config/install/field.storage.block_content.body.yml b/tests/modules/depcalc_test/config/install/field.storage.block_content.body.yml
new file mode 100644
index 0000000..86a2a6e
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.block_content.body.yml
@@ -0,0 +1,21 @@
+uuid: 183d6b86-fe82-4b99-a7a2-655c5b737271
+langcode: en
+status: true
+dependencies:
+  module:
+    - block_content
+    - text
+_core:
+  default_config_hash: eS0snV_L3dx9shtWRTzm5eblwOJ7qKWC9IE-4GMTDFc
+id: block_content.body
+field_name: body
+entity_type: block_content
+type: text_with_summary
+settings: {  }
+module: text
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: true
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.comment.comment_body.yml b/tests/modules/depcalc_test/config/install/field.storage.comment.comment_body.yml
new file mode 100644
index 0000000..373bbd4
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.comment.comment_body.yml
@@ -0,0 +1,21 @@
+uuid: 0523dc92-0970-4ac6-952a-9bf56a7ee7d2
+langcode: en
+status: true
+dependencies:
+  module:
+    - comment
+    - text
+_core:
+  default_config_hash: swYoCch_hY8QO5uwr4FURplfnUCUlpPB4idF8WGVCpw
+id: comment.comment_body
+field_name: comment_body
+entity_type: comment
+type: text_long
+settings: {  }
+module: text
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: true
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.node.body.yml b/tests/modules/depcalc_test/config/install/field.storage.node.body.yml
new file mode 100644
index 0000000..5924f17
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.node.body.yml
@@ -0,0 +1,21 @@
+uuid: 35d4f1ff-1340-4718-8855-7bfd5d138dc1
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+    - text
+_core:
+  default_config_hash: EBUo7qOWqaiZaQ_RC9sLY5IoDKphS34v77VIHSACmVY
+id: node.body
+field_name: body
+entity_type: node
+type: text_with_summary
+settings: {  }
+module: text
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: true
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.node.comment.yml b/tests/modules/depcalc_test/config/install/field.storage.node.comment.yml
new file mode 100644
index 0000000..ea2e5f8
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.node.comment.yml
@@ -0,0 +1,22 @@
+uuid: d6b8a332-fae1-4d09-a932-fbbb855389bb
+langcode: en
+status: true
+dependencies:
+  module:
+    - comment
+    - node
+_core:
+  default_config_hash: ktCna9xmWvYZIUfOCUyDQvedn5RtnS4CRmEIwNmvYjc
+id: node.comment
+field_name: comment
+entity_type: node
+type: comment
+settings:
+  comment_type: comment
+module: comment
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.node.field_article.yml b/tests/modules/depcalc_test/config/install/field.storage.node.field_article.yml
new file mode 100644
index 0000000..c3d644f
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.node.field_article.yml
@@ -0,0 +1,19 @@
+uuid: 47bdf976-6166-4841-948a-3b1982d95b93
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+id: node.field_article
+field_name: field_article
+entity_type: node
+type: entity_reference
+settings:
+  target_type: node
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.node.field_image.yml b/tests/modules/depcalc_test/config/install/field.storage.node.field_image.yml
new file mode 100644
index 0000000..40bbb1c
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.node.field_image.yml
@@ -0,0 +1,34 @@
+uuid: 7f542913-3e24-4bbd-aa99-4c88da4f7add
+langcode: en
+status: true
+dependencies:
+  module:
+    - file
+    - image
+    - node
+_core:
+  default_config_hash: SkXIPKZYiIMMtnBmfnxk58RYfbZ8cHSw5NZPY_JByME
+id: node.field_image
+field_name: field_image
+entity_type: node
+type: image
+settings:
+  uri_scheme: public
+  default_image:
+    uuid: null
+    alt: ''
+    title: ''
+    width: null
+    height: null
+  target_type: file
+  display_field: false
+  display_default: false
+module: image
+locked: false
+cardinality: 1
+translatable: true
+indexes:
+  target_id:
+    - target_id
+persist_with_no_fields: false
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.node.field_tags.yml b/tests/modules/depcalc_test/config/install/field.storage.node.field_tags.yml
new file mode 100644
index 0000000..8ef26e9
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.node.field_tags.yml
@@ -0,0 +1,22 @@
+uuid: d73d88cd-8885-4d82-9383-4759243cde50
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+    - taxonomy
+_core:
+  default_config_hash: WpOE_bs8Bs_HY2ns7n2r__de-xno0-Bxkqep5-MsHAs
+id: node.field_tags
+field_name: field_tags
+entity_type: node
+type: entity_reference
+settings:
+  target_type: taxonomy_term
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/field.storage.user.user_picture.yml b/tests/modules/depcalc_test/config/install/field.storage.user.user_picture.yml
new file mode 100644
index 0000000..c4e62b5
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/field.storage.user.user_picture.yml
@@ -0,0 +1,34 @@
+uuid: cd47420e-c98b-467c-b1f7-8154ad56043b
+langcode: en
+status: true
+dependencies:
+  module:
+    - file
+    - image
+    - user
+_core:
+  default_config_hash: 6k-VBFilDLuzgSOT-77CFgHFlcd5D-kqRixtH89EShU
+id: user.user_picture
+field_name: user_picture
+entity_type: user
+type: image
+settings:
+  uri_scheme: public
+  default_image:
+    uuid: null
+    alt: ''
+    title: ''
+    width: null
+    height: null
+  target_type: file
+  display_field: false
+  display_default: false
+module: image
+locked: false
+cardinality: 1
+translatable: true
+indexes:
+  target_id:
+    - target_id
+persist_with_no_fields: false
+custom_storage: false
diff --git a/tests/modules/depcalc_test/config/install/image.settings.yml b/tests/modules/depcalc_test/config/install/image.settings.yml
new file mode 100644
index 0000000..52ee4a8
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/image.settings.yml
@@ -0,0 +1,5 @@
+preview_image: core/modules/image/sample.png
+allow_insecure_derivatives: false
+suppress_itok_output: false
+_core:
+  default_config_hash: k-yDFHbqNfpe-Srg4sdCSqaosCl2D8uwyEY5esF8gEw
diff --git a/tests/modules/depcalc_test/config/install/image.style.large.yml b/tests/modules/depcalc_test/config/install/image.style.large.yml
new file mode 100644
index 0000000..cc736c3
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/image.style.large.yml
@@ -0,0 +1,17 @@
+uuid: 19cbb474-95e2-4135-963e-fc1b24125675
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: J2n0RpFzS0-bgSyxjs6rSdgxB1rb-bTAgqywNx_964M
+name: large
+label: 'Large (480×480)'
+effects:
+  ddd73aa7-4bd6-4c85-b600-bdf2b1628d1d:
+    uuid: ddd73aa7-4bd6-4c85-b600-bdf2b1628d1d
+    id: image_scale
+    weight: 0
+    data:
+      width: 480
+      height: 480
+      upscale: false
diff --git a/tests/modules/depcalc_test/config/install/image.style.medium.yml b/tests/modules/depcalc_test/config/install/image.style.medium.yml
new file mode 100644
index 0000000..a7c567b
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/image.style.medium.yml
@@ -0,0 +1,17 @@
+uuid: cbb1c6b6-002c-4f00-aa2d-910c79033a6e
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: Y9NmnZHQq20ASSyTNA6JnwtWrJJiSajOehGDtmUFdM0
+name: medium
+label: 'Medium (220×220)'
+effects:
+  bddf0d06-42f9-4c75-a700-a33cafa25ea0:
+    uuid: bddf0d06-42f9-4c75-a700-a33cafa25ea0
+    id: image_scale
+    weight: 0
+    data:
+      width: 220
+      height: 220
+      upscale: false
diff --git a/tests/modules/depcalc_test/config/install/image.style.thumbnail.yml b/tests/modules/depcalc_test/config/install/image.style.thumbnail.yml
new file mode 100644
index 0000000..82cc822
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/image.style.thumbnail.yml
@@ -0,0 +1,17 @@
+uuid: 6bb68fe4-cfb0-42ad-a66d-fad0e03fc195
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: cCiWdBHgLwj5omG35lsKc4LkW4MBdmcctkVop4ol5x0
+name: thumbnail
+label: 'Thumbnail (100×100)'
+effects:
+  1cfec298-8620-4749-b100-ccb6c4500779:
+    uuid: 1cfec298-8620-4749-b100-ccb6c4500779
+    id: image_scale
+    weight: 0
+    data:
+      width: 100
+      height: 100
+      upscale: false
diff --git a/tests/modules/depcalc_test/config/install/node.type.article.yml b/tests/modules/depcalc_test/config/install/node.type.article.yml
new file mode 100644
index 0000000..1d8b326
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/node.type.article.yml
@@ -0,0 +1,13 @@
+uuid: ab09f838-e8f3-4d3e-957c-685c6c82d01f
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: AeW1SEDgb1OTQACAWGhzvMknMYAJlcZu0jljfeU3oso
+name: Article
+type: article
+description: 'Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.'
+help: ''
+new_revision: true
+preview_mode: 1
+display_submitted: true
diff --git a/tests/modules/depcalc_test/config/install/node.type.page.yml b/tests/modules/depcalc_test/config/install/node.type.page.yml
new file mode 100644
index 0000000..737e6b3
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/node.type.page.yml
@@ -0,0 +1,13 @@
+uuid: 855a3124-2484-4d2d-9c4a-b83b198ac4f1
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: KuyA4NHPXcmKAjRtwa0vQc2ZcyrUJy6IlS2TAyMNRbc
+name: 'Basic page'
+type: page
+description: 'Use <em>basic pages</em> for your static content, such as an ''About us'' page.'
+help: ''
+new_revision: true
+preview_mode: 1
+display_submitted: false
diff --git a/tests/modules/depcalc_test/config/install/taxonomy.vocabulary.tags.yml b/tests/modules/depcalc_test/config/install/taxonomy.vocabulary.tags.yml
new file mode 100644
index 0000000..7906930
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/taxonomy.vocabulary.tags.yml
@@ -0,0 +1,10 @@
+uuid: 4bc246fa-fb6e-4e27-922b-d77d89fb8fa5
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: yoNVreoTdTZTY7GuE8fI9Jmxqdz8vlo4ZJKixMNSosw
+name: Tags
+vid: tags
+description: 'Use tags to group articles on similar topics into categories.'
+weight: 0
diff --git a/tests/modules/depcalc_test/config/install/user.role.administrator.yml b/tests/modules/depcalc_test/config/install/user.role.administrator.yml
new file mode 100644
index 0000000..9b44e5f
--- /dev/null
+++ b/tests/modules/depcalc_test/config/install/user.role.administrator.yml
@@ -0,0 +1,11 @@
+uuid: 27202596-169e-4835-b9d4-c51ded9a03b8
+langcode: en
+status: true
+dependencies: {  }
+_core:
+  default_config_hash: Om6FEO7vZZMkPIbVvfxtdkWerQ2PvQM4sWUd6Q3ZnfI
+id: administrator
+label: Administrator
+weight: 2
+is_admin: true
+permissions: {  }
diff --git a/tests/modules/depcalc_test/depcalc_test.info.yml b/tests/modules/depcalc_test/depcalc_test.info.yml
new file mode 100644
index 0000000..ac565be
--- /dev/null
+++ b/tests/modules/depcalc_test/depcalc_test.info.yml
@@ -0,0 +1,7 @@
+name: Depcalc Testing
+description: Support module for depcalc module testing.
+package: Testing
+version: VERSION
+type: module
+core: 8.x
+hidden: true
diff --git a/tests/src/Kernel/DependencyCalculatorTest.php b/tests/src/Kernel/DependencyCalculatorTest.php
new file mode 100644
index 0000000..a1d5117
--- /dev/null
+++ b/tests/src/Kernel/DependencyCalculatorTest.php
@@ -0,0 +1,372 @@
+<?php
+
+namespace Drupal\Tests\depcalc\Kernel\DependencyCalculatorTest;
+
+use Drupal;
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\depcalc\DependencyStack;
+use Drupal\depcalc\DependentEntityWrapper;
+use Drupal\file\Entity\File;
+use Drupal\KernelTests\KernelTestBase;
+use Drupal\taxonomy\Entity\Term;
+use Drupal\user\Entity\User;
+
+/**
+ * Class DependencyCalculatorTest.
+ *
+ * @group depcalc
+ */
+class DependencyCalculatorTest extends KernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = [
+    'depcalc_test',
+    'depcalc',
+    'node',
+    'user',
+    'taxonomy',
+    'comment',
+    'block_content',
+    'path',
+    'image',
+    'system',
+    'field',
+    'text',
+    'file',
+  ];
+
+  /**
+   * Calculates all the dependencies of a given entity.
+   *
+   * @var \Drupal\depcalc\DependencyCalculator
+   */
+  protected $calculator;
+
+  /**
+   * The DependentEntityWrapper object.
+   *
+   * @var \Drupal\depcalc\DependentEntityWrapper
+   */
+  protected $dependentEntityWrapper;
+
+  /**
+   * {@inheritdoc}
+   *
+   * @throws \Drupal\Core\Entity\EntityStorageException
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->installSchema('file', ['file_usage']);
+    $this->installSchema('comment', ['comment_entity_statistics']);
+    $this->installSchema('system', ['sequences']);
+    $this->installEntitySchema('path_alias');
+    $this->installEntitySchema('user');
+    $this->installEntitySchema('node');
+    $this->installEntitySchema('file');
+    $this->installEntitySchema('block_content');
+    $this->installEntitySchema('comment');
+    $this->installEntitySchema('taxonomy_term');
+    $this->installEntitySchema('taxonomy_vocabulary');
+    $this->installConfig('depcalc_test');
+
+    $this->calculator = Drupal::service('entity.dependency.calculator');
+
+    // Create test user.
+    /** @var \Drupal\Core\Entity\EntityRepository $entity_repository */
+    $entity_repository = Drupal::service('entity.repository');
+    $admin_role = $entity_repository->loadEntityByUuid(
+      'user_role',
+      '27202596-169e-4835-b9d4-c51ded9a03b8');
+    $test_user = User::create([
+      'name' => 'Admin',
+      'roles' => [$admin_role->id()],
+      'uuid' => '2d666602-74c0-4d83-a6ef-d181fd562291',
+    ]);
+    $test_user->save();
+
+    // Create test taxonomy term.
+    $test_taxonomy_term = Term::create([
+      'name' => 'test-tag',
+      'vid' => 'tags',
+      'uuid' => 'e0fa273d-a5e4-4d22-81be-ab344fb8acd8',
+    ]);
+    $test_taxonomy_term->save();
+
+    // Create test image file.
+    $test_image_file = File::create([
+      'uri' => 'public://test.jpg',
+      'uuid' => '4dcb20e3-b3cd-4b09-b157-fb3609b3fc93',
+    ]);
+    $test_image_file->save();
+  }
+
+  /**
+   * Tests the calculation of node dependencies.
+   *
+   * @param string $entity_type
+   *   The entity type.
+   * @param array $entities
+   *   Entities to create.
+   * @param array $expected_entities
+   *   The list of expected entities.
+   * @param array $expected_modules
+   *   The list of expected modules.
+   *
+   * @throws \Exception
+   *
+   * @dataProvider nodeDependenciesDataProvider
+   */
+  public function testNodeDependencies(string $entity_type, array $entities, array $expected_entities, array $expected_modules) {
+    foreach ($entities as $entity_values) {
+      /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
+      $entity_type_manager = Drupal::service('entity_type.manager');
+      $entity = $entity_type_manager->getStorage($entity_type)->create($entity_values);
+      $entity->save();
+    }
+
+    // Calculate dependencies for the last node from the $nodes_to_create list.
+    /** @var \Drupal\Core\Entity\EntityInterface $entity */
+    $actual_entities = $this->getEntityDependencies($entity);
+    $this->assertEqual($actual_entities, $expected_entities);
+    $actual_modules = $this->getModuleDependencies($entity);
+    $this->assertEqual($actual_modules, $expected_modules);
+  }
+
+  /**
+   * Returns the list of entity dependencies.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity.
+   *
+   * @return array
+   *   The list of UUIDs of dependencies (entities).
+   *
+   * @throws \Exception
+   */
+  protected function getEntityDependencies(EntityInterface $entity) {
+    $wrapper = $this->getDependentEntityWrapper($entity);
+
+    return array_keys($wrapper->getDependencies());
+  }
+
+  /**
+   * Returns the list of module dependencies.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity object.
+   *
+   * @return array
+   *   The list of UUIDs of entity dependencies.
+   *
+   * @throws \Exception
+   */
+  protected function getModuleDependencies(EntityInterface $entity) {
+    $wrapper = $this->getDependentEntityWrapper($entity);
+
+    return $wrapper->getModuleDependencies();
+  }
+
+  /**
+   * Calculate entity dependencies and return the DependentEntityWrapper object.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity object.
+   *
+   * @return \Drupal\depcalc\DependentEntityWrapper
+   *   The DependentEntityWrapper object.
+   *
+   * @throws \Exception
+   */
+  protected function getDependentEntityWrapper(EntityInterface $entity): DependentEntityWrapper {
+    if (isset($this->dependentEntityWrapper)) {
+      return $this->dependentEntityWrapper;
+    }
+
+    $this->dependentEntityWrapper = new DependentEntityWrapper($entity);
+    $stack = new DependencyStack();
+    $this->calculator->calculateDependencies($this->dependentEntityWrapper, $stack);
+
+    return $this->dependentEntityWrapper;
+  }
+
+  /**
+   * Data provider for testNodeDependencies.
+   *
+   * @return array
+   *   Test data sets consisting of node values and a list of dependencies
+   *   respectively.
+   */
+  public function nodeDependenciesDataProvider() {
+    return [
+      [
+        'user',
+        [
+          [
+            'uuid' => '3e346612-34c0-4d83-a6ef-e181fd562281',
+            'name' => 'Test user',
+          ],
+        ],
+        [
+          '6e452034-9a51-42c4-8c51-eda1be63d048',
+          '87932f74-b9c8-496a-829a-e3bf1d7a3610',
+          'cd47420e-c98b-467c-b1f7-8154ad56043b',
+          '6bb68fe4-cfb0-42ad-a66d-fad0e03fc195',
+          'd1c3d486-f14e-4c14-9463-ae5b8675bedb',
+          '112f57c0-8edf-47f5-aa63-ba709c417db0',
+          '2074a437-8497-4b0e-9cf4-f49e6adf859b',
+        ],
+        [
+          'file',
+          'image',
+          'user',
+        ],
+      ],
+      [
+        'taxonomy_term',
+        [
+          [
+            'name' => 'Test taxonomy term',
+            'vid' => 'tags',
+          ],
+        ],
+        ['4bc246fa-fb6e-4e27-922b-d77d89fb8fa5'],
+        [],
+      ],
+      [
+        'node',
+        [
+          [
+            'type' => 'article',
+            'title' => 'A test article',
+            'field_body' => 'body content',
+            'field_tags' => [1],
+            'field_image' => 1,
+            'uid' => 1,
+          ],
+        ],
+        [
+          'ab09f838-e8f3-4d3e-957c-685c6c82d01f',
+          '2d666602-74c0-4d83-a6ef-d181fd562291',
+          '27202596-169e-4835-b9d4-c51ded9a03b8',
+          '6e452034-9a51-42c4-8c51-eda1be63d048',
+          '87932f74-b9c8-496a-829a-e3bf1d7a3610',
+          'cd47420e-c98b-467c-b1f7-8154ad56043b',
+          '6bb68fe4-cfb0-42ad-a66d-fad0e03fc195',
+          'd1c3d486-f14e-4c14-9463-ae5b8675bedb',
+          '112f57c0-8edf-47f5-aa63-ba709c417db0',
+          '2074a437-8497-4b0e-9cf4-f49e6adf859b',
+          '4dcb20e3-b3cd-4b09-b157-fb3609b3fc93',
+          'e0fa273d-a5e4-4d22-81be-ab344fb8acd8',
+          '4bc246fa-fb6e-4e27-922b-d77d89fb8fa5',
+          '01684b4a-9019-4d00-b6f4-84e9ee50b9e6',
+          'bc0e1d2e-cf32-4f00-84f8-8517ffc4c3a4',
+          '86fe9e43-0cc5-4be1-babc-0519d00ae066',
+          'ce58eb43-8200-4a7b-9af0-4ed95e1a671a',
+          '0523dc92-0970-4ac6-952a-9bf56a7ee7d2',
+          '8d659cb4-bcc8-4abd-a5a7-e784bcb85d45',
+          '35d4f1ff-1340-4718-8855-7bfd5d138dc1',
+          '1cde0bc6-5976-4cb7-b446-1d43a5bd5153',
+          'd6b8a332-fae1-4d09-a932-fbbb855389bb',
+          '32a5cb90-48d4-456d-a538-2331d848347f',
+          '7f542913-3e24-4bbd-aa99-4c88da4f7add',
+          '6a1746e0-4b44-45af-bc6a-a3d6941689d7',
+          'd73d88cd-8885-4d82-9383-4759243cde50',
+          '19cbb474-95e2-4135-963e-fc1b24125675',
+          '06f1e299-0d0c-46e2-96f2-71d0311dafe8',
+          'a636f196-4692-4cec-90bf-5b843af0232e',
+          '73a9d56a-8272-4503-bb40-3734ea323f39',
+          'dfff239b-1437-442c-b2e6-9fc2ddb07fe9',
+          'cbb1c6b6-002c-4f00-aa2d-910c79033a6e',
+          '958a4894-c5af-4867-a2ce-4909e0c60bcf',
+        ],
+        [
+          'file',
+          'image',
+          'user',
+          'comment',
+          'text',
+          'node',
+          'taxonomy',
+          'path',
+        ],
+      ],
+      [
+        'node',
+        [
+          [
+            'uuid' => '6fbfe3b5-1423-464f-8b97-e172e2294a8f',
+            'type' => 'article',
+            'title' => 'A test article',
+            'field_body' => 'body content',
+            'field_tags' => [1],
+            'field_image' => 1,
+            'uid' => 1,
+          ],
+          [
+            'uuid' => '855a3124-2484-4d2d-9c4a-b83b198ac4f1',
+            'type' => 'page',
+            'title' => 'A test page with a referenced article',
+            'field_body' => 'body content',
+            'field_article' => 1,
+            'uid' => 1,
+          ]
+        ],
+        [
+          '2d666602-74c0-4d83-a6ef-d181fd562291',
+          '27202596-169e-4835-b9d4-c51ded9a03b8',
+          '6e452034-9a51-42c4-8c51-eda1be63d048',
+          '87932f74-b9c8-496a-829a-e3bf1d7a3610',
+          'cd47420e-c98b-467c-b1f7-8154ad56043b',
+          '6bb68fe4-cfb0-42ad-a66d-fad0e03fc195',
+          'd1c3d486-f14e-4c14-9463-ae5b8675bedb',
+          '112f57c0-8edf-47f5-aa63-ba709c417db0',
+          '2074a437-8497-4b0e-9cf4-f49e6adf859b',
+          '6fbfe3b5-1423-464f-8b97-e172e2294a8f',
+          'ab09f838-e8f3-4d3e-957c-685c6c82d01f',
+          '4dcb20e3-b3cd-4b09-b157-fb3609b3fc93',
+          'e0fa273d-a5e4-4d22-81be-ab344fb8acd8',
+          '4bc246fa-fb6e-4e27-922b-d77d89fb8fa5',
+          '01684b4a-9019-4d00-b6f4-84e9ee50b9e6',
+          'bc0e1d2e-cf32-4f00-84f8-8517ffc4c3a4',
+          '86fe9e43-0cc5-4be1-babc-0519d00ae066',
+          'ce58eb43-8200-4a7b-9af0-4ed95e1a671a',
+          '0523dc92-0970-4ac6-952a-9bf56a7ee7d2',
+          '8d659cb4-bcc8-4abd-a5a7-e784bcb85d45',
+          '35d4f1ff-1340-4718-8855-7bfd5d138dc1',
+          '1cde0bc6-5976-4cb7-b446-1d43a5bd5153',
+          'd6b8a332-fae1-4d09-a932-fbbb855389bb',
+          '32a5cb90-48d4-456d-a538-2331d848347f',
+          '7f542913-3e24-4bbd-aa99-4c88da4f7add',
+          '6a1746e0-4b44-45af-bc6a-a3d6941689d7',
+          'd73d88cd-8885-4d82-9383-4759243cde50',
+          '19cbb474-95e2-4135-963e-fc1b24125675',
+          '06f1e299-0d0c-46e2-96f2-71d0311dafe8',
+          'a636f196-4692-4cec-90bf-5b843af0232e',
+          '73a9d56a-8272-4503-bb40-3734ea323f39',
+          'dfff239b-1437-442c-b2e6-9fc2ddb07fe9',
+          'cbb1c6b6-002c-4f00-aa2d-910c79033a6e',
+          '958a4894-c5af-4867-a2ce-4909e0c60bcf',
+          '81576c52-c601-41d8-9ee3-4497b2a7921b',
+          '922a6725-dffe-43e6-b899-ab868086e828',
+          '714e9491-9d31-42d7-8713-a81c6c4911eb',
+          '47bdf976-6166-4841-948a-3b1982d95b93',
+          '3e07f2cc-44d1-4965-8fd6-b472d6622a6a',
+          'a6f9cb4a-4f12-46e8-a4e6-d27214f7f7d3',
+        ],
+        [
+          'file',
+          'image',
+          'user',
+          'comment',
+          'text',
+          'node',
+          'taxonomy',
+          'path',
+        ],
+      ],
+    ];
+  }
+}
