@@ -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 ,