@powerhousedao/reactor-api 6.0.0-staging.3 → 6.0.0
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/README.md +6 -0
- package/dist/index.d.mts +3085 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6720 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/packages/https-hooks.d.mts +39 -0
- package/dist/src/packages/https-hooks.d.mts.map +1 -0
- package/dist/src/packages/https-hooks.mjs +82 -0
- package/dist/src/packages/https-hooks.mjs.map +1 -0
- package/dist/src/packages/vite-loader.d.mts +29 -0
- package/dist/src/packages/vite-loader.d.mts.map +1 -0
- package/dist/src/packages/vite-loader.mjs +145 -0
- package/dist/src/packages/vite-loader.mjs.map +1 -0
- package/dist/types-Do4QTfT3.d.mts +37 -0
- package/dist/types-Do4QTfT3.d.mts.map +1 -0
- package/dist/utils-BFkbSO_H.mjs +296 -0
- package/dist/utils-BFkbSO_H.mjs.map +1 -0
- package/package.json +60 -42
- package/dist/codegen.d.ts +0 -4
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -38
- package/dist/codegen.js.map +0 -1
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/src/config.d.ts +0 -6
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -6
- package/dist/src/config.js.map +0 -1
- package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
- package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/analytics-subgraph.js +0 -26
- package/dist/src/graphql/analytics-subgraph.js.map +0 -1
- package/dist/src/graphql/auth/index.d.ts +0 -2
- package/dist/src/graphql/auth/index.d.ts.map +0 -1
- package/dist/src/graphql/auth/index.js +0 -2
- package/dist/src/graphql/auth/index.js.map +0 -1
- package/dist/src/graphql/auth/resolvers.d.ts +0 -149
- package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/auth/resolvers.js +0 -173
- package/dist/src/graphql/auth/resolvers.js.map +0 -1
- package/dist/src/graphql/auth/schema.graphql +0 -173
- package/dist/src/graphql/auth/subgraph.d.ts +0 -177
- package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/auth/subgraph.js +0 -340
- package/dist/src/graphql/auth/subgraph.js.map +0 -1
- package/dist/src/graphql/base-subgraph.d.ts +0 -20
- package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/base-subgraph.js +0 -34
- package/dist/src/graphql/base-subgraph.js.map +0 -1
- package/dist/src/graphql/document-model-subgraph.d.ts +0 -103
- package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/document-model-subgraph.js +0 -595
- package/dist/src/graphql/document-model-subgraph.js.map +0 -1
- package/dist/src/graphql/drive-subgraph.d.ts +0 -25
- package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/drive-subgraph.js +0 -488
- package/dist/src/graphql/drive-subgraph.js.map +0 -1
- package/dist/src/graphql/graphql-manager.d.ts +0 -52
- package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
- package/dist/src/graphql/graphql-manager.js +0 -491
- package/dist/src/graphql/graphql-manager.js.map +0 -1
- package/dist/src/graphql/index.d.ts +0 -10
- package/dist/src/graphql/index.d.ts.map +0 -1
- package/dist/src/graphql/index.js +0 -10
- package/dist/src/graphql/index.js.map +0 -1
- package/dist/src/graphql/playground.d.ts +0 -2
- package/dist/src/graphql/playground.d.ts.map +0 -1
- package/dist/src/graphql/playground.js +0 -74
- package/dist/src/graphql/playground.js.map +0 -1
- package/dist/src/graphql/reactor/adapters.d.ts +0 -62
- package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
- package/dist/src/graphql/reactor/adapters.js +0 -270
- package/dist/src/graphql/reactor/adapters.js.map +0 -1
- package/dist/src/graphql/reactor/factory.d.ts +0 -95
- package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
- package/dist/src/graphql/reactor/factory.js +0 -7
- package/dist/src/graphql/reactor/factory.js.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1355
- package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.js +0 -615
- package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
- package/dist/src/graphql/reactor/index.d.ts +0 -4
- package/dist/src/graphql/reactor/index.d.ts.map +0 -1
- package/dist/src/graphql/reactor/index.js +0 -4
- package/dist/src/graphql/reactor/index.js.map +0 -1
- package/dist/src/graphql/reactor/operations.graphql +0 -336
- package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
- package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
- package/dist/src/graphql/reactor/pubsub.js +0 -93
- package/dist/src/graphql/reactor/pubsub.js.map +0 -1
- package/dist/src/graphql/reactor/requester.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.js +0 -22
- package/dist/src/graphql/reactor/requester.js.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.js +0 -119
- package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
- package/dist/src/graphql/reactor/resolvers.d.ts +0 -211
- package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/reactor/resolvers.js +0 -595
- package/dist/src/graphql/reactor/resolvers.js.map +0 -1
- package/dist/src/graphql/reactor/schema.graphql +0 -469
- package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
- package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/reactor/subgraph.js +0 -522
- package/dist/src/graphql/reactor/subgraph.js.map +0 -1
- package/dist/src/graphql/reactor/validation.d.ts +0 -120
- package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
- package/dist/src/graphql/reactor/validation.js +0 -87
- package/dist/src/graphql/reactor/validation.js.map +0 -1
- package/dist/src/graphql/system/env/getters.d.ts +0 -2
- package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
- package/dist/src/graphql/system/env/getters.js +0 -4
- package/dist/src/graphql/system/env/getters.js.map +0 -1
- package/dist/src/graphql/system/env/index.d.ts +0 -2
- package/dist/src/graphql/system/env/index.d.ts.map +0 -1
- package/dist/src/graphql/system/env/index.js +0 -5
- package/dist/src/graphql/system/env/index.js.map +0 -1
- package/dist/src/graphql/system/index.d.ts +0 -2
- package/dist/src/graphql/system/index.d.ts.map +0 -1
- package/dist/src/graphql/system/index.js +0 -2
- package/dist/src/graphql/system/index.js.map +0 -1
- package/dist/src/graphql/system/types.d.ts +0 -2
- package/dist/src/graphql/system/types.d.ts.map +0 -1
- package/dist/src/graphql/system/types.js +0 -2
- package/dist/src/graphql/system/types.js.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
- package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
- package/dist/src/graphql/types.d.ts +0 -103
- package/dist/src/graphql/types.d.ts.map +0 -1
- package/dist/src/graphql/types.js +0 -2
- package/dist/src/graphql/types.js.map +0 -1
- package/dist/src/graphql/utils.d.ts +0 -26
- package/dist/src/graphql/utils.d.ts.map +0 -1
- package/dist/src/graphql/utils.js +0 -104
- package/dist/src/graphql/utils.js.map +0 -1
- package/dist/src/graphql/websocket.d.ts +0 -3
- package/dist/src/graphql/websocket.d.ts.map +0 -1
- package/dist/src/graphql/websocket.js +0 -15
- package/dist/src/graphql/websocket.js.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
- package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.js +0 -91
- package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
- package/dist/src/migrations/index.d.ts +0 -10
- package/dist/src/migrations/index.d.ts.map +0 -1
- package/dist/src/migrations/index.js +0 -56
- package/dist/src/migrations/index.js.map +0 -1
- package/dist/src/packages/import-loader.d.ts +0 -16
- package/dist/src/packages/import-loader.d.ts.map +0 -1
- package/dist/src/packages/import-loader.js +0 -61
- package/dist/src/packages/import-loader.js.map +0 -1
- package/dist/src/packages/import-resolver.d.ts +0 -5
- package/dist/src/packages/import-resolver.d.ts.map +0 -1
- package/dist/src/packages/import-resolver.js +0 -127
- package/dist/src/packages/import-resolver.js.map +0 -1
- package/dist/src/packages/package-manager.d.ts +0 -34
- package/dist/src/packages/package-manager.d.ts.map +0 -1
- package/dist/src/packages/package-manager.js +0 -213
- package/dist/src/packages/package-manager.js.map +0 -1
- package/dist/src/packages/types.d.ts +0 -40
- package/dist/src/packages/types.d.ts.map +0 -1
- package/dist/src/packages/types.js +0 -2
- package/dist/src/packages/types.js.map +0 -1
- package/dist/src/packages/util.d.ts +0 -27
- package/dist/src/packages/util.d.ts.map +0 -1
- package/dist/src/packages/util.js +0 -97
- package/dist/src/packages/util.js.map +0 -1
- package/dist/src/packages/vite-loader.d.ts +0 -25
- package/dist/src/packages/vite-loader.d.ts.map +0 -1
- package/dist/src/packages/vite-loader.js +0 -182
- package/dist/src/packages/vite-loader.js.map +0 -1
- package/dist/src/server.d.ts +0 -80
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -427
- package/dist/src/server.js.map +0 -1
- package/dist/src/services/auth.service.d.ts +0 -68
- package/dist/src/services/auth.service.d.ts.map +0 -1
- package/dist/src/services/auth.service.js +0 -190
- package/dist/src/services/auth.service.js.map +0 -1
- package/dist/src/services/document-permission.service.d.ts +0 -201
- package/dist/src/services/document-permission.service.d.ts.map +0 -1
- package/dist/src/services/document-permission.service.js +0 -636
- package/dist/src/services/document-permission.service.js.map +0 -1
- package/dist/src/sync/types.d.ts +0 -10
- package/dist/src/sync/types.d.ts.map +0 -1
- package/dist/src/sync/types.js +0 -2
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.d.ts +0 -7
- package/dist/src/sync/utils.d.ts.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/tracing.d.ts +0 -4
- package/dist/src/tracing.d.ts.map +0 -1
- package/dist/src/tracing.js +0 -122
- package/dist/src/tracing.js.map +0 -1
- package/dist/src/types.d.ts +0 -18
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/auth.d.ts +0 -3
- package/dist/src/utils/auth.d.ts.map +0 -1
- package/dist/src/utils/auth.js +0 -19
- package/dist/src/utils/auth.js.map +0 -1
- package/dist/src/utils/create-schema.d.ts +0 -31
- package/dist/src/utils/create-schema.d.ts.map +0 -1
- package/dist/src/utils/create-schema.js +0 -548
- package/dist/src/utils/create-schema.js.map +0 -1
- package/dist/src/utils/db.d.ts +0 -74
- package/dist/src/utils/db.d.ts.map +0 -1
- package/dist/src/utils/db.js +0 -101
- package/dist/src/utils/db.js.map +0 -1
- package/dist/src/utils/drive-url.d.ts +0 -2
- package/dist/src/utils/drive-url.d.ts.map +0 -1
- package/dist/src/utils/drive-url.js +0 -3
- package/dist/src/utils/drive-url.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -4
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -4
- package/dist/src/utils/index.js.map +0 -1
- package/dist/test/benchmarks/load.bench.d.ts +0 -2
- package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/load.bench.js +0 -73
- package/dist/test/benchmarks/load.bench.js.map +0 -1
- package/dist/test/benchmarks/sync.bench.d.ts +0 -2
- package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/sync.bench.js +0 -119
- package/dist/test/benchmarks/sync.bench.js.map +0 -1
- package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
- package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
- package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
- package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
- package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
- package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
- package/dist/test/connect-switchboard-sync.test.js +0 -581
- package/dist/test/connect-switchboard-sync.test.js.map +0 -1
- package/dist/test/document-drive-subgraph.test.d.ts +0 -2
- package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
- package/dist/test/document-drive-subgraph.test.js +0 -186
- package/dist/test/document-drive-subgraph.test.js.map +0 -1
- package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts +0 -2
- package/dist/test/document-model-subgraph-legacy-permissions.test.d.ts.map +0 -1
- package/dist/test/document-model-subgraph-legacy-permissions.test.js +0 -518
- package/dist/test/document-model-subgraph-legacy-permissions.test.js.map +0 -1
- package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/document-model-subgraph-permissions.test.js +0 -635
- package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
- package/dist/test/document-model-subgraph.test.d.ts +0 -2
- package/dist/test/document-model-subgraph.test.d.ts.map +0 -1
- package/dist/test/document-model-subgraph.test.js +0 -441
- package/dist/test/document-model-subgraph.test.js.map +0 -1
- package/dist/test/document-permission.service.test.d.ts +0 -2
- package/dist/test/document-permission.service.test.d.ts.map +0 -1
- package/dist/test/document-permission.service.test.js +0 -480
- package/dist/test/document-permission.service.test.js.map +0 -1
- package/dist/test/drive-handlers.d.ts +0 -4
- package/dist/test/drive-handlers.d.ts.map +0 -1
- package/dist/test/drive-handlers.js +0 -39
- package/dist/test/drive-handlers.js.map +0 -1
- package/dist/test/drive-info-endpoint.test.d.ts +0 -2
- package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
- package/dist/test/drive-info-endpoint.test.js +0 -123
- package/dist/test/drive-info-endpoint.test.js.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.js +0 -195
- package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
- package/dist/test/drive.test.d.ts +0 -2
- package/dist/test/drive.test.d.ts.map +0 -1
- package/dist/test/drive.test.js +0 -142
- package/dist/test/drive.test.js.map +0 -1
- package/dist/test/identity-integration.test.d.ts +0 -2
- package/dist/test/identity-integration.test.d.ts.map +0 -1
- package/dist/test/identity-integration.test.js +0 -349
- package/dist/test/identity-integration.test.js.map +0 -1
- package/dist/test/index.d.ts +0 -3
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/index.js +0 -3
- package/dist/test/index.js.map +0 -1
- package/dist/test/permissions-integration.test.d.ts +0 -2
- package/dist/test/permissions-integration.test.d.ts.map +0 -1
- package/dist/test/permissions-integration.test.js +0 -421
- package/dist/test/permissions-integration.test.js.map +0 -1
- package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
- package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
- package/dist/test/pull-responder-transmitter.test.js +0 -220
- package/dist/test/pull-responder-transmitter.test.js.map +0 -1
- package/dist/test/push-backfill.test.d.ts +0 -2
- package/dist/test/push-backfill.test.d.ts.map +0 -1
- package/dist/test/push-backfill.test.js +0 -298
- package/dist/test/push-backfill.test.js.map +0 -1
- package/dist/test/push-transmitter.test.d.ts +0 -2
- package/dist/test/push-transmitter.test.d.ts.map +0 -1
- package/dist/test/push-transmitter.test.js +0 -179
- package/dist/test/push-transmitter.test.js.map +0 -1
- package/dist/test/reactor-adapters.test.d.ts +0 -2
- package/dist/test/reactor-adapters.test.d.ts.map +0 -1
- package/dist/test/reactor-adapters.test.js +0 -379
- package/dist/test/reactor-adapters.test.js.map +0 -1
- package/dist/test/reactor-client.test.d.ts +0 -2
- package/dist/test/reactor-client.test.d.ts.map +0 -1
- package/dist/test/reactor-client.test.js +0 -212
- package/dist/test/reactor-client.test.js.map +0 -1
- package/dist/test/reactor-resolvers.test.d.ts +0 -2
- package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
- package/dist/test/reactor-resolvers.test.js +0 -258
- package/dist/test/reactor-resolvers.test.js.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.js +0 -397
- package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
- package/dist/test/router.test.d.ts +0 -2
- package/dist/test/router.test.d.ts.map +0 -1
- package/dist/test/router.test.js +0 -38
- package/dist/test/router.test.js.map +0 -1
- package/dist/test/subscriptions.test.d.ts +0 -2
- package/dist/test/subscriptions.test.d.ts.map +0 -1
- package/dist/test/subscriptions.test.js +0 -248
- package/dist/test/subscriptions.test.js.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
- package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.js +0 -89
- package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
- package/dist/test/utils.d.ts +0 -10
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -23
- package/dist/test/utils.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -38
- package/dist/vitest.config.js.map +0 -1
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { createDriveHandlers, expectUUID, getDocumentScopeIndexes, testSetupReactor, } from "@powerhousedao/reactor-api/test";
|
|
2
|
-
import { PullResponderTransmitter, addFile, addFolder } from "document-drive";
|
|
3
|
-
import { documentModelCreateDocument, setAuthorName } from "document-model";
|
|
4
|
-
import { generateId } from "document-model/core";
|
|
5
|
-
import { setupServer } from "msw/node";
|
|
6
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
7
|
-
const remoteUrl = "http://test.com/d/test";
|
|
8
|
-
describe("Pull Responder Transmitter", () => {
|
|
9
|
-
let server;
|
|
10
|
-
let remoteReactor;
|
|
11
|
-
const driveId = generateId();
|
|
12
|
-
const remoteDrive = {
|
|
13
|
-
id: driveId,
|
|
14
|
-
global: {
|
|
15
|
-
name: "Test Drive",
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
const triggerOptions = {
|
|
19
|
-
pullFilter: {
|
|
20
|
-
branch: ["main"],
|
|
21
|
-
documentId: ["*"],
|
|
22
|
-
documentType: ["*"],
|
|
23
|
-
scope: ["global"],
|
|
24
|
-
},
|
|
25
|
-
pullInterval: 50,
|
|
26
|
-
};
|
|
27
|
-
async function setupTrigger() {
|
|
28
|
-
const { listenerManager } = await testSetupReactor();
|
|
29
|
-
return PullResponderTransmitter.createPullResponderTrigger(driveId, remoteUrl, triggerOptions, listenerManager);
|
|
30
|
-
}
|
|
31
|
-
beforeEach(async () => {
|
|
32
|
-
const { reactor } = await testSetupReactor();
|
|
33
|
-
const drive = await reactor.addDrive(remoteDrive);
|
|
34
|
-
remoteReactor = reactor;
|
|
35
|
-
server = setupServer(...createDriveHandlers(reactor, drive.header.id));
|
|
36
|
-
server.listen({ onUnhandledRequest: "error" });
|
|
37
|
-
});
|
|
38
|
-
afterEach(() => {
|
|
39
|
-
server.resetHandlers(); // Reset any handlers overridden during a test
|
|
40
|
-
server.close();
|
|
41
|
-
});
|
|
42
|
-
it("should register listener and create trigger", async () => {
|
|
43
|
-
const trigger = await setupTrigger();
|
|
44
|
-
expect(trigger).toStrictEqual({
|
|
45
|
-
driveId: driveId,
|
|
46
|
-
filter: triggerOptions.pullFilter,
|
|
47
|
-
type: "PullResponder",
|
|
48
|
-
id: expectUUID(expect),
|
|
49
|
-
data: {
|
|
50
|
-
interval: triggerOptions.pullInterval.toString(),
|
|
51
|
-
listenerId: expectUUID(expect),
|
|
52
|
-
url: remoteUrl,
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
const remoteListener = remoteReactor.listeners.getListenerState(driveId, trigger.data.listenerId);
|
|
56
|
-
expect(remoteListener).toMatchObject({
|
|
57
|
-
listener: {
|
|
58
|
-
driveId: driveId,
|
|
59
|
-
listenerId: trigger.data.listenerId,
|
|
60
|
-
filter: triggerOptions.pullFilter,
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
it("should pull drive operation from remote reactor", async () => {
|
|
65
|
-
const { reactor } = await testSetupReactor();
|
|
66
|
-
const trigger = await setupTrigger();
|
|
67
|
-
await reactor.addDrive({
|
|
68
|
-
id: driveId,
|
|
69
|
-
global: remoteDrive.global,
|
|
70
|
-
local: {
|
|
71
|
-
availableOffline: true,
|
|
72
|
-
triggers: [trigger],
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
const result = await remoteReactor.queueAction(driveId, addFolder({ id: generateId(), name: "test" }));
|
|
76
|
-
await vi.waitFor(async () => {
|
|
77
|
-
const drive = await reactor.getDrive(driveId);
|
|
78
|
-
expect(getDocumentScopeIndexes(drive)).toStrictEqual({
|
|
79
|
-
global: 0,
|
|
80
|
-
local: -1,
|
|
81
|
-
});
|
|
82
|
-
const resultDrive = result.document;
|
|
83
|
-
expect(drive.state.global).toStrictEqual(resultDrive.state.global);
|
|
84
|
-
}, {
|
|
85
|
-
timeout: 1000,
|
|
86
|
-
});
|
|
87
|
-
await reactor.deleteDrive(driveId);
|
|
88
|
-
});
|
|
89
|
-
it("should push new document to remote reactor", async () => {
|
|
90
|
-
const { reactor } = await testSetupReactor();
|
|
91
|
-
const trigger = await setupTrigger();
|
|
92
|
-
await reactor.addDrive({
|
|
93
|
-
id: driveId,
|
|
94
|
-
global: remoteDrive.global,
|
|
95
|
-
local: {
|
|
96
|
-
availableOffline: true,
|
|
97
|
-
triggers: [trigger],
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
const newDocument = documentModelCreateDocument();
|
|
101
|
-
const documentId = newDocument.header.id;
|
|
102
|
-
const document = await remoteReactor.addDocument(newDocument);
|
|
103
|
-
const result = await remoteReactor.queueAction(driveId, addFile({
|
|
104
|
-
id: documentId,
|
|
105
|
-
name: "test",
|
|
106
|
-
documentType: document.header.documentType,
|
|
107
|
-
}));
|
|
108
|
-
await vi.waitFor(async () => {
|
|
109
|
-
const drive = await reactor.getDrive(driveId);
|
|
110
|
-
expect(getDocumentScopeIndexes(drive)).toStrictEqual({
|
|
111
|
-
global: 0,
|
|
112
|
-
local: -1,
|
|
113
|
-
});
|
|
114
|
-
const resultDrive = result.document;
|
|
115
|
-
expect(drive.state.global).toStrictEqual(resultDrive.state.global);
|
|
116
|
-
});
|
|
117
|
-
await vi.waitFor(async () => {
|
|
118
|
-
const document = (await reactor.getDocument(documentId));
|
|
119
|
-
expect(getDocumentScopeIndexes(document)).toStrictEqual({
|
|
120
|
-
global: -1,
|
|
121
|
-
local: -1,
|
|
122
|
-
});
|
|
123
|
-
const remoteDocument = (await remoteReactor.getDocument(documentId));
|
|
124
|
-
expect(document.state.global).toStrictEqual(remoteDocument.state.global);
|
|
125
|
-
});
|
|
126
|
-
await reactor.deleteDrive(driveId);
|
|
127
|
-
});
|
|
128
|
-
it("should push new document with operations to remote reactor", async () => {
|
|
129
|
-
const { reactor } = await testSetupReactor();
|
|
130
|
-
const trigger = await setupTrigger();
|
|
131
|
-
await reactor.addDrive({
|
|
132
|
-
id: driveId,
|
|
133
|
-
global: remoteDrive.global,
|
|
134
|
-
local: {
|
|
135
|
-
availableOffline: true,
|
|
136
|
-
triggers: [trigger],
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
const newDocument = documentModelCreateDocument();
|
|
140
|
-
const documentId = newDocument.header.id;
|
|
141
|
-
const document = await remoteReactor.addDocument(newDocument);
|
|
142
|
-
const result = await remoteReactor.queueAction(documentId, setAuthorName({
|
|
143
|
-
authorName: "test",
|
|
144
|
-
}));
|
|
145
|
-
await remoteReactor.queueAction(driveId, addFile({
|
|
146
|
-
id: documentId,
|
|
147
|
-
name: "test",
|
|
148
|
-
documentType: document.header.documentType,
|
|
149
|
-
}));
|
|
150
|
-
await vi.waitFor(async () => {
|
|
151
|
-
const document = (await reactor.getDocument(documentId));
|
|
152
|
-
expect(getDocumentScopeIndexes(document)).toStrictEqual({
|
|
153
|
-
global: 0,
|
|
154
|
-
local: -1,
|
|
155
|
-
});
|
|
156
|
-
const resultDocument = result.document;
|
|
157
|
-
expect(document.state.global).toStrictEqual(resultDocument.state.global);
|
|
158
|
-
});
|
|
159
|
-
await reactor.deleteDrive(driveId);
|
|
160
|
-
});
|
|
161
|
-
it("should persist triggers in drive storage and retrieve them correctly", async () => {
|
|
162
|
-
const { reactor } = await testSetupReactor();
|
|
163
|
-
const trigger = await setupTrigger();
|
|
164
|
-
// Create a drive with triggers and listeners
|
|
165
|
-
const testListeners = [
|
|
166
|
-
{
|
|
167
|
-
listenerId: "test-listener-1",
|
|
168
|
-
label: "Test Listener",
|
|
169
|
-
version: "1.0.0",
|
|
170
|
-
url: "https://example.com/listener",
|
|
171
|
-
system: false,
|
|
172
|
-
status: "CONNECTING",
|
|
173
|
-
block: false,
|
|
174
|
-
callInfo: {
|
|
175
|
-
data: "",
|
|
176
|
-
name: "Test Listener",
|
|
177
|
-
transmitterType: "PullResponder",
|
|
178
|
-
},
|
|
179
|
-
filter: {
|
|
180
|
-
documentType: ["*"],
|
|
181
|
-
documentId: ["*"],
|
|
182
|
-
scope: ["global"],
|
|
183
|
-
branch: ["main"],
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
|
-
];
|
|
187
|
-
const createdDrive = await reactor.addDrive({
|
|
188
|
-
id: generateId(),
|
|
189
|
-
global: {
|
|
190
|
-
name: "Test Drive with Triggers",
|
|
191
|
-
icon: null,
|
|
192
|
-
},
|
|
193
|
-
local: {
|
|
194
|
-
availableOffline: true,
|
|
195
|
-
triggers: [trigger],
|
|
196
|
-
listeners: testListeners,
|
|
197
|
-
sharingType: "private",
|
|
198
|
-
},
|
|
199
|
-
});
|
|
200
|
-
const createdDriveId = createdDrive.header.id;
|
|
201
|
-
// Verify initial state has triggers and listeners
|
|
202
|
-
expect(createdDrive.state.local.triggers).toHaveLength(1);
|
|
203
|
-
expect(createdDrive.state.local.triggers[0].id).toBe(trigger.id);
|
|
204
|
-
expect(createdDrive.state.local.listeners).toHaveLength(1);
|
|
205
|
-
expect(createdDrive.state.local.listeners[0].listenerId).toBe(testListeners[0].listenerId);
|
|
206
|
-
// Now retrieve the drive from storage (simulating a restart)
|
|
207
|
-
const retrievedDrive = await reactor.getDrive(createdDriveId);
|
|
208
|
-
// Verify that triggers and listeners are preserved after retrieval
|
|
209
|
-
expect(retrievedDrive.state.local.triggers).toHaveLength(1);
|
|
210
|
-
expect(retrievedDrive.state.local.triggers[0]).toStrictEqual(trigger);
|
|
211
|
-
expect(retrievedDrive.state.local.listeners).toHaveLength(1);
|
|
212
|
-
expect(retrievedDrive.state.local.listeners[0]).toStrictEqual(testListeners[0]);
|
|
213
|
-
// Verify other local state is also preserved
|
|
214
|
-
expect(retrievedDrive.state.local.availableOffline).toBe(true);
|
|
215
|
-
expect(retrievedDrive.state.local.sharingType).toBe("private");
|
|
216
|
-
// Clean up
|
|
217
|
-
await reactor.deleteDrive(createdDriveId);
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
//# sourceMappingURL=pull-responder-transmitter.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pull-responder-transmitter.test.js","sourceRoot":"","sources":["../../test/pull-responder-transmitter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-backfill.test.d.ts","sourceRoot":"","sources":["../../test/push-backfill.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { ConsoleLogger, DocumentModelRegistry, driveCollectionId, EventBus, GqlRequestChannelFactory, GqlResponseChannelFactory, InMemoryQueue, JobStatus, NullDocumentModelResolver, ReactorBuilder, ReactorEventTypes, SyncBuilder, } from "@powerhousedao/reactor";
|
|
2
|
-
import { driveDocumentModelModule } from "document-drive";
|
|
3
|
-
import { afterEach, describe, expect, it } from "vitest";
|
|
4
|
-
import { createResolverBridge } from "./utils/gql-resolver-bridge.js";
|
|
5
|
-
/**
|
|
6
|
-
* Creates a resolver bridge that can be toggled between online, offline,
|
|
7
|
-
* and rejecting modes.
|
|
8
|
-
* - online: normal passthrough to the resolver bridge
|
|
9
|
-
* - offline: throws a network error (recoverable)
|
|
10
|
-
* - rejecting: returns HTTP 200 with GraphQL errors array (unrecoverable)
|
|
11
|
-
*/
|
|
12
|
-
function createFailableResolverBridge(syncManagers) {
|
|
13
|
-
const innerBridge = createResolverBridge(syncManagers);
|
|
14
|
-
let mode = "online";
|
|
15
|
-
const bridge = async (input, init) => {
|
|
16
|
-
if (mode === "offline")
|
|
17
|
-
throw new Error("Network error: offline");
|
|
18
|
-
if (mode === "rejecting") {
|
|
19
|
-
return new Response(JSON.stringify({
|
|
20
|
-
errors: [{ message: "Validation failed: invalid operation" }],
|
|
21
|
-
}), { status: 200, headers: { "Content-Type": "application/json" } });
|
|
22
|
-
}
|
|
23
|
-
return innerBridge(input, init);
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
bridge,
|
|
27
|
-
setOffline: (v) => {
|
|
28
|
-
mode = v ? "offline" : "online";
|
|
29
|
-
},
|
|
30
|
-
setMode: (m) => {
|
|
31
|
-
mode = m;
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
async function setupPushBackfill() {
|
|
36
|
-
const syncManagerRegistry = new Map();
|
|
37
|
-
const { bridge, setOffline, setMode } = createFailableResolverBridge(syncManagerRegistry);
|
|
38
|
-
const logger = new ConsoleLogger(["test"]);
|
|
39
|
-
const connectEventBus = new EventBus();
|
|
40
|
-
const switchboardEventBus = new EventBus();
|
|
41
|
-
const modelRegistry = new DocumentModelRegistry();
|
|
42
|
-
modelRegistry.registerModules(driveDocumentModelModule);
|
|
43
|
-
const resolver = new NullDocumentModelResolver(modelRegistry);
|
|
44
|
-
const connectQueue = new InMemoryQueue(connectEventBus, resolver);
|
|
45
|
-
const switchboardQueue = new InMemoryQueue(switchboardEventBus, resolver);
|
|
46
|
-
function createCompositeFactory(queue) {
|
|
47
|
-
const request = new GqlRequestChannelFactory(logger, undefined, queue);
|
|
48
|
-
const response = new GqlResponseChannelFactory(logger);
|
|
49
|
-
return {
|
|
50
|
-
instance(...args) {
|
|
51
|
-
const [remoteId, remoteName, config, cursorStorage] = args;
|
|
52
|
-
if (config.type === "polling") {
|
|
53
|
-
return response.instance(remoteId, remoteName, config, cursorStorage);
|
|
54
|
-
}
|
|
55
|
-
return request.instance(...args);
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
const connectModule = await new ReactorBuilder()
|
|
60
|
-
.withEventBus(connectEventBus)
|
|
61
|
-
.withQueue(connectQueue)
|
|
62
|
-
.withDocumentModels([
|
|
63
|
-
driveDocumentModelModule,
|
|
64
|
-
])
|
|
65
|
-
.withSync(new SyncBuilder().withChannelFactory(createCompositeFactory(connectQueue)))
|
|
66
|
-
.buildModule();
|
|
67
|
-
const switchboardModule = await new ReactorBuilder()
|
|
68
|
-
.withEventBus(switchboardEventBus)
|
|
69
|
-
.withQueue(switchboardQueue)
|
|
70
|
-
.withDocumentModels([
|
|
71
|
-
driveDocumentModelModule,
|
|
72
|
-
])
|
|
73
|
-
.withSync(new SyncBuilder().withChannelFactory(createCompositeFactory(switchboardQueue)))
|
|
74
|
-
.buildModule();
|
|
75
|
-
const switchboardSyncManager = switchboardModule.syncModule.syncManager;
|
|
76
|
-
syncManagerRegistry.set("switchboard", switchboardSyncManager);
|
|
77
|
-
const connectSyncManager = connectModule.syncModule.syncManager;
|
|
78
|
-
syncManagerRegistry.set("connect", connectSyncManager);
|
|
79
|
-
return {
|
|
80
|
-
connectReactor: connectModule.reactor,
|
|
81
|
-
switchboardReactor: switchboardModule.reactor,
|
|
82
|
-
connectModule,
|
|
83
|
-
switchboardModule,
|
|
84
|
-
connectEventBus,
|
|
85
|
-
switchboardEventBus,
|
|
86
|
-
connectSyncManager,
|
|
87
|
-
switchboardSyncManager,
|
|
88
|
-
bridge,
|
|
89
|
-
setOffline,
|
|
90
|
-
setMode,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
async function setupSyncForDrive(connectSyncManager, driveId, fetchFn) {
|
|
94
|
-
const collectionId = driveCollectionId("main", driveId);
|
|
95
|
-
await connectSyncManager.add(`switchboard-${driveId}`, collectionId, {
|
|
96
|
-
type: "gql",
|
|
97
|
-
parameters: {
|
|
98
|
-
url: "http://switchboard/graphql",
|
|
99
|
-
pollIntervalMs: 50,
|
|
100
|
-
retryBaseDelayMs: 10,
|
|
101
|
-
retryMaxDelayMs: 100,
|
|
102
|
-
fetchFn,
|
|
103
|
-
},
|
|
104
|
-
}, {
|
|
105
|
-
documentId: [],
|
|
106
|
-
scope: [],
|
|
107
|
-
branch: "main",
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
async function waitForJobCompletion(reactor, jobId, timeoutMs = 10000) {
|
|
111
|
-
const start = Date.now();
|
|
112
|
-
while (Date.now() - start < timeoutMs) {
|
|
113
|
-
const status = await reactor.getJobStatus(jobId);
|
|
114
|
-
if (status.status === JobStatus.READ_READY ||
|
|
115
|
-
status.status === JobStatus.FAILED) {
|
|
116
|
-
if (status.status === JobStatus.FAILED) {
|
|
117
|
-
throw new Error(`Job ${jobId} failed: ${status.error?.message ?? "unknown"}`);
|
|
118
|
-
}
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
122
|
-
}
|
|
123
|
-
throw new Error(`Timed out waiting for job ${jobId}`);
|
|
124
|
-
}
|
|
125
|
-
function waitForOperationsReady(eventBus, documentId, timeoutMs = 15000) {
|
|
126
|
-
return new Promise((resolve, reject) => {
|
|
127
|
-
let unsubscribe;
|
|
128
|
-
const timer = setTimeout(() => {
|
|
129
|
-
unsubscribe?.();
|
|
130
|
-
reject(new Error(`Timed out waiting for operations on document ${documentId}`));
|
|
131
|
-
}, timeoutMs);
|
|
132
|
-
unsubscribe = eventBus.subscribe(ReactorEventTypes.JOB_READ_READY, (_type, event) => {
|
|
133
|
-
const matchesDocument = event.operations.some((op) => op.context.documentId === documentId);
|
|
134
|
-
if (matchesDocument) {
|
|
135
|
-
clearTimeout(timer);
|
|
136
|
-
unsubscribe?.();
|
|
137
|
-
resolve();
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
function waitForSyncStabilization(eventBuses, quietPeriodMs = 500, timeoutMs = 15000) {
|
|
143
|
-
return new Promise((resolve, reject) => {
|
|
144
|
-
let lastActivityTime = Date.now();
|
|
145
|
-
const unsubscribes = [];
|
|
146
|
-
const timer = setTimeout(() => {
|
|
147
|
-
cleanup();
|
|
148
|
-
reject(new Error("Timed out waiting for sync stabilization"));
|
|
149
|
-
}, timeoutMs);
|
|
150
|
-
const checkQuiet = setInterval(() => {
|
|
151
|
-
if (Date.now() - lastActivityTime >= quietPeriodMs) {
|
|
152
|
-
cleanup();
|
|
153
|
-
resolve();
|
|
154
|
-
}
|
|
155
|
-
}, 50);
|
|
156
|
-
function cleanup() {
|
|
157
|
-
clearTimeout(timer);
|
|
158
|
-
clearInterval(checkQuiet);
|
|
159
|
-
for (const unsub of unsubscribes)
|
|
160
|
-
unsub();
|
|
161
|
-
}
|
|
162
|
-
for (const bus of eventBuses) {
|
|
163
|
-
const unsub = bus.subscribe(ReactorEventTypes.JOB_READ_READY, () => {
|
|
164
|
-
lastActivityTime = Date.now();
|
|
165
|
-
});
|
|
166
|
-
unsubscribes.push(unsub);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
describe("Push Backfill After Offline Recovery", () => {
|
|
171
|
-
let connectReactor;
|
|
172
|
-
let switchboardReactor;
|
|
173
|
-
afterEach(() => {
|
|
174
|
-
connectReactor.kill();
|
|
175
|
-
switchboardReactor.kill();
|
|
176
|
-
});
|
|
177
|
-
it("should resend dead-lettered operations when channel recovers", async () => {
|
|
178
|
-
const setup = await setupPushBackfill();
|
|
179
|
-
connectReactor = setup.connectReactor;
|
|
180
|
-
switchboardReactor = setup.switchboardReactor;
|
|
181
|
-
const { connectModule, switchboardModule, connectEventBus, switchboardEventBus, connectSyncManager, bridge, setOffline, } = setup;
|
|
182
|
-
// Step 1: Create document on Connect, sync to Switchboard
|
|
183
|
-
const document = driveDocumentModelModule.utils.createDocument({
|
|
184
|
-
global: {
|
|
185
|
-
name: "Backfill Test",
|
|
186
|
-
icon: null,
|
|
187
|
-
nodes: [],
|
|
188
|
-
},
|
|
189
|
-
});
|
|
190
|
-
const documentId = document.header.id;
|
|
191
|
-
await setupSyncForDrive(connectSyncManager, documentId, bridge);
|
|
192
|
-
const createOnSwitchboard = waitForOperationsReady(switchboardEventBus, documentId);
|
|
193
|
-
const createJob = await connectReactor.create(document);
|
|
194
|
-
await waitForJobCompletion(connectReactor, createJob.id);
|
|
195
|
-
await createOnSwitchboard;
|
|
196
|
-
// Verify initial sync worked
|
|
197
|
-
const connectDocInitial = await connectReactor.get(documentId, {
|
|
198
|
-
branch: "main",
|
|
199
|
-
});
|
|
200
|
-
const switchboardDocInitial = await switchboardReactor.get(documentId, {
|
|
201
|
-
branch: "main",
|
|
202
|
-
});
|
|
203
|
-
expect(connectDocInitial.state).toEqual(switchboardDocInitial.state);
|
|
204
|
-
// Step 2: Go offline
|
|
205
|
-
setOffline(true);
|
|
206
|
-
// Step 3: Mutate while offline
|
|
207
|
-
const mutateJob = await connectReactor.execute(documentId, "main", [
|
|
208
|
-
driveDocumentModelModule.actions.setDriveName({
|
|
209
|
-
name: "Offline Change",
|
|
210
|
-
}),
|
|
211
|
-
]);
|
|
212
|
-
await waitForJobCompletion(connectReactor, mutateJob.id);
|
|
213
|
-
// Step 4: Wait for BufferedMailbox flush (~500ms) and async push failure
|
|
214
|
-
// The push will fail because the bridge is offline, sending ops to deadLetter
|
|
215
|
-
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
216
|
-
// Verify the local state updated correctly
|
|
217
|
-
const connectDocAfterMutation = await connectReactor.get(documentId, {
|
|
218
|
-
branch: "main",
|
|
219
|
-
});
|
|
220
|
-
const connectState = connectDocAfterMutation.state;
|
|
221
|
-
expect(connectState.global.name).toBe("Offline Change");
|
|
222
|
-
// Step 5: Come back online
|
|
223
|
-
setOffline(false);
|
|
224
|
-
// Step 6: Wait for sync to stabilize
|
|
225
|
-
// With aggressive timers (pollIntervalMs: 50, retryBaseDelayMs: 10),
|
|
226
|
-
// if backfill worked, the dead-lettered ops would be retried quickly.
|
|
227
|
-
await waitForSyncStabilization([connectEventBus, switchboardEventBus], 1000, 10000);
|
|
228
|
-
// Step 7: Assert that Switchboard received the offline mutation
|
|
229
|
-
const connectOps = await connectReactor.getOperations(documentId, {
|
|
230
|
-
branch: "main",
|
|
231
|
-
});
|
|
232
|
-
const switchboardOps = await switchboardReactor.getOperations(documentId, {
|
|
233
|
-
branch: "main",
|
|
234
|
-
});
|
|
235
|
-
const connectOpsList = Object.values(connectOps).flatMap((scope) => scope.results);
|
|
236
|
-
const switchboardOpsList = Object.values(switchboardOps).flatMap((scope) => scope.results);
|
|
237
|
-
expect(switchboardOpsList.length).toBe(connectOpsList.length);
|
|
238
|
-
const connectDoc = await connectReactor.get(documentId, {
|
|
239
|
-
branch: "main",
|
|
240
|
-
});
|
|
241
|
-
const switchboardDoc = await switchboardReactor.get(documentId, {
|
|
242
|
-
branch: "main",
|
|
243
|
-
});
|
|
244
|
-
expect(switchboardDoc.state).toEqual(connectDoc.state);
|
|
245
|
-
}, 30000);
|
|
246
|
-
it("should send unrecoverable push errors to deadLetter", async () => {
|
|
247
|
-
const setup = await setupPushBackfill();
|
|
248
|
-
connectReactor = setup.connectReactor;
|
|
249
|
-
switchboardReactor = setup.switchboardReactor;
|
|
250
|
-
const { connectEventBus, switchboardEventBus, connectSyncManager, bridge, setMode, } = setup;
|
|
251
|
-
// Step 1: Create document on Connect, sync to Switchboard
|
|
252
|
-
const document = driveDocumentModelModule.utils.createDocument({
|
|
253
|
-
global: {
|
|
254
|
-
name: "Unrecoverable Test",
|
|
255
|
-
icon: null,
|
|
256
|
-
nodes: [],
|
|
257
|
-
},
|
|
258
|
-
});
|
|
259
|
-
const documentId = document.header.id;
|
|
260
|
-
await setupSyncForDrive(connectSyncManager, documentId, bridge);
|
|
261
|
-
const createOnSwitchboard = waitForOperationsReady(switchboardEventBus, documentId);
|
|
262
|
-
const createJob = await connectReactor.create(document);
|
|
263
|
-
await waitForJobCompletion(connectReactor, createJob.id);
|
|
264
|
-
await createOnSwitchboard;
|
|
265
|
-
// Verify initial sync worked
|
|
266
|
-
const connectDocInitial = await connectReactor.get(documentId, {
|
|
267
|
-
branch: "main",
|
|
268
|
-
});
|
|
269
|
-
const switchboardDocInitial = await switchboardReactor.get(documentId, {
|
|
270
|
-
branch: "main",
|
|
271
|
-
});
|
|
272
|
-
expect(connectDocInitial.state).toEqual(switchboardDocInitial.state);
|
|
273
|
-
// Wait for Connect's poll to receive ackOrdinal and trim the outbox
|
|
274
|
-
await waitForSyncStabilization([connectEventBus, switchboardEventBus], 500, 5000);
|
|
275
|
-
// Step 2: Switch bridge to "rejecting" mode (GraphQL errors)
|
|
276
|
-
setMode("rejecting");
|
|
277
|
-
// Step 3: Mutate on Connect
|
|
278
|
-
const mutateJob = await connectReactor.execute(documentId, "main", [
|
|
279
|
-
driveDocumentModelModule.actions.setDriveName({
|
|
280
|
-
name: "Rejected Change",
|
|
281
|
-
}),
|
|
282
|
-
]);
|
|
283
|
-
await waitForJobCompletion(connectReactor, mutateJob.id);
|
|
284
|
-
// Step 4: Wait for BufferedMailbox flush and push failure propagation
|
|
285
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
286
|
-
// Step 5: Verify ops went to deadLetter (not retried)
|
|
287
|
-
const remote = connectSyncManager.getByName(`switchboard-${documentId}`);
|
|
288
|
-
const deadLetterItems = remote.channel.deadLetter.items;
|
|
289
|
-
expect(deadLetterItems.length).toBeGreaterThan(0);
|
|
290
|
-
// Switchboard should NOT have the rejected mutation
|
|
291
|
-
const switchboardDoc = await switchboardReactor.get(documentId, {
|
|
292
|
-
branch: "main",
|
|
293
|
-
});
|
|
294
|
-
const switchboardState = switchboardDoc.state;
|
|
295
|
-
expect(switchboardState.global.name).toBe("Unrecoverable Test");
|
|
296
|
-
}, 30000);
|
|
297
|
-
});
|
|
298
|
-
//# sourceMappingURL=push-backfill.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-backfill.test.js","sourceRoot":"","sources":["../../test/push-backfill.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"push-transmitter.test.d.ts","sourceRoot":"","sources":["../../test/push-transmitter.test.ts"],"names":[],"mappings":""}
|