@@ -167,4 +167,46 @@ func TestStart(t *testing.T) {
167167})
168168}
169169})
170+
171+ t .Run ("StartActivatesDormant" ,func (t * testing.T ) {
172+ t .Parallel ()
173+
174+ ctx := testutil .Context (t ,testutil .WaitMedium )
175+ ownerClient ,owner := coderdenttest .New (t ,& coderdenttest.Options {
176+ Options :& coderdtest.Options {
177+ IncludeProvisionerDaemon :true ,
178+ },
179+ LicenseOptions :& coderdenttest.LicenseOptions {
180+ Features : license.Features {
181+ codersdk .FeatureAdvancedTemplateScheduling :1 ,
182+ },
183+ },
184+ })
185+
186+ version := coderdtest .CreateTemplateVersion (t ,ownerClient ,owner .OrganizationID ,nil )
187+ _ = coderdtest .AwaitTemplateVersionJobCompleted (t ,ownerClient ,version .ID )
188+ template := coderdtest .CreateTemplate (t ,ownerClient ,owner .OrganizationID ,version .ID )
189+
190+ memberClient ,_ := coderdtest .CreateAnotherUser (t ,ownerClient ,owner .OrganizationID )
191+ workspace := coderdtest .CreateWorkspace (t ,memberClient ,owner .OrganizationID ,template .ID )
192+ _ = coderdtest .AwaitWorkspaceBuildJobCompleted (t ,memberClient ,workspace .LatestBuild .ID )
193+ _ = coderdtest .MustTransitionWorkspace (t ,memberClient ,workspace .ID ,database .WorkspaceTransitionStart ,database .WorkspaceTransitionStop )
194+ err := memberClient .UpdateWorkspaceDormancy (ctx ,workspace .ID , codersdk.UpdateWorkspaceDormancy {
195+ Dormant :true ,
196+ })
197+ require .NoError (t ,err )
198+
199+ inv ,root := newCLI (t ,"start" ,workspace .Name )
200+ clitest .SetupConfig (t ,memberClient ,root )
201+
202+ var buf bytes.Buffer
203+ inv .Stdout = & buf
204+
205+ err = inv .Run ()
206+ require .NoError (t ,err )
207+ require .Contains (t ,buf .String (),"Activating dormant workspace..." )
208+
209+ workspace = coderdtest .MustWorkspace (t ,memberClient ,workspace .ID )
210+ require .Equal (t ,codersdk .WorkspaceTransitionStart ,workspace .LatestBuild .Transition )
211+ })
170212}