Canvas analysis previously sent every page. Add a Magic Notes setting for 1-8 canvas pages, defaulting to 1 for new and historical settings. Select the first N pages in current canvas order before capture and use the same text/image range for saved entries, drafts and canvas-source todos. Keep full 50-page saving/export, expose the same setting through config tools, and use the shared settings select with an inline help icon. Include pagination, persistence, production IPC and isolated Electron regressions, including text-only input and scaled page boundaries. Validation: focused feature tests and isolated Electron regressions passed; the final compact UI passed 14 tests. Typecheck and lint were reported passing by the coordinating agent. No full-suite pass is claimed because the completed full test command exposed no summary. No live model calls were made for this commit preparation. Release note: 魔法笔记新增“发送画布页数”设置,可选 1~8 页,默认 1 页,按当前画布顺序发送前 N 页的文字和图片;标题旁问号可查看说明,保存和导出完整画布不受影响。
17 lines
798 B
TypeScript
17 lines
798 B
TypeScript
import { expect, it } from 'vitest'
|
|
import { selectMagicNotePages } from './magic-note-pages.mjs'
|
|
|
|
it('selects the current prefix, defaulting to one, without changing the saved page list', () => {
|
|
const pages = Array.from({ length: 50 }, (_, index) => ({ id: `page-${50 - index}` }))
|
|
expect(selectMagicNotePages(pages)).toEqual([pages[0]])
|
|
expect(selectMagicNotePages(pages, 8)).toEqual(pages.slice(0, 8))
|
|
expect(selectMagicNotePages(pages.slice(0, 2), 8)).toEqual(pages.slice(0, 2))
|
|
expect(selectMagicNotePages([])).toEqual([])
|
|
expect(pages).toHaveLength(50)
|
|
expect(selectMagicNotePages(pages)[0]).toBe(pages[0])
|
|
})
|
|
|
|
it.each([0, 9, -1, 1.5, NaN, Infinity])('rejects invalid analysis page limits: %s', limit => {
|
|
expect(() => selectMagicNotePages([], limit)).toThrow(RangeError)
|
|
})
|