diff --git a/src/libs/util.ts b/src/libs/util.ts index 4413f99575..e9dc22cf26 100644 --- a/src/libs/util.ts +++ b/src/libs/util.ts @@ -971,11 +971,72 @@ export async function importFromMnemonic( // Set up Test User #0 specific settings if (isTestUser0) { - // Set up Test User #0 specific settings + // Set up Test User #0 specific settings with enhanced error handling const platformService = await getPlatformService(); - await platformService.updateDidSpecificSettings(newId.did, { - firstName: "User Zero", - isRegistered: true, - }); + + try { + // First, ensure the DID-specific settings record exists + await platformService.insertDidSpecificSettings(newId.did); + + // Then update with Test User #0 specific settings + await platformService.updateDidSpecificSettings(newId.did, { + firstName: "User Zero", + isRegistered: true, + }); + + // Verify the settings were saved correctly + const verificationResult = await platformService.dbQuery( + "SELECT firstName, isRegistered FROM settings WHERE accountDid = ?", + [newId.did], + ); + + if (verificationResult?.values?.length) { + const settings = verificationResult.values[0]; + const firstName = settings[0]; + const isRegistered = settings[1]; + + logger.info("[importFromMnemonic] Test User #0 settings verification", { + did: newId.did, + firstName, + isRegistered, + expectedFirstName: "User Zero", + expectedIsRegistered: true, + }); + + // If settings weren't saved correctly, try individual updates + if (firstName !== "User Zero" || isRegistered !== 1) { + logger.warn("[importFromMnemonic] Test User #0 settings not saved correctly, retrying with individual updates"); + + await platformService.dbExec( + "UPDATE settings SET firstName = ? WHERE accountDid = ?", + ["User Zero", newId.did], + ); + + await platformService.dbExec( + "UPDATE settings SET isRegistered = ? WHERE accountDid = ?", + [1, newId.did], + ); + + // Verify again + const retryResult = await platformService.dbQuery( + "SELECT firstName, isRegistered FROM settings WHERE accountDid = ?", + [newId.did], + ); + + if (retryResult?.values?.length) { + const retrySettings = retryResult.values[0]; + logger.info("[importFromMnemonic] Test User #0 settings after retry", { + firstName: retrySettings[0], + isRegistered: retrySettings[1], + }); + } + } + } else { + logger.error("[importFromMnemonic] Failed to verify Test User #0 settings - no record found"); + } + } catch (error) { + logger.error("[importFromMnemonic] Error setting up Test User #0 settings:", error); + // Don't throw - allow the import to continue even if settings fail + } } } diff --git a/src/router/index.ts b/src/router/index.ts index bfa3dfaaa6..f51e50574d 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -379,10 +379,4 @@ router.beforeEach(async (to, from, next) => { } }); -// router.beforeEach((to, from, next) => { -// console.log("Navigating to view:", to.name); -// console.log("From view:", from.name); -// next(); -// }); - export default router; diff --git a/src/test/PlatformServiceMixinTest.vue b/src/test/PlatformServiceMixinTest.vue index 057dc3b514..f25d78a45a 100644 --- a/src/test/PlatformServiceMixinTest.vue +++ b/src/test/PlatformServiceMixinTest.vue @@ -3,6 +3,17 @@
{{ JSON.stringify(userZeroTestResult, null, 2) }}
+ {{ result }}
@@ -16,6 +27,7 @@ import { PlatformServiceMixin } from "@/utils/PlatformServiceMixin";
})
export default class PlatformServiceMixinTest extends Vue {
result: string = "";
+ userZeroTestResult: any = null;
testInsert() {
const contact = {
@@ -38,5 +50,34 @@ export default class PlatformServiceMixinTest extends Vue {
);
this.result = `SQL: ${sql}\nParams: ${JSON.stringify(params)}`;
}
+
+ async testUserZeroSettings() {
+ try {
+ // User #0's DID
+ const userZeroDid = "did:ethr:0x0000694B58C2cC69658993A90D3840C560f2F51F";
+
+ this.result = "Testing User #0 settings...";
+
+ // Test the debug methods
+ await this.$debugMergedSettings(userZeroDid);
+
+ // Get the actual settings
+ const didSettings = await this.$debugDidSettings(userZeroDid);
+ const accountSettings = await this.$accountSettings(userZeroDid);
+
+ this.userZeroTestResult = {
+ didSettings,
+ accountSettings,
+ isRegistered: accountSettings.isRegistered,
+ firstName: accountSettings.firstName,
+ timestamp: new Date().toISOString(),
+ };
+
+ this.result = `User #0 settings test completed. isRegistered: ${accountSettings.isRegistered}`;
+ } catch (error) {
+ this.result = `Error testing User #0 settings: ${error}`;
+ console.error("Error testing User #0 settings:", error);
+ }
+ }
}
diff --git a/src/utils/PlatformServiceMixin.ts b/src/utils/PlatformServiceMixin.ts
index 1a2704a2c4..d09930484d 100644
--- a/src/utils/PlatformServiceMixin.ts
+++ b/src/utils/PlatformServiceMixin.ts
@@ -209,8 +209,8 @@ export const PlatformServiceMixin = {
},
/**
- * Self-contained implementation of mapColumnsToValues
- * Maps database query results to objects with column names as keys
+ * Map database columns to values with proper type conversion
+ * Handles boolean conversion from SQLite integers (0/1) to boolean values
*/
_mapColumnsToValues(
columns: string[],
@@ -219,7 +219,23 @@ export const PlatformServiceMixin = {
return values.map((row) => {
const obj: Record