@@ -3,6 +3,7 @@ package reconnectingpty_test
3
3
import (
4
4
"bytes"
5
5
"context"
6
+ "io"
6
7
"testing"
7
8
"time"
8
9
@@ -22,7 +23,6 @@ import (
22
23
23
24
func Test_Runner (t * testing.T ) {
24
25
t .Parallel ()
25
- t .Skip ("https://github.com/coder/internal/issues/98" )
26
26
27
27
t .Run ("OK" , func (t * testing.T ) {
28
28
t .Parallel ()
@@ -43,14 +43,16 @@ func Test_Runner(t *testing.T) {
43
43
44
44
logs := bytes .NewBuffer (nil )
45
45
err := runner .Run (ctx , "1" , logs )
46
- logStr := logs .String ()
47
- t .Log ("Runner logs:\n \n " + logStr )
48
46
require .NoError (t , err )
49
47
50
- require .Contains (t , logStr , "Output:" )
48
+ tr := testutil .NewTerminalReader (t , logs )
49
+ err = tr .ReadUntilString (ctx , "Output:" )
50
+ require .NoError (t , err )
51
+
51
52
// OSX: Output:\n\thello world\n
52
53
// Win: Output:\n\t\x1b[2J\x1b[m\x1b[H\x1b]0;Administrator: C:\\Program Files\\PowerShell\\7\\pwsh.exe\a\x1b[?25hhello world\n
53
- require .Contains (t , logStr , "hello world\n " )
54
+ err = tr .ReadUntilString (ctx , "hello world" )
55
+ require .NoError (t , err )
54
56
})
55
57
56
58
t .Run ("NoLogOutput" , func (t * testing.T ) {
@@ -71,11 +73,12 @@ func Test_Runner(t *testing.T) {
71
73
72
74
logs := bytes .NewBuffer (nil )
73
75
err := runner .Run (ctx , "1" , logs )
74
- logStr := logs .String ()
75
- t .Log ("Runner logs:\n \n " + logStr )
76
76
require .NoError (t , err )
77
77
78
- require .NotContains (t , logStr , "Output:" )
78
+ tr := testutil .NewTerminalReader (t , logs )
79
+ err = tr .ReadUntilString (ctx , "Output:" )
80
+ require .Error (t , err )
81
+ require .ErrorIs (t , err , io .EOF )
79
82
})
80
83
81
84
t .Run ("Timeout" , func (t * testing.T ) {
@@ -199,17 +202,18 @@ func Test_Runner(t *testing.T) {
199
202
Init : workspacesdk.AgentReconnectingPTYInit {
200
203
Command : "echo 'hello world'; sleep 1" ,
201
204
},
202
- ExpectOutput : "hello world" ,
203
- LogOutput : false ,
205
+ LogOutput : true ,
204
206
})
205
207
206
208
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitSuperLong )
207
209
defer cancel ()
208
210
209
211
logs := bytes .NewBuffer (nil )
210
212
err := runner .Run (ctx , "1" , logs )
211
- logStr := logs .String ()
212
- t .Log ("Runner logs:\n \n " + logStr )
213
+ require .NoError (t , err )
214
+
215
+ tr := testutil .NewTerminalReader (t , logs )
216
+ err = tr .ReadUntilString (ctx , "hello world" )
213
217
require .NoError (t , err )
214
218
})
215
219
@@ -223,19 +227,20 @@ func Test_Runner(t *testing.T) {
223
227
Init : workspacesdk.AgentReconnectingPTYInit {
224
228
Command : "echo 'hello world'; sleep 1" ,
225
229
},
226
- ExpectOutput : "bello borld" ,
227
- LogOutput : false ,
230
+ LogOutput : true ,
228
231
})
229
232
230
233
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitSuperLong )
231
234
defer cancel ()
232
235
233
236
logs := bytes .NewBuffer (nil )
234
237
err := runner .Run (ctx , "1" , logs )
235
- logStr := logs .String ()
236
- t .Log ("Runner logs:\n \n " + logStr )
238
+ require .NoError (t , err )
239
+
240
+ tr := testutil .NewTerminalReader (t , logs )
241
+ err = tr .ReadUntilString (ctx , "bello borld" )
237
242
require .Error (t , err )
238
- require .ErrorContains (t , err , `expected string "bello borld" not found` )
243
+ require .ErrorIs (t , err , io . EOF )
239
244
})
240
245
})
241
246
}
0 commit comments