Skip to content

Commit 8b36242

Browse files
test: added extension test suit to sanity
1 parent e75befb commit 8b36242

File tree

3 files changed

+481
-0
lines changed

3 files changed

+481
-0
lines changed
Lines changed: 389 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,389 @@
1+
import path from 'path'
2+
import { expect } from 'chai'
3+
import { describe, it, setup } from 'mocha'
4+
import { jsonReader } from '../utility/fileOperations/readwrite'
5+
import { customFieldURL, customFieldSRC, customWidgetURL, customWidgetSRC, customDashboardURL, customDashboardSRC } from '../mock/extension'
6+
import { contentstackClient } from '../utility/ContentstackClient.js'
7+
import dotenv from 'dotenv'
8+
9+
dotenv.config()
10+
let client = {}
11+
12+
let customFieldUID = ''
13+
let customWidgetUID = ''
14+
let customDashboardUID = ''
15+
let customFieldSrcUID = ''
16+
let customWidgetSrcUID = ''
17+
let customDashboardSrcUID = ''
18+
let customFieldUploadUID = ''
19+
let customWidgetUploadUID = ''
20+
let customDashboardUploadUID = ''
21+
22+
describe('Extension api Test', () => {
23+
setup(() => {
24+
const user = jsonReader('loggedinuser.json')
25+
client = contentstackClient(user.authtoken)
26+
})
27+
it('Create Custom field with source URL', done => {
28+
makeExtension()
29+
.create(customFieldURL)
30+
.then((extension) => {
31+
expect(extension.uid).to.be.not.equal(null)
32+
customFieldUID = extension.uid
33+
expect(extension.title).to.be.equal(customFieldURL.extension.title)
34+
expect(extension.src).to.be.equal(customFieldURL.extension.src)
35+
expect(extension.type).to.be.equal(customFieldURL.extension.type)
36+
expect(extension.tag).to.be.equal(customFieldURL.extension.tag)
37+
done()
38+
})
39+
.catch(done)
40+
})
41+
42+
it('Create Custom field with source Code', done => {
43+
makeExtension()
44+
.create(customFieldSRC)
45+
.then((extension) => {
46+
customFieldSrcUID = extension.uid
47+
expect(extension.uid).to.be.not.equal(null)
48+
expect(extension.title).to.be.equal(customFieldSRC.extension.title)
49+
expect(extension.src).to.be.equal(customFieldSRC.extension.src)
50+
expect(extension.type).to.be.equal(customFieldSRC.extension.type)
51+
expect(extension.tag).to.be.equal(customFieldSRC.extension.tag)
52+
done()
53+
})
54+
.catch(done)
55+
})
56+
57+
it('Create Custom widget with source URL', done => {
58+
makeExtension()
59+
.create(customWidgetURL)
60+
.then((extension) => {
61+
expect(extension.uid).to.be.not.equal(null)
62+
customWidgetUID = extension.uid
63+
expect(extension.title).to.be.equal(customWidgetURL.extension.title)
64+
expect(extension.src).to.be.equal(customWidgetURL.extension.src)
65+
expect(extension.type).to.be.equal(customWidgetURL.extension.type)
66+
expect(extension.tag).to.be.equal(customWidgetURL.extension.tag)
67+
done()
68+
})
69+
.catch(done)
70+
})
71+
72+
it('Create Custom widget with source Code', done => {
73+
makeExtension()
74+
.create(customWidgetSRC)
75+
.then((extension) => {
76+
customWidgetSrcUID = extension.uid
77+
expect(extension.uid).to.be.not.equal(null)
78+
expect(extension.title).to.be.equal(customWidgetSRC.extension.title)
79+
expect(extension.src).to.be.equal(customWidgetSRC.extension.src)
80+
expect(extension.type).to.be.equal(customWidgetSRC.extension.type)
81+
expect(extension.tag).to.be.equal(customWidgetSRC.extension.tag)
82+
done()
83+
})
84+
.catch(done)
85+
})
86+
87+
it('Create Custom dashboard with source URL', done => {
88+
makeExtension()
89+
.create(customDashboardURL)
90+
.then((extension) => {
91+
expect(extension.uid).to.be.not.equal(null)
92+
customDashboardUID = extension.uid
93+
expect(extension.title).to.be.equal(customDashboardURL.extension.title)
94+
expect(extension.src).to.be.equal(customDashboardURL.extension.src)
95+
expect(extension.type).to.be.equal(customDashboardURL.extension.type)
96+
expect(extension.tag).to.be.equal(customDashboardURL.extension.tag)
97+
done()
98+
})
99+
.catch(done)
100+
})
101+
102+
it('Create Custom dashboard with source Code', done => {
103+
makeExtension()
104+
.create(customDashboardSRC)
105+
.then((extension) => {
106+
customDashboardSrcUID = extension.uid
107+
expect(extension.uid).to.be.not.equal(null)
108+
expect(extension.title).to.be.equal(customDashboardSRC.extension.title)
109+
expect(extension.src).to.be.equal(customDashboardSRC.extension.src)
110+
expect(extension.type).to.be.equal(customDashboardSRC.extension.type)
111+
expect(extension.tag).to.be.equal(customDashboardSRC.extension.tag)
112+
done()
113+
})
114+
.catch(done)
115+
})
116+
117+
it('fetch and Update Custom fields', done => {
118+
makeExtension(customFieldUID)
119+
.fetch()
120+
.then((extension) => {
121+
expect(extension.title).to.be.equal(customFieldURL.extension.title)
122+
expect(extension.src).to.be.equal(customFieldURL.extension.src)
123+
expect(extension.type).to.be.equal(customFieldURL.extension.type)
124+
expect(extension.tag).to.be.equal(customFieldURL.extension.tag)
125+
extension.title = 'Old field'
126+
return extension.update()
127+
})
128+
.then((extension) => {
129+
expect(extension.uid).to.be.equal(customFieldUID)
130+
expect(extension.title).to.be.equal('Old field')
131+
expect(extension.src).to.be.equal(customFieldURL.extension.src)
132+
expect(extension.type).to.be.equal(customFieldURL.extension.type)
133+
expect(extension.tag).to.be.equal(customFieldURL.extension.tag)
134+
done()
135+
})
136+
.catch(done)
137+
})
138+
139+
it('fetch and Update Custom Widget', done => {
140+
makeExtension(customWidgetUID)
141+
.fetch()
142+
.then((extension) => {
143+
expect(extension.title).to.be.equal(customWidgetURL.extension.title)
144+
expect(extension.src).to.be.equal(customWidgetURL.extension.src)
145+
expect(extension.type).to.be.equal(customWidgetURL.extension.type)
146+
expect(extension.tag).to.be.equal(customWidgetURL.extension.tag)
147+
extension.title = 'Old widget'
148+
return extension.update()
149+
})
150+
.then((extension) => {
151+
expect(extension.uid).to.be.equal(customWidgetUID)
152+
expect(extension.title).to.be.equal('Old widget')
153+
expect(extension.src).to.be.equal(customWidgetURL.extension.src)
154+
expect(extension.type).to.be.equal(customWidgetURL.extension.type)
155+
expect(extension.tag).to.be.equal(customWidgetURL.extension.tag)
156+
done()
157+
})
158+
.catch(done)
159+
})
160+
161+
it('fetch and Update Custom dashboard', done => {
162+
makeExtension(customDashboardUID)
163+
.fetch()
164+
.then((extension) => {
165+
expect(extension.title).to.be.equal(customDashboardURL.extension.title)
166+
expect(extension.src).to.be.equal(customDashboardURL.extension.src)
167+
expect(extension.type).to.be.equal(customDashboardURL.extension.type)
168+
expect(extension.tag).to.be.equal(customDashboardURL.extension.tag)
169+
extension.title = 'Old dashboard'
170+
return extension.update()
171+
})
172+
.then((extension) => {
173+
expect(extension.uid).to.be.equal(customDashboardUID)
174+
expect(extension.title).to.be.equal('Old dashboard')
175+
expect(extension.src).to.be.equal(customDashboardURL.extension.src)
176+
expect(extension.type).to.be.equal(customDashboardURL.extension.type)
177+
expect(extension.tag).to.be.equal(customDashboardURL.extension.tag)
178+
done()
179+
})
180+
.catch(done)
181+
})
182+
183+
it('Query Custom field', done => {
184+
makeExtension()
185+
.query({ query: { type: 'field' } })
186+
.find()
187+
.then((extensions) => {
188+
extensions.items.forEach(extension => {
189+
expect(extension.uid).to.be.not.equal(null)
190+
expect(extension.title).to.be.not.equal(null)
191+
expect(extension.type).to.be.equal('field')
192+
})
193+
done()
194+
})
195+
.catch(done)
196+
})
197+
198+
it('Query Custom widget', done => {
199+
makeExtension()
200+
.query({ query: { type: 'widget' } })
201+
.find()
202+
.then((extensions) => {
203+
extensions.items.forEach(extension => {
204+
expect(extension.uid).to.be.not.equal(null)
205+
expect(extension.title).to.be.not.equal(null)
206+
expect(extension.type).to.be.equal('widget')
207+
})
208+
done()
209+
})
210+
.catch(done)
211+
})
212+
213+
it('Query Custom dashboard', done => {
214+
makeExtension()
215+
.query({ query: { type: 'dashboard' } })
216+
.find()
217+
.then((extensions) => {
218+
extensions.items.forEach(extension => {
219+
expect(extension.uid).to.be.not.equal(null)
220+
expect(extension.title).to.be.not.equal(null)
221+
expect(extension.type).to.be.equal('dashboard')
222+
})
223+
done()
224+
})
225+
.catch(done)
226+
})
227+
228+
it('Upload Custom field', done => {
229+
makeExtension()
230+
.upload({
231+
title: 'Custom field Upload',
232+
data_type: customFieldURL.extension.data_type,
233+
type: customFieldURL.extension.type,
234+
tags: customFieldURL.extension.tags,
235+
multiple: customFieldURL.extension.multiple,
236+
upload: path.join(__dirname, '../mock/customUpload.html')
237+
})
238+
.then((extension) => {
239+
customFieldUploadUID = extension.uid
240+
expect(extension.uid).to.be.not.equal(null)
241+
expect(extension.title).to.be.equal('Custom field Upload')
242+
expect(extension.data_type).to.be.equal(customFieldURL.extension.data_type)
243+
expect(extension.type).to.be.equal(customFieldURL.extension.type)
244+
expect(extension.tag).to.be.equal(customFieldURL.extension.tag)
245+
done()
246+
})
247+
.catch(done)
248+
})
249+
250+
it('Upload Custom widget', done => {
251+
makeExtension()
252+
.upload({
253+
title: 'Custom widget Upload',
254+
data_type: customWidgetURL.extension.data_type,
255+
type: customWidgetURL.extension.type,
256+
scope: customWidgetURL.extension.scope,
257+
tags: customWidgetURL.extension.tags.join(','),
258+
upload: path.join(__dirname, '../mock/customUpload.html')
259+
})
260+
.then((extension) => {
261+
expect(extension.uid).to.be.not.equal(null)
262+
customWidgetUploadUID = extension.uid
263+
expect(extension.title).to.be.equal('Custom widget Upload')
264+
expect(extension.type).to.be.equal(customWidgetURL.extension.type)
265+
expect(extension.tag).to.be.equal(customWidgetURL.extension.tag)
266+
done()
267+
})
268+
.catch(done)
269+
})
270+
271+
it('Upload dashboard', done => {
272+
makeExtension()
273+
.upload({
274+
title: 'Custom dashboard Upload',
275+
data_type: customDashboardURL.extension.data_type,
276+
type: customDashboardURL.extension.type,
277+
tags: customDashboardURL.extension.tags,
278+
enable: customDashboardURL.extension.enable,
279+
default_width: customDashboardURL.extension.default_width,
280+
upload: path.join(__dirname, '../mock/customUpload.html')
281+
})
282+
.then((extension) => {
283+
expect(extension.uid).to.be.not.equal(null)
284+
customDashboardUploadUID = extension.uid
285+
expect(extension.title).to.be.equal('Custom dashboard Upload')
286+
expect(extension.data_type).to.be.equal(customDashboardURL.extension.data_type)
287+
expect(extension.type).to.be.equal(customDashboardURL.extension.type)
288+
expect(extension.tag).to.be.equal(customDashboardURL.extension.tag)
289+
expect(extension.enable).to.be.equal(customDashboardURL.extension.enable)
290+
expect(extension.default_width).to.be.equal(customDashboardURL.extension.default_width)
291+
done()
292+
})
293+
.catch(done)
294+
})
295+
296+
it('Delete Custom field', done => {
297+
makeExtension(customFieldUID)
298+
.delete()
299+
.then((data) => {
300+
expect(data.notice).to.be.equal('Extension deleted successfully.')
301+
done()
302+
})
303+
.catch(done)
304+
})
305+
306+
it('Delete Custom widget', done => {
307+
makeExtension(customWidgetUID)
308+
.delete()
309+
.then((data) => {
310+
expect(data.notice).to.be.equal('Extension deleted successfully.')
311+
done()
312+
})
313+
.catch(done)
314+
})
315+
316+
it('Delete Custom dashboard', done => {
317+
makeExtension(customDashboardUID)
318+
.delete()
319+
.then((data) => {
320+
expect(data.notice).to.be.equal('Extension deleted successfully.')
321+
done()
322+
})
323+
.catch(done)
324+
})
325+
326+
it('Delete Custom field created from src', done => {
327+
makeExtension(customFieldSrcUID)
328+
.delete()
329+
.then((data) => {
330+
expect(data.notice).to.be.equal('Extension deleted successfully.')
331+
done()
332+
})
333+
.catch(done)
334+
})
335+
336+
it('Delete Custom widget created from src', done => {
337+
makeExtension(customWidgetSrcUID)
338+
.delete()
339+
.then((data) => {
340+
expect(data.notice).to.be.equal('Extension deleted successfully.')
341+
done()
342+
})
343+
.catch(done)
344+
})
345+
346+
it('Delete Custom dashboard created from src', done => {
347+
makeExtension(customDashboardSrcUID)
348+
.delete()
349+
.then((data) => {
350+
expect(data.notice).to.be.equal('Extension deleted successfully.')
351+
done()
352+
})
353+
.catch(done)
354+
})
355+
356+
it('Delete Custom field uploaded', done => {
357+
makeExtension(customFieldUploadUID)
358+
.delete()
359+
.then((data) => {
360+
expect(data.notice).to.be.equal('Extension deleted successfully.')
361+
done()
362+
})
363+
.catch(done)
364+
})
365+
366+
it('Delete Custom widget uploaded', done => {
367+
makeExtension(customWidgetUploadUID)
368+
.delete()
369+
.then((data) => {
370+
expect(data.notice).to.be.equal('Extension deleted successfully.')
371+
done()
372+
})
373+
.catch(done)
374+
})
375+
376+
it('Delete Custom dashboard uploaded', done => {
377+
makeExtension(customDashboardUploadUID)
378+
.delete()
379+
.then((data) => {
380+
expect(data.notice).to.be.equal('Extension deleted successfully.')
381+
done()
382+
})
383+
.catch(done)
384+
})
385+
})
386+
387+
function makeExtension (uid = null) {
388+
return client.stack({ api_key: process.env.API_KEY }).extension(uid)
389+
}

0 commit comments

Comments
 (0)