@@ -1632,6 +1632,56 @@ func TestWorkspaceFilterManual(t *testing.T) {
1632
1632
require .Len (t , afterRes .Workspaces , 1 )
1633
1633
require .Equal (t , after .ID , afterRes .Workspaces [0 ].ID )
1634
1634
})
1635
+ t .Run ("Updated" , func (t * testing.T ) {
1636
+ t .Parallel ()
1637
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
1638
+ user := coderdtest .CreateFirstUser (t , client )
1639
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
1640
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
1641
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
1642
+ workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
1643
+
1644
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
1645
+ defer cancel ()
1646
+
1647
+ // Workspace is up-to-date
1648
+ res , err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
1649
+ FilterQuery : "updated:true" ,
1650
+ })
1651
+ require .NoError (t , err )
1652
+ require .Len (t , res .Workspaces , 1 )
1653
+ require .Equal (t , workspace .ID , res .Workspaces [0 ].ID )
1654
+
1655
+ res , err = client .Workspaces (ctx , codersdk.WorkspaceFilter {
1656
+ FilterQuery : "updated:false" ,
1657
+ })
1658
+ require .NoError (t , err )
1659
+ require .Len (t , res .Workspaces , 0 )
1660
+
1661
+ // Now make it out of date
1662
+ newTv := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil , func (request * codersdk.CreateTemplateVersionRequest ) {
1663
+ request .TemplateID = template .ID
1664
+ })
1665
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
1666
+ err = client .UpdateActiveTemplateVersion (ctx , template .ID , codersdk.UpdateActiveTemplateVersion {
1667
+ newTv .ID ,
1668
+ })
1669
+ require .NoError (t , err )
1670
+
1671
+ // Check the query again
1672
+ res , err = client .Workspaces (ctx , codersdk.WorkspaceFilter {
1673
+ FilterQuery : "updated:true" ,
1674
+ })
1675
+ require .NoError (t , err )
1676
+ require .Len (t , res .Workspaces , 0 )
1677
+
1678
+ res , err = client .Workspaces (ctx , codersdk.WorkspaceFilter {
1679
+ FilterQuery : "updated:false" ,
1680
+ })
1681
+ require .NoError (t , err )
1682
+ require .Len (t , res .Workspaces , 1 )
1683
+ require .Equal (t , workspace .ID , res .Workspaces [0 ].ID )
1684
+ })
1635
1685
}
1636
1686
1637
1687
func TestOffsetLimit (t * testing.T ) {
0 commit comments