mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-18 09:48:09 +00:00
## Summary Rename `useFirebaseAuthStore` → `useAuthStore` and `FirebaseAuthStoreError` → `AuthStoreError`. Introduce shared mock factory (`authStoreMock.ts`) to replace 16 independent bespoke mocks. ## Changes - **What**: Mechanical rename of store, composable, class, and store ID (`firebaseAuth` → `auth`). Created `src/stores/__tests__/authStoreMock.ts` — a shared mock factory with reactive controls, used by all consuming test files. Migrated all 16 test files from ad-hoc mocks to the shared factory. - **Files**: 62 files changed (rename propagation + new test infra) ## Review Focus - Mock factory API design in `authStoreMock.ts` — covers all store properties with reactive `controls` for per-test customization - Self-test in `authStoreMock.test.ts` validates computed reactivity Fixes #8219 ## Stack This is PR 1/5 in a stacked refactoring series: 1. **→ This PR**: Rename + shared test fixtures 2. #10484: Extract auth-routing from workspaceApi 3. #10485: Auth token priority tests 4. #10486: Decompose MembersPanelContent 5. #10487: Consolidate SubscriptionTier type --------- Co-authored-by: Alexander Brown <drjkl@comfy.org>
61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import { until, useAsyncState } from '@vueuse/core'
|
|
import { defineStore, storeToRefs } from 'pinia'
|
|
|
|
import { isCloud } from '@/platform/distribution/types'
|
|
import { useSettingStore } from '@/platform/settings/settingStore'
|
|
import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore'
|
|
import { api } from '@/scripts/api'
|
|
import { useAuthStore } from '@/stores/authStore'
|
|
import { useUserStore } from '@/stores/userStore'
|
|
|
|
export const useBootstrapStore = defineStore('bootstrap', () => {
|
|
const settingStore = useSettingStore()
|
|
const workflowStore = useWorkflowStore()
|
|
|
|
const {
|
|
isReady: isI18nReady,
|
|
error: i18nError,
|
|
execute: loadI18n
|
|
} = useAsyncState(
|
|
async () => {
|
|
const { mergeCustomNodesI18n } = await import('@/i18n')
|
|
const i18nData = await api.getCustomNodesI18n()
|
|
mergeCustomNodesI18n(i18nData)
|
|
},
|
|
undefined,
|
|
{ immediate: false }
|
|
)
|
|
|
|
let storesLoaded = false
|
|
|
|
function loadAuthenticatedStores() {
|
|
if (storesLoaded) return
|
|
storesLoaded = true
|
|
void settingStore.load()
|
|
void workflowStore.loadWorkflows()
|
|
}
|
|
|
|
async function startStoreBootstrap() {
|
|
if (isCloud) {
|
|
const { isInitialized, isAuthenticated } = storeToRefs(useAuthStore())
|
|
await until(isInitialized).toBe(true)
|
|
await until(isAuthenticated).toBe(true)
|
|
}
|
|
|
|
const userStore = useUserStore()
|
|
await userStore.initialize()
|
|
|
|
const { needsLogin } = storeToRefs(userStore)
|
|
await until(needsLogin).toBe(false)
|
|
|
|
void loadI18n()
|
|
loadAuthenticatedStores()
|
|
}
|
|
|
|
return {
|
|
isI18nReady,
|
|
i18nError,
|
|
startStoreBootstrap
|
|
}
|
|
})
|