Skip to content

Commit ae91096

Browse files
committed
test(go): add files API tests
1 parent 45ed464 commit ae91096

1 file changed

Lines changed: 231 additions & 0 deletions

File tree

go-sdk/test/api_files_test.go

Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
package test
2+
3+
import (
4+
"os"
5+
"strings"
6+
"testing"
7+
8+
"github.com/stretchr/testify/require"
9+
)
10+
11+
func createTempFile(t *testing.T, content string) string {
12+
t.Helper()
13+
14+
tmpFile, err := os.CreateTemp("", "file-*.txt")
15+
require.NoError(t, err)
16+
17+
_, err = tmpFile.WriteString(content)
18+
require.NoError(t, err)
19+
require.NoError(t, tmpFile.Close())
20+
21+
return tmpFile.Name()
22+
}
23+
24+
func openTempFile(t *testing.T, path string) *os.File {
25+
t.Helper()
26+
27+
file, err := os.Open(path)
28+
require.NoError(t, err)
29+
return file
30+
}
31+
32+
func TestFilesAPI_All(t *testing.T) {
33+
t.Run("createNamespaceDirectoryTest", func(t *testing.T) {
34+
ctx := GetAuthContext()
35+
36+
namespace := "create_namespace_directory"
37+
path := "testdir"
38+
39+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceDirectory(ctx, namespace, MAIN_TENANT).Path(path).Execute()
40+
require.NoError(t, err)
41+
})
42+
43+
t.Run("createNamespaceFileTest", func(t *testing.T) {
44+
ctx := GetAuthContext()
45+
46+
namespace := "create_namespace_file"
47+
path := "file.txt"
48+
49+
pathOnDisk := createTempFile(t, "test")
50+
file := openTempFile(t, pathOnDisk)
51+
defer func() { _ = file.Close() }()
52+
53+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
54+
Path(path).
55+
FileContent(file).
56+
Execute()
57+
require.NoError(t, err)
58+
})
59+
60+
t.Run("fileContentTest", func(t *testing.T) {
61+
ctx := GetAuthContext()
62+
63+
namespace := "file_content"
64+
path := "file.txt"
65+
66+
pathOnDisk := createTempFile(t, "test")
67+
file := openTempFile(t, pathOnDisk)
68+
defer func() { _ = file.Close() }()
69+
70+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
71+
Path(path).
72+
FileContent(file).
73+
Execute()
74+
require.NoError(t, err)
75+
76+
response, _, err := KestraTestApiClient().FilesAPI.FileContent(ctx, namespace, MAIN_TENANT).
77+
Path(path).
78+
Execute()
79+
require.NoError(t, err)
80+
require.NotNil(t, response)
81+
82+
content, err := os.ReadFile(response.Name())
83+
require.NoError(t, err)
84+
require.Contains(t, string(content), "test")
85+
})
86+
87+
t.Run("fileMetadatasTest", func(t *testing.T) {
88+
ctx := GetAuthContext()
89+
90+
namespace := "file_metadatas"
91+
path := "file.txt"
92+
93+
pathOnDisk := createTempFile(t, "test")
94+
file := openTempFile(t, pathOnDisk)
95+
defer func() { _ = file.Close() }()
96+
97+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
98+
Path(path).
99+
FileContent(file).
100+
Execute()
101+
require.NoError(t, err)
102+
103+
response, _, err := KestraTestApiClient().FilesAPI.FileMetadatas(ctx, namespace, MAIN_TENANT).
104+
Path(path).
105+
Execute()
106+
require.NoError(t, err)
107+
require.NotNil(t, response)
108+
require.NotNil(t, response.GetSize())
109+
})
110+
111+
t.Run("fileRevisionsTest", func(t *testing.T) {
112+
t.Skip("disabled in Java tests")
113+
})
114+
115+
t.Run("listNamespaceDirectoryFilesTest", func(t *testing.T) {
116+
ctx := GetAuthContext()
117+
118+
namespace := "list_namespace_directory_files"
119+
path := ""
120+
121+
pathOnDisk := createTempFile(t, "test")
122+
file := openTempFile(t, pathOnDisk)
123+
defer func() { _ = file.Close() }()
124+
125+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
126+
Path("file.txt").
127+
FileContent(file).
128+
Execute()
129+
require.NoError(t, err)
130+
131+
response, _, err := KestraTestApiClient().FilesAPI.ListNamespaceDirectoryFiles(ctx, namespace, MAIN_TENANT).
132+
Path(path).
133+
Execute()
134+
require.NoError(t, err)
135+
require.NotNil(t, response)
136+
require.NotEmpty(t, response)
137+
})
138+
139+
t.Run("moveFileDirectoryTest", func(t *testing.T) {
140+
ctx := GetAuthContext()
141+
142+
namespace := "move_file_directory"
143+
fromPath := "/file_to_move.txt"
144+
toPath := "/moved_file.txt"
145+
146+
pathOnDisk := createTempFile(t, "test")
147+
file := openTempFile(t, pathOnDisk)
148+
defer func() { _ = file.Close() }()
149+
150+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
151+
Path(fromPath[1:]).
152+
FileContent(file).
153+
Execute()
154+
require.NoError(t, err)
155+
156+
_, err = KestraTestApiClient().FilesAPI.MoveFileDirectory(ctx, namespace, MAIN_TENANT).
157+
From(fromPath).
158+
To(toPath).
159+
Execute()
160+
require.NoError(t, err)
161+
162+
search, _, err := KestraTestApiClient().FilesAPI.SearchNamespaceFiles(ctx, namespace, MAIN_TENANT).
163+
Q("moved_file").
164+
Execute()
165+
require.NoError(t, err)
166+
require.NotNil(t, search)
167+
})
168+
169+
t.Run("deleteFileDirectoryTest", func(t *testing.T) {
170+
ctx := GetAuthContext()
171+
172+
namespace := "delete_file_directory"
173+
path := "file_to_delete.txt"
174+
175+
pathOnDisk := createTempFile(t, "test")
176+
file := openTempFile(t, pathOnDisk)
177+
defer func() { _ = file.Close() }()
178+
179+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
180+
Path(path).
181+
FileContent(file).
182+
Execute()
183+
require.NoError(t, err)
184+
185+
_, err = KestraTestApiClient().FilesAPI.DeleteFileDirectory(ctx, namespace, MAIN_TENANT).
186+
Path(path).
187+
Execute()
188+
require.NoError(t, err)
189+
})
190+
191+
t.Run("exportNamespaceFilesTest", func(t *testing.T) {
192+
ctx := GetAuthContext()
193+
194+
namespace := "export_namespace_files"
195+
response, _, err := KestraTestApiClient().FilesAPI.ExportNamespaceFiles(ctx, namespace, MAIN_TENANT).Execute()
196+
require.NoError(t, err)
197+
require.NotEmpty(t, response)
198+
})
199+
200+
t.Run("searchNamespaceFilesTest", func(t *testing.T) {
201+
ctx := GetAuthContext()
202+
203+
namespace := "search_namespace_files"
204+
q := "file"
205+
206+
pathOnDisk := createTempFile(t, "test")
207+
file := openTempFile(t, pathOnDisk)
208+
defer func() { _ = file.Close() }()
209+
210+
_, err := KestraTestApiClient().FilesAPI.CreateNamespaceFile(ctx, namespace, MAIN_TENANT).
211+
Path("search_file.txt").
212+
FileContent(file).
213+
Execute()
214+
require.NoError(t, err)
215+
216+
response, _, err := KestraTestApiClient().FilesAPI.SearchNamespaceFiles(ctx, namespace, MAIN_TENANT).
217+
Q(q).
218+
Execute()
219+
require.NoError(t, err)
220+
require.NotNil(t, response)
221+
222+
found := false
223+
for _, item := range response {
224+
if item == "search_file.txt" || strings.Contains(item, "search_file.txt") {
225+
found = true
226+
break
227+
}
228+
}
229+
require.True(t, found)
230+
})
231+
}

0 commit comments

Comments
 (0)