def METHOD_NAME(faker: Faker):
    gateway_node_handle = get_node_handle(NodeType.GATEWAY.value)
    gateway_client: GatewayClient = gateway_node_handle.login(
        email="info@openmined.org", password="changethis"
    )
    domain_client: DomainClient = get_admin_client(NodeType.DOMAIN.value)
    result = domain_client.connect_to_gateway(handle=gateway_node_handle)
    assert isinstance(result, SyftSuccess)
    # Try via client approach
    result_2 = domain_client.connect_to_gateway(via_client=gateway_node_handle.client)
    assert isinstance(result_2, SyftSuccess)
    assert len(domain_client.peers) == 1
    assert len(gateway_client.peers) == 1
    proxy_domain_client = gateway_client.peers[0]
    domain_peer = domain_client.peers[0]
    assert isinstance(proxy_domain_client, DomainClient)
    assert isinstance(domain_peer, NodePeer)
    # Domain's peer is a gateway and vice-versa
    assert domain_peer.node_type == NodeType.GATEWAY
    assert gateway_client.name == domain_peer.name
    assert domain_client.name == proxy_domain_client.name
    assert len(gateway_client.domains) == 1
    assert len(gateway_client.enclaves) == 0
    assert proxy_domain_client.metadata == domain_client.metadata
    assert proxy_domain_client.user_role == ServiceRole.NONE
    domain_client.login(email="info@openmined.org", password="changethis")
    proxy_domain_client.login(email="info@openmined.org", password="changethis")
    assert proxy_domain_client.logged_in_user == "info@openmined.org"
    assert proxy_domain_client.user_role == ServiceRole.ADMIN
    assert proxy_domain_client.credentials == domain_client.credentials
    assert (
        proxy_domain_client.api.endpoints.keys() == domain_client.api.endpoints.keys()
    )