code: def test_merge_dicts(override_existing_values):
      dict_1 = {"intents": ["greet", "goodbye"], "entities": ["name"]}
      dict_2 = {
          "responses": {"utter_greet": [{"text": "Hi"}]},
          "intents": ["bot_challenge"],
      }
  
      if override_existing_values:
          expected = {
              "entities": ["name"],
              "intents": ["bot_challenge"],
              "responses": {"utter_greet": [{"text": "Hi"}]},
          }
      else:
          expected = {
              "entities": ["name"],
              "intents": ["greet", "goodbye"],
              "responses": {"utter_greet": [{"text": "Hi"}]},
          }
  
      result = rasa.shared.utils.common.merge_dicts(
          dict_1, dict_2, override_existing_values
      )
  
      assert result == expected
  
file_path: rasa/tests/shared/utils/test_common.py
imports: import asyncio
  from typing import Collection, List, Optional, Text
  from unittest.mock import Mock
  import pytest
  import rasa.shared.core.domain
  import rasa.shared.utils.common
  from rasa.shared.exceptions import RasaException
label_desc: Use image node_id 12 for calling a global function with example usage: test_merge_dicts(override_existing_values) without return types