Skip to content

Commit 9e7c224

Browse files
authored
FIX: links and icons theme setting migrations to handle blank string (#50)
If the old theme setting value is set to a blank string, we will end up not migrating it and thus cause an error to be raised.
1 parent f458dc9 commit 9e7c224

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

migrations/settings/0001-migrate-links-setting.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export default function migrate(settings) {
22
const oldSetting = settings.get("links");
33

4-
if (oldSetting) {
4+
if (typeof oldSetting === "string") {
55
const newLinks = [];
66

77
oldSetting.split("|").forEach((link) => {

migrations/settings/0002-migrate-icons-setting.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export default function migrate(settings) {
22
const oldSetting = settings.get("icons");
33

4-
if (oldSetting) {
4+
if (typeof oldSetting === "string") {
55
const newIcons = [];
66

77
oldSetting.split("|").map((link) => {

test/unit/migrations/settings/0001-migrate-links-setting-test.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ import migrate from "../../../../migrations/settings/0001-migrate-links-setting"
44
module(
55
"Brand Header | Unit | Migrations | Settings | 0001-migrate-links-setting",
66
function () {
7+
test("migrate when old setting is a blank string", function (assert) {
8+
const settings = new Map(Object.entries({ links: "" }));
9+
const result = migrate(settings);
10+
11+
const expectedResult = new Map(
12+
Object.entries({
13+
links: [],
14+
})
15+
);
16+
17+
assert.deepEqual(
18+
Object.fromEntries(result.entries()),
19+
Object.fromEntries(expectedResult.entries())
20+
);
21+
});
22+
723
test("migrate when old setting is of an invalid format", function (assert) {
824
const settings = new Map(
925
Object.entries({

test/unit/migrations/settings/0002-migrate-icons-setting-test.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ import migrate from "../../../../migrations/settings/0002-migrate-icons-setting"
44
module(
55
"Brand Header | Unit | Migrations | Settings | 0002-migrate-icons-setting",
66
function () {
7+
test("migrate when old setting is a blank string", function (assert) {
8+
const settings = new Map(Object.entries({ icons: "" }));
9+
const result = migrate(settings);
10+
11+
const expectedResult = new Map(
12+
Object.entries({
13+
icons: [],
14+
})
15+
);
16+
17+
assert.deepEqual(
18+
Object.fromEntries(result.entries()),
19+
Object.fromEntries(expectedResult.entries())
20+
);
21+
});
22+
723
test("migrate when old setting value is of an invalid format", function (assert) {
824
const settings = new Map(
925
Object.entries({

0 commit comments

Comments
 (0)