Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50655 views
1
###
2
Testing API functions that copy from one project to another
3
###
4
5
api = require('./apitest')
6
{setup, teardown} = api
7
misc = require('smc-util/misc')
8
expect = require('expect')
9
10
describe 'testing copy between projects -- ', ->
11
before(setup)
12
after(teardown)
13
14
project_id = undefined
15
project_id2 = undefined
16
17
path1 = 'doc1.txt'
18
path2 = 'B2/doc2.txt'
19
path3 = 'FOO/abc.txt'
20
21
content = 'TEST CONTENT'
22
src_dir = 'TEST_DIR'
23
24
it "creates source project", (done) ->
25
api.call
26
event : 'create_project'
27
body :
28
title : 'TEST1'
29
description : 'Source Project'
30
cb : (err, resp) ->
31
expect(resp?.event).toBe('project_created')
32
project_id = resp.project_id
33
done(err)
34
35
it "creates target project", (done) ->
36
api.call
37
event : 'create_project'
38
body :
39
title : 'TEST2'
40
description : 'Target Project'
41
cb : (err, resp) ->
42
expect(resp?.event).toBe('project_created')
43
project_id2 = resp.project_id
44
done(err)
45
46
47
it "creates file in source project", (done) ->
48
@timeout(15000)
49
api.call
50
event : 'write_text_file_to_project'
51
body :
52
project_id: project_id
53
content : content
54
path : path1
55
cb : (err, resp) ->
56
expect(err).toEqual(null)
57
expect(resp?.event).toBe('file_written_to_project')
58
done(err)
59
60
it "copies file to a private target", (done) ->
61
@timeout(15000)
62
api.call
63
event : 'copy_path_between_projects'
64
body :
65
src_project_id : project_id
66
src_path : path1
67
target_project_id: project_id2
68
cb : (err, resp) ->
69
expect(err).toEqual(null)
70
expect(resp?.event).toBe('success')
71
done(err)
72
73
it "reads target file 1", (done) ->
74
@timeout(15000)
75
api.call
76
event : 'read_text_file_from_project'
77
body :
78
project_id: project_id2
79
path : path1
80
cb : (err, resp) ->
81
expect(err).toEqual(null)
82
expect(resp?.event).toBe('text_file_read_from_project')
83
expect(resp?.content).toBe(content)
84
done(err)
85
86
it "creates folder with text file in source project", (done) ->
87
@timeout(15000)
88
api.call
89
event : 'write_text_file_to_project'
90
body :
91
project_id: project_id
92
content : content
93
path : path2
94
cb : (err, resp) ->
95
expect(err).toEqual(null)
96
expect(resp?.event).toBe('file_written_to_project')
97
done(err)
98
99
it "copies src with directory and file", (done) ->
100
@timeout(15000)
101
api.call
102
event : 'copy_path_between_projects'
103
body :
104
src_project_id : project_id
105
src_path : path2
106
target_project_id: project_id2
107
cb : (err, resp) ->
108
expect(err).toEqual(null)
109
expect(resp?.event).toBe('success')
110
done(err)
111
112
it "reads target file 2", (done) ->
113
@timeout(15000)
114
api.call
115
event : 'read_text_file_from_project'
116
body :
117
project_id: project_id2
118
path : path2
119
cb : (err, resp) ->
120
expect(resp?.event).toBe('text_file_read_from_project')
121
expect(resp?.content).toBe(content)
122
done(err)
123
124
it "copies file to directory", (done) ->
125
# src:'B2/doc2.txt' tgt:'DIR3/ result:'DIR3/doc2.txt'
126
@timeout(15000)
127
api.call
128
event : 'copy_path_between_projects'
129
body :
130
src_project_id : project_id
131
src_path : path2
132
target_project_id: project_id2
133
target_path : 'DIR3/'
134
cb : (err, resp) ->
135
expect(err).toEqual(null)
136
expect(resp?.event).toBe('success')
137
done(err)
138
139
it "reads target file 3", (done) ->
140
@timeout(15000)
141
api.call
142
event : 'read_text_file_from_project'
143
body :
144
project_id: project_id2
145
path : 'DIR3/doc2.txt'
146
cb : (err, resp) ->
147
expect(err).toEqual(null)
148
expect(resp?.event).toBe('text_file_read_from_project')
149
expect(resp?.content).toBe(content)
150
done(err)
151
152
it "copies directory to directory", (done) ->
153
# src:'B2/' tgt:'DIR4/ result:'DIR4/doc2.txt'
154
@timeout(15000)
155
api.call
156
event : 'copy_path_between_projects'
157
body :
158
src_project_id : project_id
159
src_path : 'B2/'
160
target_project_id: project_id2
161
target_path : 'DIR4/'
162
cb : (err, resp) ->
163
expect(err).toEqual(null)
164
expect(resp?.event).toBe('success')
165
done(err)
166
167
it "reads target file 4", (done) ->
168
@timeout(15000)
169
api.call
170
event : 'read_text_file_from_project'
171
body :
172
project_id: project_id2
173
path : 'DIR4/doc2.txt'
174
cb : (err, resp) ->
175
expect(err).toEqual(null)
176
expect(resp?.event).toBe('text_file_read_from_project')
177
expect(resp?.content).toBe(content)
178
done(err)
179
180
it "uses API query to make a file public", (done) ->
181
api.call
182
event : 'query'
183
body :
184
query : {public_paths:{project_id:project_id, path:path2, description:'Doc #2'}}
185
cb : (err, resp) ->
186
expect(resp?.event).toBe('query')
187
done(err)
188
189
it "copies a public file to different target dir", (done) ->
190
# src:'B2/doc2.txt'(public) tgt:'FOO/abc.txt'
191
@timeout(15000)
192
api.call
193
event : 'copy_public_path_between_projects'
194
body :
195
src_project_id : project_id
196
src_path : path2
197
target_project_id: project_id2
198
target_path : path3
199
cb : (err, resp) ->
200
expect(resp?.event).toBe('success')
201
done(err)
202
203
it "reads copied public file", (done) ->
204
@timeout(15000)
205
api.call
206
event : 'read_text_file_from_project'
207
body :
208
project_id: project_id2
209
path : path3
210
cb : (err, resp) ->
211
expect(resp?.event).toBe('text_file_read_from_project')
212
expect(resp?.content).toBe(content)
213
done(err)
214
215