@@ -338,7 +338,7 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) {
338
338
339
339
var daemons []codersdk.ProvisionerDaemon
340
340
require .Eventually (t , func () bool {
341
- daemons , err = client .ProvisionerDaemons (ctx )
341
+ daemons , err = client .OrganizationProvisionerDaemons (ctx , user . OrganizationID )
342
342
if err != nil {
343
343
return false
344
344
}
@@ -411,6 +411,53 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) {
411
411
err = inv .WithContext (ctx ).Run ()
412
412
require .ErrorContains (t , err , "cannot provide tags when using provisioner key" )
413
413
})
414
+
415
+ t .Run ("AnotherOrg" , func (t * testing.T ) {
416
+ t .Parallel ()
417
+
418
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
419
+ defer cancel ()
420
+ dv := coderdtest .DeploymentValues (t )
421
+ dv .Experiments .Append (string (codersdk .ExperimentMultiOrganization ))
422
+ client , _ := coderdenttest .New (t , & coderdenttest.Options {
423
+ ProvisionerDaemonPSK : "provisionersftw" ,
424
+ LicenseOptions : & coderdenttest.LicenseOptions {
425
+ Features : license.Features {
426
+ codersdk .FeatureExternalProvisionerDaemons : 1 ,
427
+ codersdk .FeatureMultipleOrganizations : 1 ,
428
+ },
429
+ },
430
+ Options : & coderdtest.Options {
431
+ DeploymentValues : dv ,
432
+ },
433
+ })
434
+ anotherOrg := coderdtest .CreateOrganization (t , client , coderdtest.CreateOrganizationOptions {})
435
+ // nolint:gocritic // test
436
+ res , err := client .CreateProvisionerKey (ctx , anotherOrg .ID , codersdk.CreateProvisionerKeyRequest {
437
+ Name : "dont-TEST-me" ,
438
+ })
439
+ require .NoError (t , err )
440
+ inv , conf := newCLI (t , "provisionerd" , "start" , "--org" , anotherOrg .ID .String (), "--key" , res .Key , "--name=matt-daemon" )
441
+ err = conf .URL ().Write (client .URL .String ())
442
+ require .NoError (t , err )
443
+ pty := ptytest .New (t ).Attach (inv )
444
+ clitest .Start (t , inv )
445
+ pty .ExpectNoMatchBefore (ctx , "check entitlement" , "starting provisioner daemon" )
446
+ pty .ExpectMatchContext (ctx , "matt-daemon" )
447
+
448
+ var daemons []codersdk.ProvisionerDaemon
449
+ require .Eventually (t , func () bool {
450
+ daemons , err = client .OrganizationProvisionerDaemons (ctx , anotherOrg .ID )
451
+ if err != nil {
452
+ return false
453
+ }
454
+ return len (daemons ) == 1
455
+ }, testutil .WaitShort , testutil .IntervalSlow )
456
+ require .Equal (t , "matt-daemon" , daemons [0 ].Name )
457
+ require .Equal (t , provisionersdk .ScopeOrganization , daemons [0 ].Tags [provisionersdk .TagScope ])
458
+ require .Equal (t , buildinfo .Version (), daemons [0 ].Version )
459
+ require .Equal (t , proto .CurrentVersion .String (), daemons [0 ].APIVersion )
460
+ })
414
461
}
415
462
416
463
//nolint:paralleltest,tparallel // Test uses a static port.
0 commit comments