MCPcopy Index your code
hub / github.com/coder/coder / TestStatePush

Function TestStatePush

cli/state_test.go:91–207  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

89}
90
91func TestStatePush(t *testing.T) {
92 t.Parallel()
93 t.Run("File", func(t *testing.T) {
94 t.Parallel()
95 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
96 owner := coderdtest.CreateFirstUser(t, client)
97 templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
98 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{
99 Parse: echo.ParseComplete,
100 ProvisionApply: echo.ApplyComplete,
101 })
102 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
103 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
104 workspace := coderdtest.CreateWorkspace(t, templateAdmin, template.ID)
105 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
106 stateFile, err := os.CreateTemp(t.TempDir(), "")
107 require.NoError(t, err)
108 wantState := []byte("some magic state")
109 _, err = stateFile.Write(wantState)
110 require.NoError(t, err)
111 err = stateFile.Close()
112 require.NoError(t, err)
113 inv, root := clitest.New(t, "state", "push", workspace.Name, stateFile.Name())
114 clitest.SetupConfig(t, templateAdmin, root)
115 err = inv.Run()
116 require.NoError(t, err)
117 })
118
119 t.Run("Stdin", func(t *testing.T) {
120 t.Parallel()
121 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
122 owner := coderdtest.CreateFirstUser(t, client)
123 templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
124 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{
125 Parse: echo.ParseComplete,
126 ProvisionApply: echo.ApplyComplete,
127 })
128 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
129 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
130 workspace := coderdtest.CreateWorkspace(t, templateAdmin, template.ID)
131 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
132 inv, root := clitest.New(t, "state", "push", "--build", strconv.Itoa(int(workspace.LatestBuild.BuildNumber)), workspace.Name, "-")
133 clitest.SetupConfig(t, templateAdmin, root)
134 inv.Stdin = strings.NewReader("some magic state")
135 err := inv.Run()
136 require.NoError(t, err)
137 })
138
139 t.Run("OtherUserBuild", func(t *testing.T) {
140 t.Parallel()
141 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
142 owner := coderdtest.CreateFirstUser(t, client)
143 templateAdmin, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
144 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{
145 Parse: echo.ParseComplete,
146 ProvisionApply: echo.ApplyComplete,
147 })
148 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
NewWithDatabaseFunction · 0.92

Tested by

no test coverage detected