code: def test_wait_for_operation_to_complete_no_zone_error(
      self, mock_operation_status, mock_get_conn
  ):
      service = "test-service"
      project_id = "test-project"
      operation_name = "test-operation"
  
      # Test error
      mock_get_conn.return_value = service
      mock_operation_status.return_value = {
          "status": GceOperationStatus.DONE,
          "error": {"errors": "some nasty errors"},
          "httpErrorStatusCode": 400,
          "httpErrorMessage": "sample msg",
      }
  
      with pytest.raises(AirflowException):
          self.gce_hook._wait_for_operation_to_complete(
              project_id=project_id,
              operation_name=operation_name,
              zone=None,
          )
  
imports: from __future__ import annotations
  from unittest import mock
  from unittest.mock import PropertyMock
  import pytest
  from google.api_core.retry import Retry
  from airflow.exceptions import AirflowException
  from airflow.providers.google.cloud.hooks.compute import ComputeEngineHook, GceOperationStatus
  from tests.providers.google.cloud.utils.base_gcp_mock import GCP_PROJECT_ID_HOOK_UNIT_TEST, mock_base_gcp_hook_default_project_id, mock_base_gcp_hook_no_default_project_id
label_desc: Use image node_id 11 for calling the TestGcpComputeHookDefaultProjectId obj's underlying member method code with example usage: obj.test_wait_for_operation_to_complete_no_zone_error(mock_operation_status, mock_get_conn) without return types