@@ -89,12 +89,96 @@ func TestResolveAgentFile_EmptyIsDefault(t *testing.T) {
8989 home := t .TempDir ()
9090 t .Setenv ("HOME" , home )
9191
92+ // Ensure no docker-agent.yaml in the working directory
93+ t .Chdir (t .TempDir ())
94+
95+ resolved , err := resolve ("" )
96+
97+ require .NoError (t , err )
98+ assert .Equal (t , "default" , resolved )
99+ }
100+
101+ func TestResolveAgentFile_AutodiscoverYaml (t * testing.T ) {
102+ home := t .TempDir ()
103+ t .Setenv ("HOME" , home )
104+
105+ dir := t .TempDir ()
106+ configFile := filepath .Join (dir , "docker-agent.yaml" )
107+ require .NoError (t , os .WriteFile (configFile , []byte (`version: "1"` ), 0o644 ))
108+ t .Chdir (dir )
109+
110+ resolved , err := resolve ("" )
111+
112+ require .NoError (t , err )
113+ assert .Equal (t , configFile , resolved )
114+ }
115+
116+ func TestResolveAgentFile_AutodiscoverYml (t * testing.T ) {
117+ home := t .TempDir ()
118+ t .Setenv ("HOME" , home )
119+
120+ dir := t .TempDir ()
121+ configFile := filepath .Join (dir , "docker-agent.yml" )
122+ require .NoError (t , os .WriteFile (configFile , []byte (`version: "1"` ), 0o644 ))
123+ t .Chdir (dir )
124+
125+ resolved , err := resolve ("" )
126+
127+ require .NoError (t , err )
128+ assert .Equal (t , configFile , resolved )
129+ }
130+
131+ func TestResolveAgentFile_AutodiscoverYamlTakesPrecedenceOverYml (t * testing.T ) {
132+ home := t .TempDir ()
133+ t .Setenv ("HOME" , home )
134+
135+ dir := t .TempDir ()
136+ primaryConfig := filepath .Join (dir , "docker-agent.yaml" )
137+ secondaryConfig := filepath .Join (dir , "docker-agent.yml" )
138+ require .NoError (t , os .WriteFile (primaryConfig , []byte (`version: "1"` ), 0o644 ))
139+ require .NoError (t , os .WriteFile (secondaryConfig , []byte (`version: "1"` ), 0o644 ))
140+ t .Chdir (dir )
141+
92142 resolved , err := resolve ("" )
93143
144+ require .NoError (t , err )
145+ assert .Equal (t , primaryConfig , resolved )
146+ }
147+
148+ func TestResolveAgentFile_AutodiscoverIgnoredWhenExplicitArg (t * testing.T ) {
149+ home := t .TempDir ()
150+ t .Setenv ("HOME" , home )
151+
152+ dir := t .TempDir ()
153+ // Place a docker-agent.yaml in cwd
154+ require .NoError (t , os .WriteFile (filepath .Join (dir , "docker-agent.yaml" ), []byte (`version: "1"` ), 0o644 ))
155+ t .Chdir (dir )
156+
157+ // Explicitly passing "default" should not trigger autodiscovery
158+ resolved , err := resolve ("default" )
159+
94160 require .NoError (t , err )
95161 assert .Equal (t , "default" , resolved )
96162}
97163
164+ func TestResolveAgentFile_AutodiscoverIgnoredWhenExplicitFile (t * testing.T ) {
165+ home := t .TempDir ()
166+ t .Setenv ("HOME" , home )
167+
168+ dir := t .TempDir ()
169+ // Place a docker-agent.yaml in cwd
170+ require .NoError (t , os .WriteFile (filepath .Join (dir , "docker-agent.yaml" ), []byte (`version: "1"` ), 0o644 ))
171+ // Place an explicit agent file
172+ explicitFile := filepath .Join (dir , "my-agent.yaml" )
173+ require .NoError (t , os .WriteFile (explicitFile , []byte (`version: "1"` ), 0o644 ))
174+ t .Chdir (dir )
175+
176+ resolved , err := resolve (explicitFile )
177+
178+ require .NoError (t , err )
179+ assert .Equal (t , explicitFile , resolved )
180+ }
181+
98182func TestResolveAgentFile_DefaultIsDefault (t * testing.T ) {
99183 home := t .TempDir ()
100184 t .Setenv ("HOME" , home )
0 commit comments