Fabric.js Document Engine

搜索文档

查找页面或章节

EN

检查适配器

查看 Markdown

一次调用,就知道你的适配器是否遵守保存规则。

一个存储适配器只要有一条规则写错,就可能悄悄丢掉用户的内容。测试存储适配器最快的方法是 verifyStorageAdapter。它会用存储约定逐项检查你的适配器,并报告每一项的结果。

运行检查

import { verifyStorageAdapter } from "fabricjs-document-engine/storage";
 
const report = await verifyStorageAdapter(restStorage);
if (!report.ok) console.table(report.checks);

report 是 { ok, checks }。每一项检查是 { name, passed, message }。

检查哪些内容

检查为什么重要
expectedRevision 为 0 时能保存新文档新文档能被存下来
能加载自己保存的文档存进去什么,取出来就是什么
基于旧修订号的保存会以 SAVE_CONFLICT 拒绝另一个标签页不能覆盖更新的内容
基于当前修订号的保存会被接受正常保存仍然可用
expectedRevision 为 null 时会覆盖保存冲突后「保留我的版本」能用
加载不存在的文档会被拒绝缺失的文档会明确报错
能保存、列出、加载和删除版本仅当适配器实现了版本方法时检查

检查会用随机 id 写入测试文档。如果你的适配器有 deleteDocument 方法,检查结束后会把它们删掉。

在哪里运行

在开发环境里对着测试数据库跑一次,或者放进你的测试套件:

import { expect, test } from "vitest";
import { verifyStorageAdapter } from "fabricjs-document-engine/storage";
 
test("the REST adapter follows the save rules", async () => {
  const report = await verifyStorageAdapter(restStorage);
  expect(report.checks.filter((check) => !check.passed)).toEqual([]);
});

不要对着生产数据运行。每次改动都这样测试存储适配器,修订号检查一旦写坏,失败的是构建,而不是用户的保存。