Skip to content

Commit 45835bf

Browse files
authored
fix: Address code coverage warnings from TiCS dashboard for publisher utils (#5098)
1 parent d33de6c commit 45835bf

3 files changed

Lines changed: 198 additions & 2 deletions

File tree

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
import getSettingsChanges from "../getSettingsChanges";
2+
3+
describe("getSettingsChanges", () => {
4+
test("handles setting visibility to public", () => {
5+
const changes = getSettingsChanges(
6+
{ visibility: true },
7+
{ visibility: "public" },
8+
);
9+
10+
expect(changes.private).toEqual(false);
11+
expect(changes.unlisted).toEqual(false);
12+
});
13+
14+
test("handles setting visibility to unlisted", () => {
15+
const changes = getSettingsChanges(
16+
{ visibility: true },
17+
{ visibility: "unlisted" },
18+
);
19+
20+
expect(changes.unlisted).toEqual(true);
21+
expect(changes.private).toEqual(false);
22+
});
23+
24+
test("handles setting visibility to private", () => {
25+
const changes = getSettingsChanges(
26+
{ visibility: true },
27+
{ visibility: "private" },
28+
);
29+
30+
expect(changes.private).toEqual(true);
31+
expect(changes.unlisted).toEqual(false);
32+
});
33+
34+
test("handles setting territories to all", () => {
35+
const changes = getSettingsChanges(
36+
{ territory_distribution_status: true },
37+
{ territory_distribution_status: "all" },
38+
);
39+
40+
expect(changes.whitelist_countries).toHaveLength(0);
41+
expect(changes.blacklist_countries).toHaveLength(0);
42+
});
43+
44+
test("handles removing custom whitelist countries", () => {
45+
const changes = getSettingsChanges(
46+
{ whitelist_country_keys: true },
47+
{ territory_distribution_status: "custom" },
48+
);
49+
50+
expect(changes.whitelist_countries).toHaveLength(0);
51+
expect(changes.blacklist_countries).toHaveLength(0);
52+
});
53+
54+
test("handles setting custom whitelist countries", () => {
55+
const changes = getSettingsChanges(
56+
{ whitelist_country_keys: true },
57+
{
58+
territory_distribution_status: "custom",
59+
whitelist_country_keys: "EN US FR",
60+
},
61+
);
62+
63+
expect(changes.whitelist_countries).toEqual(["EN", "US", "FR"]);
64+
expect(changes.blacklist_countries).toHaveLength(0);
65+
});
66+
67+
test("handles removing custom blacklist countries", () => {
68+
const changes = getSettingsChanges(
69+
{ blacklist_country_keys: true },
70+
{ territory_distribution_status: "custom" },
71+
);
72+
73+
expect(changes.blacklist_countries).toHaveLength(0);
74+
expect(changes.whitelist_countries).toHaveLength(0);
75+
});
76+
77+
test("handles setting custom blacklist countries", () => {
78+
const changes = getSettingsChanges(
79+
{ blacklist_country_keys: true },
80+
{
81+
territory_distribution_status: "custom",
82+
blacklist_country_keys: "EN US FR",
83+
},
84+
);
85+
86+
expect(changes.blacklist_countries).toEqual(["EN", "US", "FR"]);
87+
expect(changes.whitelist_countries).toHaveLength(0);
88+
});
89+
90+
test("handles enabling update metadata on release", () => {
91+
const changes = getSettingsChanges(
92+
{ update_metadata_on_release: true },
93+
{ update_metadata_on_release: true },
94+
);
95+
96+
expect(changes.update_metadata_on_release).toEqual("on");
97+
});
98+
99+
test("handles disabling update metadata on release", () => {
100+
const changes = getSettingsChanges(
101+
{ update_metadata_on_release: true },
102+
{ update_metadata_on_release: false },
103+
);
104+
105+
expect(changes.update_metadata_on_release).toEqual(false);
106+
});
107+
});
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import getSettingsData from "../getSettingsData";
2+
3+
const testSettingsData = {
4+
whitelist_countries: [],
5+
blacklist_countries: [],
6+
};
7+
8+
describe("getSettingsData", () => {
9+
test("gets unlisted visibility status", () => {
10+
const settings = getSettingsData({ ...testSettingsData, unlisted: true });
11+
expect(settings.visibility).toEqual("unlisted");
12+
});
13+
14+
test("gets private visibility status", () => {
15+
const settings = getSettingsData({ ...testSettingsData, private: true });
16+
expect(settings.visibility).toEqual("private");
17+
});
18+
19+
test("gets public visibility status", () => {
20+
const settings = getSettingsData({
21+
...testSettingsData,
22+
unlisted: false,
23+
private: false,
24+
});
25+
26+
expect(settings.visibility).toEqual("public");
27+
});
28+
29+
test("gets custom territory distribution status if whitelist", () => {
30+
const settings = getSettingsData({
31+
...testSettingsData,
32+
whitelist_countries: ["EN"],
33+
});
34+
35+
expect(settings.territory_distribution_status).toEqual("custom");
36+
});
37+
38+
test("gets custom territory distribution status if blacklist", () => {
39+
const settings = getSettingsData({
40+
...testSettingsData,
41+
blacklist_countries: ["EN"],
42+
});
43+
44+
expect(settings.territory_distribution_status).toEqual("custom");
45+
});
46+
47+
test("gets all territory distrubtion status", () => {
48+
const settings = getSettingsData(testSettingsData);
49+
expect(settings.territory_distribution_status).toEqual("all");
50+
});
51+
52+
test("gets whitelist country keys", () => {
53+
const settings = getSettingsData({
54+
...testSettingsData,
55+
whitelist_countries: ["US", "EN"],
56+
});
57+
58+
expect(settings.whitelist_country_keys).toEqual("EN US");
59+
});
60+
61+
test("gets blacklist country keys", () => {
62+
const settings = getSettingsData({
63+
...testSettingsData,
64+
blacklist_countries: ["US", "EN"],
65+
});
66+
67+
expect(settings.blacklist_country_keys).toEqual("EN US");
68+
});
69+
70+
test("gets country keys status if blacklist country keys", () => {
71+
const settings = getSettingsData({
72+
...testSettingsData,
73+
blacklist_countries: ["EN", "US"],
74+
});
75+
76+
expect(settings.country_keys_status).toEqual("exclude");
77+
});
78+
79+
test("gets country keys status", () => {
80+
const settings = getSettingsData(testSettingsData);
81+
expect(settings.country_keys_status).toEqual("include");
82+
});
83+
});

static/js/publisher/utils/getSettingsChanges.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ function getSettingsChanges(
3232

3333
if (data?.territory_distribution_status === "custom") {
3434
if (dirtyFields?.whitelist_country_keys) {
35-
if (!data?.whitelist_country_keys.length) {
35+
if (
36+
!data?.whitelist_country_keys ||
37+
!data?.whitelist_country_keys.length
38+
) {
3639
changes.whitelist_countries = [];
3740
} else {
3841
changes.whitelist_countries = data?.whitelist_country_keys.split(" ");
@@ -42,7 +45,10 @@ function getSettingsChanges(
4245
}
4346

4447
if (dirtyFields?.blacklist_country_keys) {
45-
if (!data?.blacklist_country_keys.length) {
48+
if (
49+
!data?.blacklist_country_keys ||
50+
!data?.blacklist_country_keys.length
51+
) {
4652
changes.blacklist_countries = [];
4753
} else {
4854
changes.blacklist_countries = data?.blacklist_country_keys.split(" ");

0 commit comments

Comments
 (0)