diff --git a/src/features/settings/composables/__tests__/useSettingsPage.test.js b/src/features/settings/composables/__tests__/useSettingsPage.test.js index b9fb1e9..89fb3f3 100644 --- a/src/features/settings/composables/__tests__/useSettingsPage.test.js +++ b/src/features/settings/composables/__tests__/useSettingsPage.test.js @@ -57,7 +57,12 @@ describe('useSettingsPage', () => { { path: '....@a/#...)!&§[b.#§c..d....', expected: ['a', 'b', 'c', 'd'] }, { path: '....@a/#...)!&§[b.#§c..dä....', expected: ['a', 'b', 'c', 'd'] }, { path: '..,...~..@a/#.+..)!&§[b.#§c..dä..)..', expected: ['a', 'b', 'c', 'd'] }, - { path: 'a.@.b', expected: ['a', 'b'] } + { path: 'a.@.b', expected: ['a', 'b'] }, + { path: 1, expected: [] }, + { path: false, expected: [] }, + { path: true, expected: [] }, + { path: null, expected: [] }, + { path: undefined, expected: [] } ])('normalizes path correctly', async ({ path, expected }) => { expect(normalizePagePath(path)).toStrictEqual(expected); }); diff --git a/src/features/settings/composables/useSettingsPage.js b/src/features/settings/composables/useSettingsPage.js index d06dee2..4dbf8e1 100644 --- a/src/features/settings/composables/useSettingsPage.js +++ b/src/features/settings/composables/useSettingsPage.js @@ -17,6 +17,7 @@ limitations under the License. import { useRouter } from 'vue-router'; export const normalizePagePath = function normalizePagePath (path) { + if (typeof path !== 'string') return []; return path .replace(/^\.+|\.+$/g, '') .split('.')