@@ -174,7 +174,7 @@ func TestValidateSecret(t *testing.T) {
174174 err := checkConsistency (project )
175175 assert .NilError (t , err )
176176 })
177- t .Run ("uset secret" , func (t * testing.T ) {
177+ t .Run ("unset secret type " , func (t * testing.T ) {
178178 project := & types.Project {
179179 Secrets : types.Secrets {
180180 "foo" : types.SecretConfig {},
@@ -183,6 +183,49 @@ func TestValidateSecret(t *testing.T) {
183183 err := checkConsistency (project )
184184 assert .Error (t , err , "secret \" foo\" must declare either `file` or `environment`: invalid compose project" )
185185 })
186+
187+ t .Run ("service secret exist" , func (t * testing.T ) {
188+ project := & types.Project {
189+ Secrets : types.Secrets {
190+ "foo" : types.SecretConfig {
191+ External : types.External {
192+ External : true ,
193+ },
194+ },
195+ },
196+ Services : types .Services ([]types.ServiceConfig {
197+ {
198+ Name : "myservice" ,
199+ Image : "scratch" ,
200+ Secrets : []types.ServiceSecretConfig {
201+ {
202+ Source : "foo" ,
203+ },
204+ },
205+ },
206+ }),
207+ }
208+ err := checkConsistency (project )
209+ assert .NilError (t , err )
210+ })
211+
212+ t .Run ("service secret undefined" , func (t * testing.T ) {
213+ project := & types.Project {
214+ Services : types .Services ([]types.ServiceConfig {
215+ {
216+ Name : "myservice" ,
217+ Image : "scratch" ,
218+ Secrets : []types.ServiceSecretConfig {
219+ {
220+ Source : "foo" ,
221+ },
222+ },
223+ },
224+ }),
225+ }
226+ err := checkConsistency (project )
227+ assert .Error (t , err , `service "myservice" refers to undefined secret foo: invalid compose project` )
228+ })
186229}
187230
188231func TestValidateDependsOn (t * testing.T ) {
0 commit comments