@@ -36,13 +36,18 @@ func TestWorkspaceHistory(t *testing.T) {
36
36
setupProjectHistory := func (t * testing.T , client * codersdk.Client , user coderd.CreateInitialUserRequest , project coderd.Project , files map [string ]string ) coderd.ProjectHistory {
37
37
var buffer bytes.Buffer
38
38
writer := tar .NewWriter (& buffer )
39
- err := writer .WriteHeader (& tar.Header {
40
- Name : "file" ,
41
- Size : 1 << 10 ,
42
- })
43
- require .NoError (t , err )
44
- _ , err = writer .Write (make ([]byte , 1 << 10 ))
39
+ for path , content := range files {
40
+ err := writer .WriteHeader (& tar.Header {
41
+ Name : path ,
42
+ Size : int64 (len (content )),
43
+ })
44
+ require .NoError (t , err )
45
+ _ , err = writer .Write ([]byte (content ))
46
+ require .NoError (t , err )
47
+ }
48
+ err := writer .Flush ()
45
49
require .NoError (t , err )
50
+
46
51
projectHistory , err := client .CreateProjectHistory (context .Background (), user .Organization , project .Name , coderd.CreateProjectHistoryRequest {
47
52
StorageMethod : database .ProjectStorageMethodInlineArchive ,
48
53
StorageSource : buffer .Bytes (),
@@ -65,7 +70,9 @@ func TestWorkspaceHistory(t *testing.T) {
65
70
history , err := server .Client .ListWorkspaceHistory (context .Background (), "" , workspace .Name )
66
71
require .NoError (t , err )
67
72
require .Len (t , history , 0 )
68
- projectVersion := setupProjectHistory (t , server .Client , user , project , map [string ]string {})
73
+ projectVersion := setupProjectHistory (t , server .Client , user , project , map [string ]string {
74
+ "example" : "file" ,
75
+ })
69
76
_ , err = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
70
77
ProjectHistoryID : projectVersion .ID ,
71
78
Transition : database .WorkspaceTransitionCreate ,
@@ -84,7 +91,9 @@ func TestWorkspaceHistory(t *testing.T) {
84
91
project , workspace := setupProjectAndWorkspace (t , server .Client , user )
85
92
_ , err := server .Client .WorkspaceHistory (context .Background (), "" , workspace .Name , "" )
86
93
require .Error (t , err )
87
- projectHistory := setupProjectHistory (t , server .Client , user , project , map [string ]string {})
94
+ projectHistory := setupProjectHistory (t , server .Client , user , project , map [string ]string {
95
+ "some" : "file" ,
96
+ })
88
97
_ , err = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
89
98
ProjectHistoryID : projectHistory .ID ,
90
99
Transition : database .WorkspaceTransitionCreate ,
@@ -100,12 +109,23 @@ func TestWorkspaceHistory(t *testing.T) {
100
109
_ = server .AddProvisionerd (t )
101
110
user := server .RandomInitialUser (t )
102
111
project , workspace := setupProjectAndWorkspace (t , server .Client , user )
103
- projectHistory := setupProjectHistory (t , server .Client , user , project , map [string ]string {})
112
+ projectHistory := setupProjectHistory (t , server .Client , user , project , map [string ]string {
113
+ "main.tf" : `resource "null_resource" "example" {}` ,
114
+ })
104
115
_ , err := server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
105
116
ProjectHistoryID : projectHistory .ID ,
106
117
Transition : database .WorkspaceTransitionCreate ,
107
118
})
108
119
require .NoError (t , err )
120
+
121
+ var workspaceHistory coderd.WorkspaceHistory
122
+ require .Eventually (t , func () bool {
123
+ workspaceHistory , err = server .Client .WorkspaceHistory (context .Background (), "" , workspace .Name , "" )
124
+ require .NoError (t , err )
125
+ return workspaceHistory .Provision .Status .Completed ()
126
+ }, 5 * time .Second , 50 * time .Millisecond )
127
+ require .Equal (t , "" , workspaceHistory .Provision .Error )
128
+ require .Equal (t , coderd .ProvisionerJobStatusSucceeded , workspaceHistory .Provision .Status )
109
129
})
110
130
111
131
t .Run ("CreateHistoryAlreadyInProgress" , func (t * testing.T ) {
@@ -114,7 +134,9 @@ func TestWorkspaceHistory(t *testing.T) {
114
134
_ = server .AddProvisionerd (t )
115
135
user := server .RandomInitialUser (t )
116
136
project , workspace := setupProjectAndWorkspace (t , server .Client , user )
117
- projectHistory := setupProjectHistory (t , server .Client , user , project , map [string ]string {})
137
+ projectHistory := setupProjectHistory (t , server .Client , user , project , map [string ]string {
138
+ "some" : "content" ,
139
+ })
118
140
119
141
_ , err := server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
120
142
ProjectHistoryID : projectHistory .ID ,
0 commit comments