@@ -30,6 +30,9 @@ func TestBuildConfigDefaultsToMemoryStore(t *testing.T) {
3030 if len (cfg .RunnerArgs ) != 0 {
3131 t .Fatalf ("RunnerArgs = %#v, want empty" , cfg .RunnerArgs )
3232 }
33+ if len (cfg .RunnerEnv ) != 0 {
34+ t .Fatalf ("RunnerEnv = %#v, want empty" , cfg .RunnerEnv )
35+ }
3336}
3437
3538func TestBuildConfigParsesStoreFile (t * testing.T ) {
@@ -40,6 +43,8 @@ func TestBuildConfigParsesStoreFile(t *testing.T) {
4043 "--runner-workdir" , "workspace" ,
4144 "--runner-arg" , "--mock" ,
4245 "--runner-arg" , "--addr=127.0.0.1:0" ,
46+ "--runner-env" , "AGENTHUB_PROFILE_RUN={{run.id}}" ,
47+ "--runner-env" , "AGENTHUB_PROFILE_THREAD={{run.threadId}}" ,
4348 })
4449 if err != nil {
4550 t .Fatalf ("buildConfig returned error: %v" , err )
@@ -60,6 +65,9 @@ func TestBuildConfigParsesStoreFile(t *testing.T) {
6065 if got , want := []string (cfg .RunnerArgs ), []string {"--mock" , "--addr=127.0.0.1:0" }; strings .Join (got , "\x00 " ) != strings .Join (want , "\x00 " ) {
6166 t .Fatalf ("RunnerArgs = %#v, want %#v" , got , want )
6267 }
68+ if got , want := []string (cfg .RunnerEnv ), []string {"AGENTHUB_PROFILE_RUN={{run.id}}" , "AGENTHUB_PROFILE_THREAD={{run.threadId}}" }; strings .Join (got , "\x00 " ) != strings .Join (want , "\x00 " ) {
69+ t .Fatalf ("RunnerEnv = %#v, want %#v" , got , want )
70+ }
6371}
6472
6573func TestBuildConfigRejectsUnexpectedArguments (t * testing.T ) {
@@ -76,6 +84,25 @@ func TestBuildConfigRejectsRunnerArgsWithoutCommand(t *testing.T) {
7684 }
7785}
7886
87+ func TestBuildConfigRejectsRunnerEnvWithoutCommand (t * testing.T ) {
88+ _ , err := buildConfig ([]string {"--runner-env" , "AGENTHUB_PROFILE_RUN={{run.id}}" })
89+ if err == nil || ! strings .Contains (err .Error (), "--runner-env requires --runner-command" ) {
90+ t .Fatalf ("buildConfig error = %v, want runner command requirement" , err )
91+ }
92+ }
93+
94+ func TestBuildConfigRejectsInvalidRunnerEnv (t * testing.T ) {
95+ tests := []string {"AGENTHUB_PROFILE_RUN" , "=value" }
96+ for _ , value := range tests {
97+ t .Run (value , func (t * testing.T ) {
98+ _ , err := buildConfig ([]string {"--runner-command" , "agenthub-runner" , "--runner-env" , value })
99+ if err == nil || ! strings .Contains (err .Error (), "--runner-env" ) {
100+ t .Fatalf ("buildConfig error = %v, want runner env validation error" , err )
101+ }
102+ })
103+ }
104+ }
105+
79106func TestBuildConfigRejectsRunnerWorkDirWithoutCommand (t * testing.T ) {
80107 _ , err := buildConfig ([]string {"--runner-workdir" , "workspace" })
81108 if err == nil || ! strings .Contains (err .Error (), "--runner-workdir requires --runner-command" ) {
0 commit comments