Skip to content

Commit 18317ee

Browse files
test: added sanity test for workflow-webhook-release
1 parent c01d3a0 commit 18317ee

File tree

7 files changed

+747
-0
lines changed

7 files changed

+747
-0
lines changed

test/sanity-check/api/release-test.js

Lines changed: 239 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
1+
import { describe, it, setup } from 'mocha'
2+
import { jsonReader } from '../utility/fileOperations/readwrite.js'
3+
import { releaseCreate } from '../mock/release.js'
4+
import { expect } from 'chai'
5+
import { cloneDeep } from 'lodash'
6+
import { contentstackClient } from '../utility/ContentstackClient.js'
7+
import { multiPageCT } from '../mock/content-type.js'
8+
import dotenv from 'dotenv'
9+
10+
dotenv.config()
11+
let client = {}
12+
let releaseUID = ''
13+
let releaseUID2 = ''
14+
let entries = {}
15+
const itemToDelete = {}
16+
17+
describe('Relases api Test', () => {
18+
setup(() => {
19+
const user = jsonReader('loggedinuser.json')
20+
entries = jsonReader('entry.json')
21+
client = contentstackClient(user.authtoken)
22+
})
23+
24+
it('should create a Release', done => {
25+
makeRelease()
26+
.create(releaseCreate)
27+
.then((release) => {
28+
releaseUID = release.uid
29+
expect(release.name).to.be.equal(releaseCreate.release.name)
30+
expect(release.description).to.be.equal(releaseCreate.release.description)
31+
expect(release.uid).to.be.not.equal(null)
32+
done()
33+
})
34+
.catch(done)
35+
})
36+
37+
it('should fetch a Release from Uid', done => {
38+
makeRelease(releaseUID)
39+
.fetch()
40+
.then((release) => {
41+
expect(release.name).to.be.equal(releaseCreate.release.name)
42+
expect(release.description).to.be.equal(releaseCreate.release.description)
43+
expect(release.uid).to.be.equal(releaseUID)
44+
done()
45+
})
46+
.catch(done)
47+
})
48+
49+
it('should create release item', done => {
50+
const item = {
51+
version: entries[0]._version,
52+
uid: entries[0].uid,
53+
content_type_uid: multiPageCT.content_type.uid,
54+
action: 'publish',
55+
locale: 'en-us'
56+
}
57+
makeRelease(releaseUID)
58+
.item()
59+
.create({ item })
60+
.then((release) => {
61+
expect(release.name).to.be.equal(releaseCreate.release.name)
62+
expect(release.description).to.be.equal(releaseCreate.release.description)
63+
expect(release.uid).to.be.equal(releaseUID)
64+
expect(release.items.length).to.be.equal(1)
65+
done()
66+
})
67+
.catch(done)
68+
})
69+
70+
it('should create release items', done => {
71+
const items = [
72+
{
73+
version: entries[1]._version,
74+
uid: entries[1].uid,
75+
content_type_uid: multiPageCT.content_type.uid,
76+
action: 'publish',
77+
locale: 'en-us'
78+
},
79+
{
80+
version: entries[2]._version,
81+
uid: entries[2].uid,
82+
content_type_uid: multiPageCT.content_type.uid,
83+
action: 'publish',
84+
locale: 'en-us'
85+
}
86+
]
87+
makeRelease(releaseUID)
88+
.item()
89+
.create({ items })
90+
.then((release) => {
91+
expect(release.name).to.be.equal(releaseCreate.release.name)
92+
expect(release.description).to.be.equal(releaseCreate.release.description)
93+
expect(release.uid).to.be.equal(releaseUID)
94+
expect(release.items.length).to.be.equal(3)
95+
done()
96+
})
97+
.catch(done)
98+
})
99+
100+
it('should fetch a Release items from Uid', done => {
101+
makeRelease(releaseUID)
102+
.item()
103+
.findAll()
104+
.then((collection) => {
105+
const itemdelete = collection.items[0]
106+
itemToDelete['version'] = itemdelete.version
107+
itemToDelete.action = itemdelete.action
108+
itemToDelete.uid = itemdelete.uid
109+
itemToDelete.locale = itemdelete.locale
110+
itemToDelete.content_type_uid = itemdelete.content_type_uid
111+
expect(collection.items.length).to.be.equal(3)
112+
done()
113+
})
114+
.catch(done)
115+
})
116+
117+
it('should delete specific item', done => {
118+
makeRelease(releaseUID)
119+
.item()
120+
.delete({ items: [itemToDelete] })
121+
.then((release) => {
122+
expect(release.name).to.be.equal(releaseCreate.release.name)
123+
expect(release.description).to.be.equal(releaseCreate.release.description)
124+
expect(release.uid).to.be.equal(releaseUID)
125+
expect(release.items.length).to.be.equal(2)
126+
done()
127+
})
128+
.catch(done)
129+
})
130+
131+
it('should delete all items', done => {
132+
makeRelease(releaseUID)
133+
.item()
134+
.delete()
135+
.then((release) => {
136+
expect(release.name).to.be.equal(releaseCreate.release.name)
137+
expect(release.description).to.be.equal(releaseCreate.release.description)
138+
expect(release.uid).to.be.equal(releaseUID)
139+
expect(release.items.length).to.be.equal(0)
140+
done()
141+
})
142+
.catch(done)
143+
})
144+
145+
it('should fetch and Update a Release from Uid', done => {
146+
makeRelease(releaseUID)
147+
.fetch()
148+
.then((release) => {
149+
release.name = 'Update release name'
150+
return release.update()
151+
})
152+
.then((release) => {
153+
expect(release.name).to.be.equal('Update release name')
154+
expect(release.description).to.be.equal(releaseCreate.release.description)
155+
expect(release.uid).to.be.not.equal(null)
156+
done()
157+
})
158+
.catch(done)
159+
})
160+
161+
it('should update a Release from Uid', done => {
162+
const relaseObject = makeRelease(releaseUID)
163+
Object.assign(relaseObject, cloneDeep(releaseCreate.release))
164+
relaseObject
165+
.update()
166+
.then((release) => {
167+
expect(release.name).to.be.equal(releaseCreate.release.name)
168+
expect(release.description).to.be.equal(releaseCreate.release.description)
169+
expect(release.uid).to.be.not.equal(null)
170+
done()
171+
})
172+
.catch(done)
173+
})
174+
175+
it('should get all Releases', done => {
176+
makeRelease()
177+
.query()
178+
.find()
179+
.then((releaseCollection) => {
180+
releaseCollection.items.forEach(release => {
181+
expect(release.name).to.be.not.equal(null)
182+
expect(release.uid).to.be.not.equal(null)
183+
})
184+
done()
185+
})
186+
.catch(done)
187+
})
188+
189+
it('should get specific Releases with name ', done => {
190+
makeRelease()
191+
.query({ query: { name: releaseCreate.release.name } })
192+
.find()
193+
.then((releaseCollection) => {
194+
releaseCollection.items.forEach(release => {
195+
expect(release.name).to.be.equal(releaseCreate.release.name)
196+
expect(release.uid).to.be.not.equal(null)
197+
})
198+
done()
199+
})
200+
.catch(done)
201+
})
202+
203+
it('should clone specific Releases with Uid ', done => {
204+
makeRelease(releaseUID)
205+
.clone({ name: 'New Clone Name', description: 'New Desc' })
206+
.then((release) => {
207+
releaseUID2 = release.uid
208+
expect(release.name).to.be.equal('New Clone Name')
209+
expect(release.description).to.be.equal('New Desc')
210+
expect(release.uid).to.be.not.equal(null)
211+
done()
212+
})
213+
.catch(done)
214+
})
215+
216+
it('should delete specific Releases with Uid ', done => {
217+
makeRelease(releaseUID)
218+
.delete()
219+
.then((data) => {
220+
expect(data.notice).to.be.equal('Release deleted successfully.')
221+
done()
222+
})
223+
.catch(done)
224+
})
225+
226+
it('should delete cloned Release with Uid', done => {
227+
makeRelease(releaseUID2)
228+
.delete()
229+
.then((data) => {
230+
expect(data.notice).to.be.equal('Release deleted successfully.')
231+
done()
232+
})
233+
.catch(done)
234+
})
235+
})
236+
237+
function makeRelease (uid = null) {
238+
return client.stack({ api_key: process.env.API_KEY }).release(uid)
239+
}

0 commit comments

Comments
 (0)