chore: remove localStorage-based persistence
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
import { beforeEach, describe, expect, it } from 'vitest'
|
||||
import { createEmptyBook } from '../domain/teachingDesign'
|
||||
import { clearStoredBook, loadStoredBook, saveBook } from './bookStorage'
|
||||
|
||||
describe('bookStorage', () => {
|
||||
beforeEach(() => localStorage.clear())
|
||||
|
||||
it('round-trips a versioned book', () => {
|
||||
const book = createEmptyBook()
|
||||
book.cover.courseName = 'Web 前端开发'
|
||||
|
||||
expect(saveBook(book)).toEqual({ ok: true })
|
||||
expect(loadStoredBook()?.cover.courseName).toBe('Web 前端开发')
|
||||
})
|
||||
|
||||
it('returns null for malformed storage', () => {
|
||||
localStorage.setItem('teaching-design-book', '{bad json')
|
||||
expect(loadStoredBook()).toBeNull()
|
||||
})
|
||||
|
||||
it('clears saved work', () => {
|
||||
saveBook(createEmptyBook())
|
||||
clearStoredBook()
|
||||
expect(loadStoredBook()).toBeNull()
|
||||
})
|
||||
})
|
||||
@@ -1,29 +0,0 @@
|
||||
import { BOOK_SCHEMA_VERSION, type TeachingBook } from '../domain/teachingDesign'
|
||||
|
||||
const STORAGE_KEY = 'teaching-design-book'
|
||||
|
||||
export type SaveResult = { ok: true } | { ok: false; message: string }
|
||||
|
||||
export function saveBook(book: TeachingBook): SaveResult {
|
||||
try {
|
||||
localStorage.setItem(STORAGE_KEY, JSON.stringify(book))
|
||||
return { ok: true }
|
||||
} catch {
|
||||
return { ok: false, message: '浏览器存储空间不足,当前修改尚未暂存。' }
|
||||
}
|
||||
}
|
||||
|
||||
export function loadStoredBook(): TeachingBook | null {
|
||||
try {
|
||||
const raw = localStorage.getItem(STORAGE_KEY)
|
||||
if (!raw) return null
|
||||
const parsed = JSON.parse(raw) as TeachingBook
|
||||
return parsed.schemaVersion === BOOK_SCHEMA_VERSION ? parsed : null
|
||||
} catch {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
export function clearStoredBook(): void {
|
||||
localStorage.removeItem(STORAGE_KEY)
|
||||
}
|
||||
Reference in New Issue
Block a user