@@ -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 :"outdated:false" ,
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 :"outdated:true" ,
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
+ ID :newTv .ID ,
1668
+ })
1669
+ require .NoError (t ,err )
1670
+
1671
+ // Check the query again
1672
+ res ,err = client .Workspaces (ctx , codersdk.WorkspaceFilter {
1673
+ FilterQuery :"outdated:false" ,
1674
+ })
1675
+ require .NoError (t ,err )
1676
+ require .Len (t ,res .Workspaces ,0 )
1677
+
1678
+ res ,err = client .Workspaces (ctx , codersdk.WorkspaceFilter {
1679
+ FilterQuery :"outdated:true" ,
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 ) {