From ca3f03ea5ed46d4a6c4815bedd2469a69f3b1183 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 9 May 2021 15:16:40 +0900 Subject: Improve an error message on invalid settings --- src/background/presenters/Notifier.ts | 10 ++++++---- src/background/usecases/SettingUseCase.ts | 2 +- test/background/usecases/SettingUseCase.test.ts | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/background/presenters/Notifier.ts b/src/background/presenters/Notifier.ts index 957572d..d828b2e 100644 --- a/src/background/presenters/Notifier.ts +++ b/src/background/presenters/Notifier.ts @@ -4,7 +4,7 @@ const NOTIFICATION_ID_INVALID_SETTINGS = "vimvixen-update-invalid-settings"; export default interface Notifier { notifyUpdated(version: string, onclick: () => void): Promise; - notifyInvalidSettings(onclick: () => void): Promise; + notifyInvalidSettings(error: Error, onclick: () => void): Promise; } export class NotifierImpl implements NotifierImpl { @@ -29,11 +29,13 @@ export class NotifierImpl implements NotifierImpl { }); } - async notifyInvalidSettings(onclick: () => void): Promise { + async notifyInvalidSettings( + error: Error, + onclick: () => void + ): Promise { const title = `Loading settings failed`; // eslint-disable-next-line max-len - const message = - "The default settings are used due to the last saved settings is invalid. Check your current settings from the add-on preference"; + const message = `The default settings are used due to the last saved settings is invalid. Check your current settings from the add-on preference: ${error.message}`; const listener = (id: string) => { if (id !== NOTIFICATION_ID_INVALID_SETTINGS) { diff --git a/src/background/usecases/SettingUseCase.ts b/src/background/usecases/SettingUseCase.ts index 34c1f3a..07f0d7c 100644 --- a/src/background/usecases/SettingUseCase.ts +++ b/src/background/usecases/SettingUseCase.ts @@ -54,7 +54,7 @@ export default class SettingUseCase { private showUnableToLoad(e: Error) { console.error("unable to load settings", e); - this.notifier.notifyInvalidSettings(() => { + this.notifier.notifyInvalidSettings(e, () => { browser.runtime.openOptionsPage(); }); } diff --git a/test/background/usecases/SettingUseCase.test.ts b/test/background/usecases/SettingUseCase.test.ts index c604e91..8a4c2b2 100644 --- a/test/background/usecases/SettingUseCase.test.ts +++ b/test/background/usecases/SettingUseCase.test.ts @@ -38,7 +38,7 @@ class MockCachedSettingRepository implements CachedSettingRepository { } class NopNotifier implements Notifier { - notifyInvalidSettings(_onclick: () => void): Promise { + notifyInvalidSettings(_error: Error, _onclick: () => void): Promise { return Promise.resolve(); } -- cgit v1.2.3