@@ -3,6 +3,7 @@ package websocket
3
3
import (
4
4
"fmt"
5
5
"net/http/httptest"
6
+ "os"
6
7
"testing"
7
8
"time"
8
9
@@ -74,6 +75,20 @@ func TestConn_Execute(t *testing.T) {
74
75
assert .Equal (t , 0 , len (result ))
75
76
})
76
77
78
+ t .Run ("read deadline" , func (t * testing.T ) {
79
+ conn , err := Dial (server .Listener .Addr ().String (), MockPassword , SetDeadline (1 * time .Second ))
80
+ if ! assert .NoError (t , err ) {
81
+ return
82
+ }
83
+ defer func () {
84
+ assert .NoError (t , conn .Close ())
85
+ }()
86
+
87
+ result , err := conn .Execute ("deadline" )
88
+ assert .EqualError (t , err , fmt .Sprintf ("read tcp %s->%s: i/o timeout" , conn .LocalAddr (), conn .RemoteAddr ()))
89
+ assert .Equal (t , 0 , len (result ))
90
+ })
91
+
77
92
t .Run ("unknown command" , func (t * testing.T ) {
78
93
conn , err := Dial (server .Listener .Addr ().String (), MockPassword )
79
94
if ! assert .NoError (t , err ) {
@@ -101,4 +116,42 @@ func TestConn_Execute(t *testing.T) {
101
116
assert .NoError (t , err )
102
117
assert .Equal (t , MockCommandStatusResponseText , result )
103
118
})
119
+
120
+ // Environment variable TEST_RUST_SERVER allows to sends commands to real
121
+ // Rust server.
122
+ //
123
+ // Some Rust commands:
124
+ // console.tail 5
125
+ // status
126
+ // playerlist
127
+ // serverinfo
128
+ if run := getVar ("TEST_RUST_SERVER" , "false" ); run == "true" {
129
+ addr := getVar ("TEST_RUST_SERVER_ADDR" , "127.0.0.1:28016" )
130
+ password := getVar ("TEST_RUST_SERVER_PASSWORD" , "docker" )
131
+
132
+ t .Run ("rust server" , func (t * testing.T ) {
133
+ conn , err := Dial (addr , password )
134
+ if err != nil {
135
+ t .Fatal (err )
136
+ }
137
+ defer func () {
138
+ assert .NoError (t , conn .Close ())
139
+ }()
140
+
141
+ result , err := conn .Execute ("status" )
142
+ assert .NoError (t , err )
143
+ assert .NotEmpty (t , result )
144
+
145
+ fmt .Println (result )
146
+ })
147
+ }
148
+ }
149
+
150
+ // getVar returns environment variable or default value.
151
+ func getVar (key string , fallback string ) string {
152
+ if value := os .Getenv (key ); value != "" {
153
+ return value
154
+ }
155
+
156
+ return fallback
104
157
}
0 commit comments