@@ -826,22 +826,100 @@ func TestWorkspaceFilterManual(t *testing.T) {
826
826
})
827
827
t .Run ("FilterQuery_HasAgent_Connecting" , func (t * testing.T ) {
828
828
t .Parallel ()
829
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
829
+
830
+ client := coderdtest .New (t , & coderdtest.Options {
831
+ IncludeProvisionerDaemon : true ,
832
+ })
830
833
user := coderdtest .CreateFirstUser (t , client )
831
- version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
834
+ authToken := uuid .NewString ()
835
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
836
+ Parse : echo .ParseComplete ,
837
+ ProvisionPlan : echo .ProvisionComplete ,
838
+ ProvisionApply : []* proto.Provision_Response {{
839
+ Type : & proto.Provision_Response_Complete {
840
+ Complete : & proto.Provision_Complete {
841
+ Resources : []* proto.Resource {{
842
+ Name : "example" ,
843
+ Type : "aws_instance" ,
844
+ Agents : []* proto.Agent {{
845
+ Id : uuid .NewString (),
846
+ Auth : & proto.Agent_Token {
847
+ Token : authToken ,
848
+ },
849
+ }},
850
+ }},
851
+ },
852
+ },
853
+ }},
854
+ })
855
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
832
856
coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
857
+ workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
858
+ coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
859
+
860
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
861
+ defer cancel ()
862
+
863
+ res , err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
864
+ FilterQuery : fmt .Sprintf ("has-agent:%s" , "connecting" ),
865
+ })
866
+ require .NoError (t , err )
867
+ require .Len (t , res .Workspaces , 1 )
868
+ require .Equal (t , workspace .ID , res .Workspaces [0 ].ID )
869
+ })
870
+ t .Run ("FilterQuery_HasAgent_Connected" , func (t * testing.T ) {
871
+ t .Parallel ()
872
+
873
+ client := coderdtest .New (t , & coderdtest.Options {
874
+ IncludeProvisionerDaemon : true ,
875
+ })
876
+ user := coderdtest .CreateFirstUser (t , client )
877
+ authToken := uuid .NewString ()
878
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
879
+ Parse : echo .ParseComplete ,
880
+ ProvisionPlan : echo .ProvisionComplete ,
881
+ ProvisionApply : []* proto.Provision_Response {{
882
+ Type : & proto.Provision_Response_Complete {
883
+ Complete : & proto.Provision_Complete {
884
+ Resources : []* proto.Resource {{
885
+ Name : "example" ,
886
+ Type : "aws_instance" ,
887
+ Agents : []* proto.Agent {{
888
+ Id : uuid .NewString (),
889
+ Auth : & proto.Agent_Token {
890
+ Token : authToken ,
891
+ },
892
+ }},
893
+ }},
894
+ },
895
+ },
896
+ }},
897
+ })
833
898
template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
899
+ coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
834
900
workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
901
+ coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
902
+
903
+ agentClient := codersdk .New (client .URL )
904
+ agentClient .SetSessionToken (authToken )
905
+ agentCloser := agent .New (agent.Options {
906
+ Client : agentClient ,
907
+ Logger : slogtest .Make (t , nil ).Named ("agent" ).Leveled (slog .LevelDebug ),
908
+ })
909
+ defer func () {
910
+ _ = agentCloser .Close ()
911
+ }()
912
+
913
+ coderdtest .AwaitWorkspaceAgents (t , client , workspace .ID )
835
914
836
915
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
837
916
defer cancel ()
838
917
839
- // single workspace
840
918
res , err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
841
919
FilterQuery : fmt .Sprintf ("has-agent:%s" , "connected" ),
842
920
})
843
921
require .NoError (t , err )
844
- require .Len (t , res .Workspaces , 0 )
922
+ require .Len (t , res .Workspaces , 1 )
845
923
require .Equal (t , workspace .ID , res .Workspaces [0 ].ID )
846
924
})
847
925
}
0 commit comments