@@ -2,9 +2,11 @@ package agentscripts_test
2
2
3
3
import (
4
4
"context"
5
+ "path/filepath"
5
6
"testing"
6
7
"time"
7
8
9
+ "github.com/google/uuid"
8
10
"github.com/prometheus/client_golang/prometheus"
9
11
"github.com/spf13/afero"
10
12
"github.com/stretchr/testify/require"
@@ -30,7 +32,8 @@ func TestExecuteBasic(t *testing.T) {
30
32
})
31
33
defer runner .Close ()
32
34
err := runner .Init ([]codersdk.WorkspaceAgentScript {{
33
- Script : "echo hello" ,
35
+ LogSourceID : uuid .New (),
36
+ Script : "echo hello" ,
34
37
}})
35
38
require .NoError (t , err )
36
39
require .NoError (t , runner .Execute (context .Background (), func (script codersdk.WorkspaceAgentScript ) bool {
@@ -40,13 +43,36 @@ func TestExecuteBasic(t *testing.T) {
40
43
require .Equal (t , "hello" , log .Logs [0 ].Output )
41
44
}
42
45
46
+ func TestEnv (t * testing.T ) {
47
+ t .Parallel ()
48
+ logs := make (chan agentsdk.PatchLogs , 1 )
49
+ runner := setup (t , func (ctx context.Context , req agentsdk.PatchLogs ) error {
50
+ logs <- req
51
+ return nil
52
+ })
53
+ defer runner .Close ()
54
+ id := uuid .New ()
55
+ err := runner .Init ([]codersdk.WorkspaceAgentScript {{
56
+ LogSourceID : id ,
57
+ Script : "echo $CODER_SCRIPT_DATA_DIR\n echo $CODER_SCRIPT_BIN_DIR\n " ,
58
+ }})
59
+ require .NoError (t , err )
60
+ require .NoError (t , runner .Execute (context .Background (), func (script codersdk.WorkspaceAgentScript ) bool {
61
+ return true
62
+ }))
63
+ log := <- logs
64
+ require .Contains (t , log .Logs [0 ].Output , filepath .Join (runner .DataDir , "coder-script-data" , id .String ()))
65
+ require .Contains (t , log .Logs [1 ].Output , runner .ScriptBinDir ())
66
+ }
67
+
43
68
func TestTimeout (t * testing.T ) {
44
69
t .Parallel ()
45
70
runner := setup (t , nil )
46
71
defer runner .Close ()
47
72
err := runner .Init ([]codersdk.WorkspaceAgentScript {{
48
- Script : "sleep infinity" ,
49
- Timeout : time .Millisecond ,
73
+ LogSourceID : uuid .New (),
74
+ Script : "sleep infinity" ,
75
+ Timeout : time .Millisecond ,
50
76
}})
51
77
require .NoError (t , err )
52
78
require .ErrorIs (t , runner .Execute (context .Background (), nil ), agentscripts .ErrTimeout )
@@ -78,6 +104,7 @@ func setup(t *testing.T, patchLogs func(ctx context.Context, req agentsdk.PatchL
78
104
})
79
105
return agentscripts .New (agentscripts.Options {
80
106
LogDir : t .TempDir (),
107
+ DataDir : t .TempDir (),
81
108
Logger : logger ,
82
109
SSHServer : s ,
83
110
Filesystem : fs ,
0 commit comments