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

Function TestStatePull

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

Source from the content-addressed store, hash-verified

22)
23
24func TestStatePull(t *testing.T) {
25 t.Parallel()
26 t.Run("File", func(t *testing.T) {
27 t.Parallel()
28 client, store := coderdtest.NewWithDatabase(t, nil)
29 owner := coderdtest.CreateFirstUser(t, client)
30 templateAdmin, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
31 wantState := []byte("some state")
32 r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
33 OrganizationID: owner.OrganizationID,
34 OwnerID: taUser.ID,
35 }).
36 Seed(database.WorkspaceBuild{}).ProvisionerState(wantState).
37 Do()
38 statefilePath := filepath.Join(t.TempDir(), "state")
39 inv, root := clitest.New(t, "state", "pull", r.Workspace.Name, statefilePath)
40 clitest.SetupConfig(t, templateAdmin, root)
41 err := inv.Run()
42 require.NoError(t, err)
43 gotState, err := os.ReadFile(statefilePath)
44 require.NoError(t, err)
45 require.Equal(t, wantState, gotState)
46 })
47 t.Run("Stdout", func(t *testing.T) {
48 t.Parallel()
49 client, store := coderdtest.NewWithDatabase(t, nil)
50 owner := coderdtest.CreateFirstUser(t, client)
51 templateAdmin, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
52 wantState := []byte("some state")
53 r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
54 OrganizationID: owner.OrganizationID,
55 OwnerID: taUser.ID,
56 }).
57 Seed(database.WorkspaceBuild{}).ProvisionerState(wantState).
58 Do()
59 inv, root := clitest.New(t, "state", "pull", r.Workspace.Name)
60 var gotState bytes.Buffer
61 inv.Stdout = &gotState
62 clitest.SetupConfig(t, templateAdmin, root)
63 err := inv.Run()
64 require.NoError(t, err)
65 require.Equal(t, wantState, bytes.TrimSpace(gotState.Bytes()))
66 })
67 t.Run("OtherUserBuild", func(t *testing.T) {
68 t.Parallel()
69 client, store := coderdtest.NewWithDatabase(t, nil)
70 owner := coderdtest.CreateFirstUser(t, client)
71 _, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
72 wantState := []byte("some state")
73 r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{
74 OrganizationID: owner.OrganizationID,
75 OwnerID: taUser.ID,
76 }).
77 Seed(database.WorkspaceBuild{}).ProvisionerState(wantState).
78 Do()
79 inv, root := clitest.New(t, "state", "pull", taUser.Username+"/"+r.Workspace.Name,
80 "--build", fmt.Sprintf("%d", r.Build.BuildNumber))
81 var gotState bytes.Buffer

Callers

nothing calls this directly

Calls 15

NewWithDatabaseFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
WorkspaceBuildFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
ProvisionerStateMethod · 0.80
RunMethod · 0.65
DoMethod · 0.65
TempDirMethod · 0.65
ReadFileMethod · 0.65

Tested by

no test coverage detected