refactor: remove storage migration logic and associated tests

This commit is contained in:
Will Miao
2025-09-24 06:04:08 +08:00
parent 4b4b8fe3c1
commit 6f4453aaf3
4 changed files with 0 additions and 372 deletions

View File

@@ -116,64 +116,6 @@ export function removeSessionItem(key) {
sessionStorage.removeItem(STORAGE_PREFIX + key);
}
/**
* Migrate all existing localStorage items to use the prefix
* This should be called once during application initialization
*/
export function migrateStorageItems() {
// Check if migration has already been performed
if (localStorage.getItem(STORAGE_PREFIX + 'migration_completed')) {
console.log('Lora Manager: Storage migration already completed');
return;
}
// List of known keys used in the application
const knownKeys = [
'nsfwBlurLevel',
'theme',
'activeFolder',
'folderTagsCollapsed',
'settings',
'loras_filters',
'recipes_filters',
'checkpoints_filters',
'loras_search_prefs',
'recipes_search_prefs',
'checkpoints_search_prefs',
'show_update_notifications',
'last_update_check',
'dismissed_banners'
];
// Migrate each known key
knownKeys.forEach(key => {
const prefixedKey = STORAGE_PREFIX + key;
// Only migrate if the prefixed key doesn't already exist
if (localStorage.getItem(prefixedKey) === null) {
const value = localStorage.getItem(key);
if (value !== null) {
try {
// Try to parse as JSON first
const parsedValue = JSON.parse(value);
setStorageItem(key, parsedValue);
} catch (e) {
// If not JSON, store as is
setStorageItem(key, value);
}
// We can optionally remove the old key after migration
localStorage.removeItem(key);
}
}
});
// Mark migration as completed
localStorage.setItem(STORAGE_PREFIX + 'migration_completed', 'true');
console.log('Lora Manager: Storage migration completed');
}
/**
* Save a Map to localStorage
* @param {string} key - The localStorage key

View File

@@ -8,7 +8,6 @@ const {
getSessionItem,
setSessionItem,
removeSessionItem,
migrateStorageItems
} = storageHelpers;
const createFakeStorage = () => {
@@ -110,33 +109,3 @@ describe('storageHelpers namespace utilities', () => {
expect(sessionStorage.getItem('lora_manager_flag')).toBeNull();
});
});
describe('migrateStorageItems', () => {
it('migrates known keys and logs completion', () => {
const setStorageSpy = vi.spyOn(storageHelpers, 'setStorageItem');
localStorage.setItem('theme', '"light"');
localStorage.setItem('loras_filters', JSON.stringify({ sort: 'asc' }));
localStorage.setItem('nsfwBlurLevel', '3');
migrateStorageItems();
expect(setStorageSpy).toHaveBeenCalledTimes(3);
expect(localStorage.getItem('lora_manager_theme')).toBe('light');
expect(localStorage.getItem('lora_manager_loras_filters')).toBe(JSON.stringify({ sort: 'asc' }));
expect(localStorage.getItem('loras_filters')).toBeNull();
expect(localStorage.getItem('lora_manager_nsfwBlurLevel')).toBe('3');
expect(localStorage.getItem('nsfwBlurLevel')).toBeNull();
expect(localStorage.getItem('lora_manager_migration_completed')).toBe('true');
expect(consoleLogMock).toHaveBeenCalledWith('Lora Manager: Storage migration completed');
});
it('skips migration when already completed and logs notice', () => {
const setStorageSpy = vi.spyOn(storageHelpers, 'setStorageItem');
localStorage.setItem('lora_manager_migration_completed', 'true');
migrateStorageItems();
expect(setStorageSpy).not.toHaveBeenCalled();
expect(consoleLogMock).toHaveBeenCalledWith('Lora Manager: Storage migration already completed');
});
});