1
1
package coderd_test
2
2
3
3
import (
4
- "archive/tar"
5
- "bytes"
6
4
"context"
7
5
"testing"
8
6
"time"
@@ -14,6 +12,7 @@ import (
14
12
"github.com/coder/coder/coderd/coderdtest"
15
13
"github.com/coder/coder/codersdk"
16
14
"github.com/coder/coder/database"
15
+ "github.com/coder/coder/provisioner/echo"
17
16
)
18
17
19
18
func TestWorkspaceHistory (t * testing.T ) {
@@ -22,7 +21,7 @@ func TestWorkspaceHistory(t *testing.T) {
22
21
setupProjectAndWorkspace := func (t * testing.T , client * codersdk.Client , user coderd.CreateInitialUserRequest ) (coderd.Project , coderd.Workspace ) {
23
22
project , err := client .CreateProject (context .Background (), user .Organization , coderd.CreateProjectRequest {
24
23
Name : "banana" ,
25
- Provisioner : database .ProvisionerTypeTerraform ,
24
+ Provisioner : database .ProvisionerTypeEcho ,
26
25
})
27
26
require .NoError (t , err )
28
27
workspace , err := client .CreateWorkspace (context .Background (), "" , coderd.CreateWorkspaceRequest {
@@ -33,24 +32,10 @@ func TestWorkspaceHistory(t *testing.T) {
33
32
return project , workspace
34
33
}
35
34
36
- setupProjectHistory := func (t * testing.T , client * codersdk.Client , user coderd.CreateInitialUserRequest , project coderd.Project , files map [string ]string ) coderd.ProjectHistory {
37
- var buffer bytes.Buffer
38
- writer := tar .NewWriter (& buffer )
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 ()
49
- require .NoError (t , err )
50
-
35
+ setupProjectHistory := func (t * testing.T , client * codersdk.Client , user coderd.CreateInitialUserRequest , project coderd.Project , data []byte ) coderd.ProjectHistory {
51
36
projectHistory , err := client .CreateProjectHistory (context .Background (), user .Organization , project .Name , coderd.CreateProjectHistoryRequest {
52
37
StorageMethod : database .ProjectStorageMethodInlineArchive ,
53
- StorageSource : buffer . Bytes () ,
38
+ StorageSource : data ,
54
39
})
55
40
require .NoError (t , err )
56
41
require .Eventually (t , func () bool {
@@ -71,9 +56,9 @@ func TestWorkspaceHistory(t *testing.T) {
71
56
history , err := server .Client .ListWorkspaceHistory (context .Background (), "" , workspace .Name )
72
57
require .NoError (t , err )
73
58
require .Len (t , history , 0 )
74
- projectVersion := setupProjectHistory ( t , server . Client , user , project , map [ string ] string {
75
- "example" : "file" ,
76
- } )
59
+ data , err := echo . Tar ( echo . ParseComplete , echo . ProvisionComplete )
60
+ require . NoError ( t , err )
61
+ projectVersion := setupProjectHistory ( t , server . Client , user , project , data )
77
62
_ , err = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
78
63
ProjectHistoryID : projectVersion .ID ,
79
64
Transition : database .WorkspaceTransitionCreate ,
@@ -92,9 +77,9 @@ func TestWorkspaceHistory(t *testing.T) {
92
77
project , workspace := setupProjectAndWorkspace (t , server .Client , user )
93
78
_ , err := server .Client .WorkspaceHistory (context .Background (), "" , workspace .Name , "" )
94
79
require .Error (t , err )
95
- projectHistory := setupProjectHistory ( t , server . Client , user , project , map [ string ] string {
96
- "some" : "file" ,
97
- } )
80
+ data , err := echo . Tar ( echo . ParseComplete , echo . ProvisionComplete )
81
+ require . NoError ( t , err )
82
+ projectHistory := setupProjectHistory ( t , server . Client , user , project , data )
98
83
_ , err = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
99
84
ProjectHistoryID : projectHistory .ID ,
100
85
Transition : database .WorkspaceTransitionCreate ,
@@ -110,10 +95,10 @@ func TestWorkspaceHistory(t *testing.T) {
110
95
user := server .RandomInitialUser (t )
111
96
_ = server .AddProvisionerd (t )
112
97
project , workspace := setupProjectAndWorkspace (t , server .Client , user )
113
- projectHistory := setupProjectHistory ( t , server . Client , user , project , map [ string ] string {
114
- "main.tf" : `resource "null_resource" "example" {}` ,
115
- } )
116
- _ , err : = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
98
+ data , err := echo . Tar ( echo . ParseComplete , echo . ProvisionComplete )
99
+ require . NoError ( t , err )
100
+ projectHistory := setupProjectHistory ( t , server . Client , user , project , data )
101
+ _ , err = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
117
102
ProjectHistoryID : projectHistory .ID ,
118
103
Transition : database .WorkspaceTransitionCreate ,
119
104
})
@@ -135,11 +120,11 @@ func TestWorkspaceHistory(t *testing.T) {
135
120
user := server .RandomInitialUser (t )
136
121
_ = server .AddProvisionerd (t )
137
122
project , workspace := setupProjectAndWorkspace (t , server .Client , user )
138
- projectHistory := setupProjectHistory ( t , server . Client , user , project , map [ string ] string {
139
- "some" : "content" ,
140
- } )
123
+ data , err := echo . Tar ( echo . ParseComplete , echo . ProvisionComplete )
124
+ require . NoError ( t , err )
125
+ projectHistory := setupProjectHistory ( t , server . Client , user , project , data )
141
126
142
- _ , err : = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
127
+ _ , err = server .Client .CreateWorkspaceHistory (context .Background (), "" , workspace .Name , coderd.CreateWorkspaceHistoryRequest {
143
128
ProjectHistoryID : projectHistory .ID ,
144
129
Transition : database .WorkspaceTransitionCreate ,
145
130
})
0 commit comments