You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: network_test.go
    path of file: ./repos/gauge/conn
    
    the code of the file until where you have to start completion: /*----------------------------------------------------------------
 *  Copyright (c) ThoughtWorks, Inc.
 *  Licensed under the Apache License, Version 2.0
 *  See LICENSE in the project root for license information.
 *----------------------------------------------------------------*/

package conn

import (
	"fmt"
	"net"
	"testing"
	"time"

	"github.com/getgauge/gauge-proto/go/gauge_messages"

	// github.com/golang/protobuf/proto is deprecated, however this package is used by the legacy API
	// which is consumed only by IntelliJ IDEA presently. Since IDEA does not plan to implement LSP
	// gauge will have to keep this alive. Upgrading to google.golang.org/protobuf/proto is not a drop in change
	// since the newer library does not support DecodeVarint. The whole message handl
    
func TestGetResponseForGaugeMessageShoudErrorWithTimeOut(t *testing.T) {
	id = 0
	message := &gauge_messages.Message{
		MessageType: gauge_messages.Message_StepNameRequest,
		StepNameRequest: &gauge_messages.StepNameRequest{
			StepValue: "The worrd {} has {} vowels.",
		},
	}

	responseMessage = &gauge_messages.Message{
		MessageType: gauge_messages.Message_StepNameResponse,
		StepNameResponse: &gauge_messages.StepNameResponse{
			FileName:      "foo.js",
			HasAlias:      false,
			IsStepPresent: true,
			Span:          &gauge_messages.Span{Start: 2, End: 2, StartChar: 0, EndChar: 2},
			StepName:      []string{"The word {} has {} vowels."},
		},
	}

	conn := mockConn{sleepDuration: 2 * time.Second}
	_, err := GetResponseForMessageWithTimeout(message, conn, 1*time.Second)

	expected := fmt.Errorf("Request timed out for Message with ID => %v and Type => StepNameRequest", id)
	if err.Error() != expected.Error() {
		t.Errorf("expected %v\n got %v", expected, err)
	}
}