@@ -228,4 +228,36 @@ func TestAITasksCreate(t *testing.T) {
228
228
require .ErrorAsf (t , err , & sdkErr , "error should be of type *codersdk.Error" )
229
229
assert .Equal (t , http .StatusBadRequest , sdkErr .StatusCode ())
230
230
})
231
+
232
+ t .Run ("FailsOnInvalidTemplate" , func (t * testing.T ) {
233
+ var (
234
+ ctx = testutil .Context (t , testutil .WaitShort )
235
+
236
+ taskName = "task-foo-bar-baz"
237
+ taskPrompt = "Some task prompt"
238
+ )
239
+
240
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
241
+ user := coderdtest .CreateFirstUser (t , client )
242
+
243
+ // Given: A template
244
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
245
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
246
+ _ = coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
247
+
248
+ expClient := codersdk .NewExperimentalClient (client )
249
+
250
+ // When: We attempt to create a Task with an invalid template version ID.
251
+ _ , err := expClient .AITasksCreate (ctx , codersdk.CreateAITasksRequest {
252
+ Name : taskName ,
253
+ TemplateVersionID : uuid .New (),
254
+ Prompt : taskPrompt ,
255
+ })
256
+
257
+ // Then: We expect it to fail.
258
+ var sdkErr * codersdk.Error
259
+ require .Error (t , err )
260
+ require .ErrorAsf (t , err , & sdkErr , "error should be of type *codersdk.Error" )
261
+ assert .Equal (t , http .StatusNotFound , sdkErr .StatusCode ())
262
+ })
231
263
}
0 commit comments