Format & lint
This commit is contained in:
parent
fefac224b0
commit
7f62273e72
179 changed files with 2210 additions and 1319 deletions
|
|
@ -9,8 +9,12 @@ import type { DocumentRecord, RelativePath } from "./types";
|
|||
|
||||
function createQueue(ignorePatterns: string[] = []): SyncEventQueue {
|
||||
const logger = new Logger();
|
||||
const settings = new Settings(logger, { ignorePatterns }, async () => { });
|
||||
return new SyncEventQueue(settings, logger, undefined, async () => { });
|
||||
const settings = new Settings(logger, { ignorePatterns }, async () => {
|
||||
/* no-op */
|
||||
});
|
||||
return new SyncEventQueue(settings, logger, undefined, async () => {
|
||||
/* no-op */
|
||||
});
|
||||
}
|
||||
|
||||
function fakeRemoteVersion(
|
||||
|
|
@ -60,9 +64,7 @@ describe("SyncEventQueue", () => {
|
|||
|
||||
const third = await queue.next();
|
||||
assert.strictEqual(third?.type, SyncEventType.LocalDelete);
|
||||
if (third?.type === SyncEventType.LocalDelete) {
|
||||
assert.strictEqual(third.documentId, "A");
|
||||
}
|
||||
assert.strictEqual(third.documentId, "A");
|
||||
|
||||
assert.strictEqual(await queue.next(), undefined);
|
||||
});
|
||||
|
|
@ -74,15 +76,11 @@ describe("SyncEventQueue", () => {
|
|||
|
||||
const first = await queue.next();
|
||||
assert.strictEqual(first?.type, SyncEventType.LocalCreate);
|
||||
if (first?.type === SyncEventType.LocalCreate) {
|
||||
assert.strictEqual(first.path, "a.md");
|
||||
}
|
||||
assert.strictEqual(first.path, "a.md");
|
||||
|
||||
const second = await queue.next();
|
||||
assert.strictEqual(second?.type, SyncEventType.LocalCreate);
|
||||
if (second?.type === SyncEventType.LocalCreate) {
|
||||
assert.strictEqual(second.path, "b.md");
|
||||
}
|
||||
assert.strictEqual(second.path, "b.md");
|
||||
});
|
||||
|
||||
it("delete resolves documentId from path", async () => {
|
||||
|
|
@ -93,14 +91,15 @@ describe("SyncEventQueue", () => {
|
|||
|
||||
const event = await queue.next();
|
||||
assert.strictEqual(event?.type, SyncEventType.LocalDelete);
|
||||
if (event?.type === SyncEventType.LocalDelete) {
|
||||
assert.strictEqual(event.documentId, "A");
|
||||
}
|
||||
assert.strictEqual(event.documentId, "A");
|
||||
});
|
||||
|
||||
it("delete for unknown path is silently ignored", async () => {
|
||||
const queue = createQueue();
|
||||
await queue.enqueue({ type: SyncEventType.LocalDelete, path: "unknown.md" });
|
||||
await queue.enqueue({
|
||||
type: SyncEventType.LocalDelete,
|
||||
path: "unknown.md"
|
||||
});
|
||||
assert.strictEqual(queue.pendingUpdateCount, 0);
|
||||
});
|
||||
|
||||
|
|
@ -112,11 +111,14 @@ describe("SyncEventQueue", () => {
|
|||
|
||||
await queue.setDocument("a.md", fakeRecord("A"));
|
||||
assert.strictEqual(queue.syncedDocumentCount, 1);
|
||||
assert.deepStrictEqual(queue.getSettledDocumentByPath("a.md"), fakeRecord("A"));
|
||||
assert.deepStrictEqual(
|
||||
queue.getSettledDocumentByPath("a.md"),
|
||||
fakeRecord("A")
|
||||
);
|
||||
|
||||
const found = queue.getDocumentByDocumentId("A");
|
||||
assert.strictEqual(found?.path, "a.md");
|
||||
assert.strictEqual(found?.record.documentId, "A");
|
||||
assert.strictEqual(found.record.documentId, "A");
|
||||
|
||||
await queue.removeDocument("a.md");
|
||||
assert.strictEqual(queue.syncedDocumentCount, 0);
|
||||
|
|
@ -127,9 +129,16 @@ describe("SyncEventQueue", () => {
|
|||
const queue = createQueue();
|
||||
await queue.setDocument("a.md", fakeRecord("A"));
|
||||
|
||||
await queue.enqueue({ type: SyncEventType.LocalUpdate, path: "b.md", oldPath: "a.md" });
|
||||
await queue.enqueue({
|
||||
type: SyncEventType.LocalUpdate,
|
||||
path: "b.md",
|
||||
oldPath: "a.md"
|
||||
});
|
||||
assert.strictEqual(queue.getSettledDocumentByPath("a.md"), undefined);
|
||||
assert.strictEqual(queue.getSettledDocumentByPath("b.md")?.documentId, "A");
|
||||
assert.strictEqual(
|
||||
queue.getSettledDocumentByPath("b.md")?.documentId,
|
||||
"A"
|
||||
);
|
||||
});
|
||||
|
||||
it("create can be re-enqueued after being dequeued", async () => {
|
||||
|
|
@ -144,11 +153,20 @@ describe("SyncEventQueue", () => {
|
|||
it("silently ignores create events matching ignore patterns", async () => {
|
||||
const queue = createQueue(["*.tmp", ".hidden/**"]);
|
||||
|
||||
await queue.enqueue({ type: SyncEventType.LocalCreate, path: "scratch.tmp" });
|
||||
await queue.enqueue({ type: SyncEventType.LocalCreate, path: ".hidden/secret.md" });
|
||||
await queue.enqueue({
|
||||
type: SyncEventType.LocalCreate,
|
||||
path: "scratch.tmp"
|
||||
});
|
||||
await queue.enqueue({
|
||||
type: SyncEventType.LocalCreate,
|
||||
path: ".hidden/secret.md"
|
||||
});
|
||||
assert.strictEqual(queue.pendingUpdateCount, 0);
|
||||
|
||||
await queue.enqueue({ type: SyncEventType.LocalCreate, path: "notes-new.md" });
|
||||
await queue.enqueue({
|
||||
type: SyncEventType.LocalCreate,
|
||||
path: "notes-new.md"
|
||||
});
|
||||
assert.strictEqual(queue.pendingUpdateCount, 1);
|
||||
|
||||
await queue.enqueue({
|
||||
|
|
@ -170,7 +188,10 @@ describe("SyncEventQueue", () => {
|
|||
|
||||
assert.strictEqual(queue.pendingUpdateCount, 0);
|
||||
assert.strictEqual(queue.syncedDocumentCount, 1);
|
||||
assert.strictEqual(queue.getSettledDocumentByPath("a.md")?.documentId, "A");
|
||||
assert.strictEqual(
|
||||
queue.getSettledDocumentByPath("a.md")?.documentId,
|
||||
"A"
|
||||
);
|
||||
});
|
||||
|
||||
it("allSettledDocuments returns all tracked documents", async () => {
|
||||
|
|
@ -186,24 +207,39 @@ describe("SyncEventQueue", () => {
|
|||
|
||||
it("loads initial state from persistence", () => {
|
||||
const logger = new Logger();
|
||||
const settings = new Settings(logger, {}, async () => { });
|
||||
const queue = new SyncEventQueue(settings, logger, {
|
||||
documents: [
|
||||
{
|
||||
relativePath: "a.md",
|
||||
...fakeRecord("A", { parentVersionId: 5 })
|
||||
},
|
||||
{
|
||||
relativePath: "b.md",
|
||||
...fakeRecord("B", { parentVersionId: 3 })
|
||||
}
|
||||
],
|
||||
lastSeenUpdateId: 4
|
||||
}, async () => { });
|
||||
const settings = new Settings(logger, {}, async () => {
|
||||
/* no-op */
|
||||
});
|
||||
const queue = new SyncEventQueue(
|
||||
settings,
|
||||
logger,
|
||||
{
|
||||
documents: [
|
||||
{
|
||||
relativePath: "a.md",
|
||||
...fakeRecord("A", { parentVersionId: 5 })
|
||||
},
|
||||
{
|
||||
relativePath: "b.md",
|
||||
...fakeRecord("B", { parentVersionId: 3 })
|
||||
}
|
||||
],
|
||||
lastSeenUpdateId: 4
|
||||
},
|
||||
async () => {
|
||||
/* no-op */
|
||||
}
|
||||
);
|
||||
|
||||
assert.strictEqual(queue.syncedDocumentCount, 2);
|
||||
assert.strictEqual(queue.getSettledDocumentByPath("a.md")?.documentId, "A");
|
||||
assert.strictEqual(queue.getSettledDocumentByPath("b.md")?.documentId, "B");
|
||||
assert.strictEqual(
|
||||
queue.getSettledDocumentByPath("a.md")?.documentId,
|
||||
"A"
|
||||
);
|
||||
assert.strictEqual(
|
||||
queue.getSettledDocumentByPath("b.md")?.documentId,
|
||||
"B"
|
||||
);
|
||||
assert.strictEqual(queue.lastSeenUpdateId, 4);
|
||||
});
|
||||
|
||||
|
|
@ -216,10 +252,16 @@ describe("SyncEventQueue", () => {
|
|||
assert.ok(event?.type === SyncEventType.LocalCreate);
|
||||
const createPromise = event.resolvers.promise;
|
||||
|
||||
await queue.resolveCreate(event, fakeRecord("DOC-1", { parentVersionId: 5 }));
|
||||
await queue.resolveCreate(
|
||||
event,
|
||||
fakeRecord("DOC-1", { parentVersionId: 5 })
|
||||
);
|
||||
|
||||
// Document is now settled
|
||||
assert.strictEqual(queue.getSettledDocumentByPath("a.md")?.documentId, "DOC-1");
|
||||
assert.strictEqual(
|
||||
queue.getSettledDocumentByPath("a.md")?.documentId,
|
||||
"DOC-1"
|
||||
);
|
||||
|
||||
// Promise was resolved
|
||||
assert.strictEqual(await createPromise, "DOC-1");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue