diff --git a/src/libs/util.ts b/src/libs/util.ts index 4413f995..e9dc22cf 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 bfa3dfaa..f51e5057 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 057dc3b5..f25d78a4 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 1a2704a2..d0993048 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