code: def test_should_mask_sensitive_values_in_extra(self, session):
      connection_model = Connection(
          conn_id="test-connection-id",
          conn_type="mysql",
          description="test description",
          extra={
              "nonsensitive": "just_a_value",
              "api_token": "secretvalue",
          },
      )
      session.add(connection_model)
      session.commit()
  
      response = self.client.get(
          "/api/v1/connections/test-connection-id",
          environ_overrides={"REMOTE_USER": "test"},
      )
  
      assert (
          response.json["extra"]
          == '{"nonsensitive": "just_a_value", "api_token": "***"}'
      )
  
imports: from __future__ import annotations
  import os
  from unittest import mock
  import pytest
  from airflow.api_connexion.exceptions import EXCEPTIONS_LINK_MAP
  from airflow.models import Connection
  from airflow.secrets.environment_variables import CONN_ENV_PREFIX
  from airflow.security import permissions
  from airflow.utils.session import provide_session
  from tests.test_utils.api_connexion_utils import assert_401, create_user, delete_user
  from tests.test_utils.config import conf_vars
  from tests.test_utils.db import clear_db_connections
  from tests.test_utils.www import _check_last_log
label_desc: Use image node_id 2 for calling the TestGetConnection obj's underlying member method code with example usage: obj.test_should_mask_sensitive_values_in_extra(session) without return types