mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
fix(onboarding): keep skip completion moving after task sync failure (#1771)
This commit is contained in:
@@ -65,15 +65,19 @@ const OnboardingLayout = () => {
|
||||
connectedSources: draft.connectedSources,
|
||||
});
|
||||
|
||||
await setOnboardingTasks({
|
||||
accessibilityPermissionGranted:
|
||||
snapshot.localState.onboardingTasks?.accessibilityPermissionGranted ?? false,
|
||||
localModelConsentGiven: false,
|
||||
localModelDownloadStarted: false,
|
||||
enabledTools: getDefaultEnabledTools(),
|
||||
connectedSources: draft.connectedSources,
|
||||
updatedAtMs: Date.now(),
|
||||
});
|
||||
try {
|
||||
await setOnboardingTasks({
|
||||
accessibilityPermissionGranted:
|
||||
snapshot.localState.onboardingTasks?.accessibilityPermissionGranted ?? false,
|
||||
localModelConsentGiven: false,
|
||||
localModelDownloadStarted: false,
|
||||
enabledTools: getDefaultEnabledTools(),
|
||||
connectedSources: draft.connectedSources,
|
||||
updatedAtMs: Date.now(),
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn('[onboarding] Failed to persist onboarding tasks; continuing completion', e);
|
||||
}
|
||||
|
||||
try {
|
||||
await userApi.onboardingComplete();
|
||||
|
||||
@@ -228,4 +228,21 @@ describe('OnboardingLayout — Joyride walkthrough integration (#1123)', () => {
|
||||
// Navigation should still proceed even when the flag cannot be written.
|
||||
expect(screen.getByTestId('home-page')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('still completes onboarding when persisting onboarding tasks fails', async () => {
|
||||
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
const { mockSetOnboardingCompletedFlag, mockSetOnboardingTasks } = await setupLayout();
|
||||
mockSetOnboardingTasks.mockRejectedValueOnce(
|
||||
new Error('Core RPC openhuman.app_state_snapshot timed out after 30000ms')
|
||||
);
|
||||
|
||||
await act(async () => {
|
||||
fireEvent.click(screen.getByTestId('complete-btn'));
|
||||
});
|
||||
|
||||
expect(mockSetOnboardingCompletedFlag).toHaveBeenCalledWith(true);
|
||||
expect(screen.getByTestId('home-page')).toBeInTheDocument();
|
||||
|
||||
warnSpy.mockRestore();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user