<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="com.yorvana.ui.settings.SettingsViewModelTest" tests="24" skipped="0" failures="0" errors="0" timestamp="2026-05-26T04:44:42.370Z" hostname="home-pc" time="8.1">
  <properties/>
  <testcase name="onEvent CurrencyChanged should update preferences after a delay" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.998"/>
  <testcase name="onEvent RestorePurchases with Error should show restore_error" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.318"/>
  <testcase name="onEvent RestorePurchases with Success hadPurchase=true should show restore_success" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.296"/>
  <testcase name="onEvent OpenContact should emit LaunchContactEmail effect" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.296"/>
  <testcase name="onEvent RestorePurchases is re-entrancy-guarded" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.333"/>
  <testcase name="onEvent SimulatePurchaseSuccess should call simulatePurchaseSuccess and show snackbar" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.291"/>
  <testcase name="state reflects isPremium from appGate" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.292"/>
  <testcase name="onEvent SetDebugOverride should call debugBillingOverride setMode" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.316"/>
  <testcase name="init should load preferences" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.288"/>
  <testcase name="onEvent OdometerUnitChanged should call preferences" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.282"/>
  <testcase name="onEvent RestorePurchases with Success hadPurchase=false should show restore_none_found" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.282"/>
  <testcase name="onEvent RequestUpgrade should emit LaunchPurchaseFlow" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.304"/>
  <testcase name="onEvent RequestUpgrade should be ignored when already premium" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.281"/>
  <testcase name="onEvent RequestUpgrade should emit LaunchPurchaseFlow when not premium" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.287"/>
  <testcase name="onEvent RestorePurchases with BillingUnavailable should show restore_error" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.283"/>
  <testcase name="state reflects isReadOnly from appGate" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.296"/>
  <testcase name="onEvent OpenCategories should emit NavigateToCategories effect" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.286"/>
  <testcase name="onEvent CrashReportingToggled false should call disableSentryNow" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.322"/>
  <testcase name="onEvent OpenFileManager should emit LaunchFileManager effect" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.334"/>
  <testcase name="onEvent RestorePurchases with Exception should show generic billing_error" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.472"/>
  <testcase name="onEvent ResetBillingState should call resetBillingState and show snackbar" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.321"/>
  <testcase name="onEvent RestorePurchases does not leave isRestoringPurchases set on success" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.352"/>
  <testcase name="isPremiumPending should reflect appGate hasPendingPurchase" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.286"/>
  <testcase name="onEvent CrashReportingToggled should update preferences" classname="com.yorvana.ui.settings.SettingsViewModelTest" time="0.284"/>
  <system-out><![CDATA[]]></system-out>
  <system-err><![CDATA[]]></system-err>
</testsuite>
