Skip to content

Commit 6820424

Browse files
added sanity for entry variant
1 parent d57aa95 commit 6820424

File tree

3 files changed

+236
-0
lines changed

3 files changed

+236
-0
lines changed
Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
import { expect } from "chai";
2+
import { describe, it, setup } from "mocha";
3+
import { jsonReader } from "../utility/fileOperations/readwrite";
4+
import { createVariantGroup } from "../mock/variantGroup.js";
5+
import { variant } from "../mock/variants.js";
6+
import { variantEntryFirst } from "../mock/variantEntry.js";
7+
import { contentstackClient } from "../utility/ContentstackClient.js";
8+
9+
var client = {};
10+
11+
var stack = {};
12+
var variantUid = "";
13+
var variantName = "";
14+
var variantGroupUid = "";
15+
var contentTypeUid = "";
16+
var entryUid = "";
17+
18+
const entry = jsonReader("entry.json");
19+
entryUid = entry[2].uid;
20+
contentTypeUid = entry[2].content_type_uid;
21+
22+
describe("Entry Variants api Test", () => {
23+
setup(() => {
24+
const user = jsonReader("loggedinuser.json");
25+
stack = jsonReader("stack.json");
26+
client = contentstackClient(user.authtoken);
27+
});
28+
29+
it("should create a Variant Group", (done) => {
30+
makeVariantGroup()
31+
.create(createVariantGroup)
32+
.then((variantGroup) => {
33+
variantGroupUid = variantGroup.uid;
34+
expect(variantGroup.name).to.be.equal(createVariantGroup.name);
35+
expect(variantGroup.uid).to.be.equal(createVariantGroup.uid);
36+
done();
37+
})
38+
.catch(done);
39+
});
40+
41+
it("should create a Variants", (done) => {
42+
makeVariants()
43+
.create(variant)
44+
.then((variants) => {
45+
variantUid = variants.uid;
46+
expect(variants.name).to.be.equal(variant.name);
47+
expect(variants.uid).to.be.not.equal(null);
48+
done();
49+
})
50+
.catch(done);
51+
});
52+
53+
it("should update/create variant of an entry", (done) => {
54+
makeEntryVariants(variantUid)
55+
.update(variantEntryFirst)
56+
.then((variantEntry) => {
57+
expect(variantEntry.entry.title).to.be.equal("First page variant");
58+
expect(variantEntry.entry._variant._uid).to.be.not.equal(null);
59+
expect(variantEntry.notice).to.be.equal(
60+
"Entry variant created successfully."
61+
);
62+
done();
63+
})
64+
.catch(done);
65+
});
66+
67+
it("should get an entry variant", (done) => {
68+
makeEntryVariants(variantUid)
69+
.fetch(variantUid)
70+
.then((variantEntry) => {
71+
expect(variantEntry.entry.title).to.be.equal("First page variant");
72+
expect(variantEntry.entry._variant._uid).to.be.not.equal(null);
73+
done();
74+
})
75+
.catch(done);
76+
});
77+
78+
it("should publish entry variant", (done) => {
79+
var publishVariantEntryFirst = {
80+
entry: {
81+
environments: ["development"],
82+
locales: ["en-us", "en-at"],
83+
variants: [
84+
{
85+
uid: variantUid,
86+
version: 1,
87+
},
88+
],
89+
variant_rules: {
90+
publish_latest_base: false,
91+
publish_latest_base_conditionally: true,
92+
},
93+
},
94+
locale: "en-us",
95+
version: 1,
96+
};
97+
makeEntry()
98+
.entry(entryUid)
99+
.publish({
100+
publishDetails: publishVariantEntryFirst.entry,
101+
locale: publishVariantEntryFirst.locale,
102+
})
103+
.then((data) => {
104+
expect(data.notice).to.be.equal(
105+
"The requested action has been performed."
106+
);
107+
expect(data.job_id).to.be.not.equal(null);
108+
done();
109+
})
110+
.catch(done);
111+
});
112+
113+
it("should unpublish entry variant", (done) => {
114+
var publishVariantEntryFirst = {
115+
entry: {
116+
environments: ["development"],
117+
locales: ["en-at"],
118+
variants: [
119+
{
120+
uid: variantUid,
121+
version: 1,
122+
},
123+
],
124+
variant_rules: {
125+
publish_latest_base: false,
126+
publish_latest_base_conditionally: true,
127+
},
128+
},
129+
locale: "en-us",
130+
version: 1,
131+
};
132+
makeEntry()
133+
.entry(entryUid)
134+
.unpublish({
135+
publishDetails: publishVariantEntryFirst.entry,
136+
locale: publishVariantEntryFirst.locale,
137+
})
138+
.then((data) => {
139+
expect(data.notice).to.be.equal(
140+
"The requested action has been performed."
141+
);
142+
expect(data.job_id).to.be.not.equal(null);
143+
done();
144+
})
145+
.catch(done);
146+
});
147+
148+
it("should get all entry variants", (done) => {
149+
makeEntryVariants()
150+
.query({})
151+
.find()
152+
.then((variantEntries) => {
153+
expect(variantEntries.items).to.be.an("array");
154+
expect(variantEntries.items[0].variants.title).to.be.equal(
155+
"First page variant"
156+
);
157+
expect(variantEntries.items[0].variants._variant._uid).to.be.not.equal(
158+
null
159+
);
160+
done();
161+
})
162+
.catch(done);
163+
});
164+
165+
it("should delete entry variant from uid", (done) => {
166+
makeEntryVariants(variantUid)
167+
.delete(variantUid)
168+
.then((variantEntry) => {
169+
expect(variantEntry.notice).to.be.equal(
170+
"Entry variant deleted successfully."
171+
);
172+
done();
173+
})
174+
.catch(done);
175+
});
176+
177+
it("Delete a Variant from uid", (done) => {
178+
makeVariantGroup(variantGroupUid)
179+
.variants(variantUid)
180+
.delete()
181+
.then((data) => {
182+
expect(data.message).to.be.equal("Variant deleted successfully");
183+
done();
184+
})
185+
.catch(done);
186+
});
187+
188+
it("Delete a Variant Group from uid", (done) => {
189+
makeVariantGroup(variantGroupUid)
190+
.delete()
191+
.then((data) => {
192+
expect(data.message).to.be.equal(
193+
"Variant Group and Variants deleted successfully"
194+
);
195+
done();
196+
})
197+
.catch(done);
198+
});
199+
});
200+
201+
function makeVariants(uid = null) {
202+
return client
203+
.stack({ api_key: process.env.API_KEY })
204+
.variantGroup(variantGroupUid)
205+
.variants(uid);
206+
}
207+
208+
function makeVariantGroup(uid = null) {
209+
return client.stack({ api_key: process.env.API_KEY }).variantGroup(uid);
210+
}
211+
212+
function makeEntryVariants(uid = null) {
213+
return client
214+
.stack({ api_key: process.env.API_KEY })
215+
.contentType(contentTypeUid)
216+
.entry(entryUid)
217+
.variants(uid);
218+
}
219+
220+
function makeEntry() {
221+
return client
222+
.stack({ api_key: process.env.API_KEY })
223+
.contentType(contentTypeUid);
224+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const variantEntryFirst = {
2+
entry: {
3+
title: "First page variant",
4+
url: "/first-page-variant",
5+
_variant: {
6+
_change_set: ["title", "url"],
7+
},
8+
},
9+
}
10+
11+
export { variantEntryFirst };

test/sanity-check/sanity.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ require('./api/label-test')
2424
require('./api/variantGroup-test')
2525
require('./api/variants-test')
2626
require('./api/ungroupedVariants-test')
27+
require('./api/entryVariants-test')
2728
require('./api/contentType-delete-test')
2829
require('./api/delete-test')
2930
require('./api/team-test')

0 commit comments

Comments
 (0)