on-zero 0.6.14 → 0.6.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/asyncTasks.cjs +51 -0
- package/dist/cjs/asyncTasks.native.js +84 -0
- package/dist/cjs/asyncTasks.native.js.map +1 -0
- package/dist/cjs/cli.cjs +8 -1
- package/dist/cjs/cli.native.js +8 -1
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.cjs +4 -4
- package/dist/cjs/createSchemaFromDrizzle.native.js +4 -4
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createZeroDirectServer.cjs +269 -0
- package/dist/cjs/createZeroDirectServer.native.js +287 -0
- package/dist/cjs/createZeroDirectServer.native.js.map +1 -0
- package/dist/cjs/createZeroSQLiteServer.cjs +8 -277
- package/dist/cjs/createZeroSQLiteServer.native.js +8 -390
- package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -1
- package/dist/cjs/createZeroSQLiteServer.test.cjs +36 -9
- package/dist/cjs/createZeroSQLiteServer.test.native.js +37 -9
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/cjs/createZeroServer.test.cjs +79 -1
- package/dist/cjs/createZeroServer.test.native.js +85 -1
- package/dist/cjs/createZeroServer.test.native.js.map +1 -1
- package/dist/cjs/createZeroServerCore.cjs +28 -208
- package/dist/cjs/createZeroServerCore.native.js +33 -218
- package/dist/cjs/createZeroServerCore.native.js.map +1 -1
- package/dist/cjs/generate.cjs +15 -5
- package/dist/cjs/generate.native.js +15 -5
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +55 -0
- package/dist/cjs/generate.test.native.js +55 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +2 -2
- package/dist/cjs/helpers/createMutators.native.js +2 -2
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/server.cjs +2 -1
- package/dist/cjs/sqliteRuntime.cjs +318 -0
- package/dist/cjs/sqliteRuntime.native.js +438 -0
- package/dist/cjs/sqliteRuntime.native.js.map +1 -0
- package/dist/cjs/syncHost.cjs +26 -12
- package/dist/cjs/syncHost.native.js +32 -16
- package/dist/cjs/syncHost.native.js.map +1 -1
- package/dist/cjs/syncHost.test.cjs +15 -4
- package/dist/cjs/syncHost.test.native.js +16 -4
- package/dist/cjs/syncHost.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +2 -1
- package/dist/cjs/vite-plugin.native.js +2 -1
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/esm/asyncTasks.mjs +26 -0
- package/dist/esm/asyncTasks.mjs.map +1 -0
- package/dist/esm/asyncTasks.native.js +56 -0
- package/dist/esm/asyncTasks.native.js.map +1 -0
- package/dist/esm/cli.mjs +8 -1
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +8 -1
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/createSchemaFromDrizzle.mjs +2 -2
- package/dist/esm/createSchemaFromDrizzle.native.js +2 -2
- package/dist/esm/createZeroDirectServer.mjs +241 -0
- package/dist/esm/createZeroDirectServer.mjs.map +1 -0
- package/dist/esm/createZeroDirectServer.native.js +256 -0
- package/dist/esm/createZeroDirectServer.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.mjs +3 -272
- package/dist/esm/createZeroSQLiteServer.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.native.js +3 -385
- package/dist/esm/createZeroSQLiteServer.native.js.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.mjs +36 -9
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.native.js +37 -9
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/esm/createZeroServer.test.mjs +80 -2
- package/dist/esm/createZeroServer.test.mjs.map +1 -1
- package/dist/esm/createZeroServer.test.native.js +86 -2
- package/dist/esm/createZeroServer.test.native.js.map +1 -1
- package/dist/esm/createZeroServerCore.mjs +26 -205
- package/dist/esm/createZeroServerCore.mjs.map +1 -1
- package/dist/esm/createZeroServerCore.native.js +32 -216
- package/dist/esm/createZeroServerCore.native.js.map +1 -1
- package/dist/esm/generate.mjs +15 -5
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +15 -5
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +55 -1
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +55 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +2 -2
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +2 -2
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/server.mjs +1 -0
- package/dist/esm/server.mjs.map +1 -1
- package/dist/esm/sqliteRuntime.mjs +289 -0
- package/dist/esm/sqliteRuntime.mjs.map +1 -0
- package/dist/esm/sqliteRuntime.native.js +406 -0
- package/dist/esm/sqliteRuntime.native.js.map +1 -0
- package/dist/esm/syncHost.mjs +24 -10
- package/dist/esm/syncHost.mjs.map +1 -1
- package/dist/esm/syncHost.native.js +30 -14
- package/dist/esm/syncHost.native.js.map +1 -1
- package/dist/esm/syncHost.test.mjs +15 -4
- package/dist/esm/syncHost.test.mjs.map +1 -1
- package/dist/esm/syncHost.test.native.js +16 -4
- package/dist/esm/syncHost.test.native.js.map +1 -1
- package/dist/esm/vite-plugin.mjs +2 -1
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +2 -1
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/lint/ssr-guards.js +8 -7
- package/package.json +5 -6
- package/readme.md +13 -4
- package/src/asyncTasks.ts +33 -0
- package/src/cli.ts +7 -1
- package/src/createSchemaFromDrizzle.ts +2 -2
- package/src/createZeroDirectServer.ts +411 -0
- package/src/createZeroSQLiteServer.test.ts +28 -12
- package/src/createZeroSQLiteServer.ts +14 -481
- package/src/createZeroServer.test.ts +86 -2
- package/src/createZeroServerCore.ts +39 -343
- package/src/generate.test.ts +75 -1
- package/src/generate.ts +30 -4
- package/src/helpers/createMutators.ts +3 -3
- package/src/helpers/mutatorContext.ts +1 -1
- package/src/index.ts +1 -0
- package/src/server.ts +2 -0
- package/src/sqliteRuntime.ts +512 -0
- package/src/syncHost.test.ts +12 -5
- package/src/syncHost.ts +55 -16
- package/src/types.ts +21 -3
- package/src/vite-plugin.ts +1 -0
- package/test-fixtures/server-return-types.ts +20 -2
- package/types/asyncTasks.d.ts +7 -0
- package/types/asyncTasks.d.ts.map +1 -0
- package/types/createSchemaFromDrizzle.d.ts +2 -2
- package/types/createSchemaFromDrizzle.d.ts.map +1 -1
- package/types/createZeroDirectServer.d.ts +80 -0
- package/types/createZeroDirectServer.d.ts.map +1 -0
- package/types/createZeroSQLiteServer.d.ts +5 -30
- package/types/createZeroSQLiteServer.d.ts.map +1 -1
- package/types/createZeroServerCore.d.ts +30 -87
- package/types/createZeroServerCore.d.ts.map +1 -1
- package/types/generate.d.ts +2 -0
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts +3 -3
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/server.d.ts +2 -0
- package/types/server.d.ts.map +1 -1
- package/types/sqliteRuntime.d.ts +71 -0
- package/types/sqliteRuntime.d.ts.map +1 -0
- package/types/syncHost.d.ts +10 -19
- package/types/syncHost.d.ts.map +1 -1
- package/types/types.d.ts +18 -2
- package/types/types.d.ts.map +1 -1
- package/types/vite-plugin.d.ts.map +1 -1
|
@@ -97,14 +97,21 @@ describe("createZeroSQLiteServer", function () {
|
|
|
97
97
|
var db;
|
|
98
98
|
var retryNextTransaction;
|
|
99
99
|
var transactionProvider;
|
|
100
|
+
var statements;
|
|
100
101
|
beforeEach(function () {
|
|
101
102
|
db = new DatabaseSync(":memory:");
|
|
102
103
|
db.exec(["CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL);", "CREATE TABLE note_records (note_id TEXT PRIMARY KEY, done INTEGER NOT NULL, data TEXT);"].join("\n"));
|
|
103
104
|
retryNextTransaction = false;
|
|
105
|
+
statements = [];
|
|
104
106
|
var executor = {
|
|
105
107
|
async exec(sql) {
|
|
106
|
-
var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : []
|
|
107
|
-
|
|
108
|
+
var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [],
|
|
109
|
+
metadata = arguments.length > 2 ? arguments[2] : void 0;
|
|
110
|
+
if (metadata) statements.push(metadata);
|
|
111
|
+
var result = db.prepare(sql).run(...params);
|
|
112
|
+
return {
|
|
113
|
+
changes: Number(result.changes)
|
|
114
|
+
};
|
|
108
115
|
},
|
|
109
116
|
async query(sql) {
|
|
110
117
|
var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
@@ -176,12 +183,11 @@ describe("createZeroSQLiteServer", function () {
|
|
|
176
183
|
server: server2
|
|
177
184
|
} = param;
|
|
178
185
|
await tx.mutate.project.insert(value);
|
|
179
|
-
server2 === null || server2 === void 0 ? void 0 : server2.
|
|
180
|
-
expect(server2 === null || server2 === void 0 ? void 0 : server2.asyncTasks).toHaveLength(1);
|
|
181
|
-
server2 === null || server2 === void 0 ? void 0 : server2.asyncTasks.splice(0, 1, async function () {});
|
|
182
|
-
server2.asyncTasks[0] = async function () {
|
|
186
|
+
server2 === null || server2 === void 0 ? void 0 : server2.enqueueTask(async function () {
|
|
183
187
|
effectRuns++;
|
|
184
|
-
}
|
|
188
|
+
}, {
|
|
189
|
+
barrier: true
|
|
190
|
+
});
|
|
185
191
|
}
|
|
186
192
|
}
|
|
187
193
|
}
|
|
@@ -213,7 +219,8 @@ describe("createZeroSQLiteServer", function () {
|
|
|
213
219
|
lastMutationID: 1
|
|
214
220
|
}]);
|
|
215
221
|
expect(result.asyncTasks).toHaveLength(1);
|
|
216
|
-
|
|
222
|
+
expect(result.asyncTasks[0].barrier).toBe(true);
|
|
223
|
+
await result.asyncTasks[0].task();
|
|
217
224
|
expect(effectRuns).toBe(1);
|
|
218
225
|
});
|
|
219
226
|
test("rolls back row writes and persists an application error with its LMID", async function () {
|
|
@@ -402,6 +409,23 @@ describe("createZeroSQLiteServer", function () {
|
|
|
402
409
|
id: "n1"
|
|
403
410
|
});
|
|
404
411
|
expect(db.prepare("SELECT * FROM note_records").all()).toEqual([]);
|
|
412
|
+
expect(statements).toEqual([{
|
|
413
|
+
table: "note_records",
|
|
414
|
+
publicTable: "note",
|
|
415
|
+
kind: "insert"
|
|
416
|
+
}, {
|
|
417
|
+
table: "note_records",
|
|
418
|
+
publicTable: "note",
|
|
419
|
+
kind: "upsert"
|
|
420
|
+
}, {
|
|
421
|
+
table: "note_records",
|
|
422
|
+
publicTable: "note",
|
|
423
|
+
kind: "update"
|
|
424
|
+
}, {
|
|
425
|
+
table: "note_records",
|
|
426
|
+
publicTable: "note",
|
|
427
|
+
kind: "delete"
|
|
428
|
+
}]);
|
|
405
429
|
});
|
|
406
430
|
test("decodes destination rows through a hidden two-hop junction", async function () {
|
|
407
431
|
var server = createZeroSQLiteServer({
|
|
@@ -435,7 +459,11 @@ describe("createZeroSQLiteServer", function () {
|
|
|
435
459
|
};
|
|
436
460
|
var receivedQueryName;
|
|
437
461
|
var hydratedExecutor = {
|
|
438
|
-
async exec() {
|
|
462
|
+
async exec() {
|
|
463
|
+
return {
|
|
464
|
+
changes: 0
|
|
465
|
+
};
|
|
466
|
+
},
|
|
439
467
|
async query() {
|
|
440
468
|
return [];
|
|
441
469
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","param","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","exec","join","executor","sql","params","arguments","length","prepare","run","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","asyncTasks","push","toHaveLength","splice","createServerActions","result","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","toBe","fail","toMatchObject","message","get","stored","value2","duplicate","count","upsert","update","delete","q","resolves","transaction","location","one"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","param","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","statements","exec","join","executor","sql","params","arguments","length","push","result","prepare","run","changes","Number","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","enqueueTask","barrier","createServerActions","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","asyncTasks","toHaveLength","toBe","task","fail","toMatchObject","message","get","stored","value2","duplicate","count","upsert","update","delete","q","resolves","transaction","location","one","dbTransaction"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
1
|
+
import { describe, expect, test, vi } from "vitest";
|
|
2
2
|
import { createZeroServer } from "./createZeroServer.mjs";
|
|
3
3
|
import { zeroHttpFixtureSchema } from "./httpPull/fixtureSchema.mjs";
|
|
4
4
|
class FakePgClient {
|
|
@@ -100,7 +100,7 @@ describe("createZeroServer mutation recovery", () => {
|
|
|
100
100
|
touch: async ({
|
|
101
101
|
server
|
|
102
102
|
}) => {
|
|
103
|
-
server?.
|
|
103
|
+
server?.enqueueTask(async () => {
|
|
104
104
|
effectRuns++;
|
|
105
105
|
});
|
|
106
106
|
throw new Error("rejected");
|
|
@@ -123,6 +123,84 @@ describe("createZeroServer mutation recovery", () => {
|
|
|
123
123
|
expect(result.asyncTasks).toEqual([]);
|
|
124
124
|
expect(effectRuns).toBe(0);
|
|
125
125
|
});
|
|
126
|
+
test("awaits barrier tasks before resolving the push response", async () => {
|
|
127
|
+
const pg = new FakePgClient();
|
|
128
|
+
let releaseBarrier;
|
|
129
|
+
let markBarrierStarted;
|
|
130
|
+
const barrierStarted = new Promise(resolve => {
|
|
131
|
+
markBarrierStarted = resolve;
|
|
132
|
+
});
|
|
133
|
+
const barrier = new Promise(resolve => {
|
|
134
|
+
releaseBarrier = resolve;
|
|
135
|
+
});
|
|
136
|
+
const zeroServer = createZeroServer({
|
|
137
|
+
schema: zeroHttpFixtureSchema,
|
|
138
|
+
models: {
|
|
139
|
+
project: {
|
|
140
|
+
mutate: {
|
|
141
|
+
touch: async ({
|
|
142
|
+
server
|
|
143
|
+
}) => {
|
|
144
|
+
server?.enqueueTask(async () => {
|
|
145
|
+
markBarrierStarted();
|
|
146
|
+
await barrier;
|
|
147
|
+
}, {
|
|
148
|
+
barrier: true
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
createServerActions: () => ({}),
|
|
155
|
+
pool: pg
|
|
156
|
+
});
|
|
157
|
+
let responseResolved = false;
|
|
158
|
+
const resultPromise = zeroServer.handleMutationRequest({
|
|
159
|
+
authData: null,
|
|
160
|
+
request: pushRequest(1)
|
|
161
|
+
}).then(result2 => {
|
|
162
|
+
responseResolved = true;
|
|
163
|
+
return result2;
|
|
164
|
+
});
|
|
165
|
+
await barrierStarted;
|
|
166
|
+
await Promise.resolve();
|
|
167
|
+
expect(responseResolved).toBe(false);
|
|
168
|
+
releaseBarrier();
|
|
169
|
+
const result = await resultPromise;
|
|
170
|
+
expect(result.response.mutations[0].result).toEqual({});
|
|
171
|
+
});
|
|
172
|
+
test("does not fail the push when a background task rejects", async () => {
|
|
173
|
+
const pg = new FakePgClient();
|
|
174
|
+
const error = new Error("background failed");
|
|
175
|
+
const consoleError = vi.spyOn(console, "error").mockImplementation(() => {});
|
|
176
|
+
const zeroServer = createZeroServer({
|
|
177
|
+
schema: zeroHttpFixtureSchema,
|
|
178
|
+
models: {
|
|
179
|
+
project: {
|
|
180
|
+
mutate: {
|
|
181
|
+
touch: async ({
|
|
182
|
+
server
|
|
183
|
+
}) => {
|
|
184
|
+
server?.enqueueTask(async () => {
|
|
185
|
+
throw error;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
createServerActions: () => ({}),
|
|
192
|
+
pool: pg
|
|
193
|
+
});
|
|
194
|
+
const result = await zeroServer.handleMutationRequest({
|
|
195
|
+
authData: null,
|
|
196
|
+
request: pushRequest(1)
|
|
197
|
+
});
|
|
198
|
+
expect(result.response.mutations[0].result).toEqual({});
|
|
199
|
+
await vi.waitFor(() => {
|
|
200
|
+
expect(consoleError).toHaveBeenCalledWith("[on-zero] async task failed", error);
|
|
201
|
+
});
|
|
202
|
+
consoleError.mockRestore();
|
|
203
|
+
});
|
|
126
204
|
test("persists alreadyProcessed duplicate results for zero-cache recovery rows", async () => {
|
|
127
205
|
const pg = new FakePgClient();
|
|
128
206
|
const zeroServer = createZeroServer({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","test","createZeroServer","zeroHttpFixtureSchema","FakePgClient","lastMutationID","pendingLastMutationID","mutationResultInserts","query","sql","params","rows","includes","nextMutationID","schemaRows","push","Error","table","columns","map","column","schema","dataType","length","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","server","
|
|
1
|
+
{"version":3,"names":["describe","expect","test","vi","createZeroServer","zeroHttpFixtureSchema","FakePgClient","lastMutationID","pendingLastMutationID","mutationResultInserts","query","sql","params","rows","includes","nextMutationID","schemaRows","push","Error","table","columns","map","column","schema","dataType","length","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","server","enqueueTask","createServerActions","pool","result","handleMutationRequest","authData","request","skipAsyncTasks","response","toMatchObject","error","message","asyncTasks","toEqual","toBe","releaseBarrier","markBarrierStarted","barrierStarted","Promise","resolve","barrier","responseResolved","resultPromise","then","result2","consoleError","spyOn","console","mockImplementation","waitFor","toHaveBeenCalledWith","mockRestore","first","duplicate","duplicateResult","details","mixed","results","mutation"],"sources":["../../src/createZeroServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
1
|
+
import { describe, expect, test, vi } from "vitest";
|
|
2
2
|
import { createZeroServer } from "./createZeroServer.native.js";
|
|
3
3
|
import { zeroHttpFixtureSchema } from "./httpPull/fixtureSchema.native.js";
|
|
4
4
|
function _class_call_check(instance, Constructor) {
|
|
@@ -147,7 +147,7 @@ describe("createZeroServer mutation recovery", function () {
|
|
|
147
147
|
var {
|
|
148
148
|
server
|
|
149
149
|
} = param;
|
|
150
|
-
server === null || server === void 0 ? void 0 : server.
|
|
150
|
+
server === null || server === void 0 ? void 0 : server.enqueueTask(async function () {
|
|
151
151
|
effectRuns++;
|
|
152
152
|
});
|
|
153
153
|
throw new Error("rejected");
|
|
@@ -172,6 +172,90 @@ describe("createZeroServer mutation recovery", function () {
|
|
|
172
172
|
expect(result.asyncTasks).toEqual([]);
|
|
173
173
|
expect(effectRuns).toBe(0);
|
|
174
174
|
});
|
|
175
|
+
test("awaits barrier tasks before resolving the push response", async function () {
|
|
176
|
+
var pg = new FakePgClient();
|
|
177
|
+
var releaseBarrier;
|
|
178
|
+
var markBarrierStarted;
|
|
179
|
+
var barrierStarted = new Promise(function (resolve) {
|
|
180
|
+
markBarrierStarted = resolve;
|
|
181
|
+
});
|
|
182
|
+
var barrier = new Promise(function (resolve) {
|
|
183
|
+
releaseBarrier = resolve;
|
|
184
|
+
});
|
|
185
|
+
var zeroServer = createZeroServer({
|
|
186
|
+
schema: zeroHttpFixtureSchema,
|
|
187
|
+
models: {
|
|
188
|
+
project: {
|
|
189
|
+
mutate: {
|
|
190
|
+
touch: async function (param) {
|
|
191
|
+
var {
|
|
192
|
+
server
|
|
193
|
+
} = param;
|
|
194
|
+
server === null || server === void 0 ? void 0 : server.enqueueTask(async function () {
|
|
195
|
+
markBarrierStarted();
|
|
196
|
+
await barrier;
|
|
197
|
+
}, {
|
|
198
|
+
barrier: true
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
createServerActions: function () {
|
|
205
|
+
return {};
|
|
206
|
+
},
|
|
207
|
+
pool: pg
|
|
208
|
+
});
|
|
209
|
+
var responseResolved = false;
|
|
210
|
+
var resultPromise = zeroServer.handleMutationRequest({
|
|
211
|
+
authData: null,
|
|
212
|
+
request: pushRequest(1)
|
|
213
|
+
}).then(function (result2) {
|
|
214
|
+
responseResolved = true;
|
|
215
|
+
return result2;
|
|
216
|
+
});
|
|
217
|
+
await barrierStarted;
|
|
218
|
+
await Promise.resolve();
|
|
219
|
+
expect(responseResolved).toBe(false);
|
|
220
|
+
releaseBarrier();
|
|
221
|
+
var result = await resultPromise;
|
|
222
|
+
expect(result.response.mutations[0].result).toEqual({});
|
|
223
|
+
});
|
|
224
|
+
test("does not fail the push when a background task rejects", async function () {
|
|
225
|
+
var pg = new FakePgClient();
|
|
226
|
+
var error = new Error("background failed");
|
|
227
|
+
var consoleError = vi.spyOn(console, "error").mockImplementation(function () {});
|
|
228
|
+
var zeroServer = createZeroServer({
|
|
229
|
+
schema: zeroHttpFixtureSchema,
|
|
230
|
+
models: {
|
|
231
|
+
project: {
|
|
232
|
+
mutate: {
|
|
233
|
+
touch: async function (param) {
|
|
234
|
+
var {
|
|
235
|
+
server
|
|
236
|
+
} = param;
|
|
237
|
+
server === null || server === void 0 ? void 0 : server.enqueueTask(async function () {
|
|
238
|
+
throw error;
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
createServerActions: function () {
|
|
245
|
+
return {};
|
|
246
|
+
},
|
|
247
|
+
pool: pg
|
|
248
|
+
});
|
|
249
|
+
var result = await zeroServer.handleMutationRequest({
|
|
250
|
+
authData: null,
|
|
251
|
+
request: pushRequest(1)
|
|
252
|
+
});
|
|
253
|
+
expect(result.response.mutations[0].result).toEqual({});
|
|
254
|
+
await vi.waitFor(function () {
|
|
255
|
+
expect(consoleError).toHaveBeenCalledWith("[on-zero] async task failed", error);
|
|
256
|
+
});
|
|
257
|
+
consoleError.mockRestore();
|
|
258
|
+
});
|
|
175
259
|
test("persists alreadyProcessed duplicate results for zero-cache recovery rows", async function () {
|
|
176
260
|
var pg = new FakePgClient();
|
|
177
261
|
var zeroServer = createZeroServer({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","test","createZeroServer","zeroHttpFixtureSchema","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","FakePgClient","FakePgClient2","query","sql","params","arguments","pendingLastMutationID","rows","lastMutationID","includes","nextMutationID","schemaRows","mutationResultInserts","push","Error","table","columns","map","column","schema","dataType","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","param","server","
|
|
1
|
+
{"version":3,"names":["describe","expect","test","vi","createZeroServer","zeroHttpFixtureSchema","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","FakePgClient","FakePgClient2","query","sql","params","arguments","pendingLastMutationID","rows","lastMutationID","includes","nextMutationID","schemaRows","mutationResultInserts","push","Error","table","columns","map","column","schema","dataType","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","param","server","enqueueTask","createServerActions","pool","result","handleMutationRequest","authData","request","skipAsyncTasks","response","toMatchObject","error","message","asyncTasks","toEqual","toBe","releaseBarrier","markBarrierStarted","barrierStarted","Promise","resolve","barrier","responseResolved","resultPromise","then","result2","consoleError","spyOn","console","mockImplementation","waitFor","toHaveBeenCalledWith"],"sources":["../../src/createZeroServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|