jazz-tools 0.18.37 → 0.19.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/.svelte-kit/__package__/jazz.class.svelte.d.ts +8 -8
- package/.svelte-kit/__package__/jazz.class.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/jazz.class.svelte.js +39 -14
- package/.svelte-kit/__package__/media/image.svelte +6 -5
- package/.svelte-kit/__package__/media/image.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.d.ts +2 -0
- package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.js +19 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test-d.d.ts +2 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test-d.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test-d.js +16 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test.d.ts +2 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test.js +42 -0
- package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte +23 -0
- package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte.d.ts +12 -0
- package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
- package/.turbo/turbo-build.log +53 -53
- package/CHANGELOG.md +33 -0
- package/dist/better-auth/database-adapter/index.js +14 -11
- package/dist/better-auth/database-adapter/index.js.map +1 -1
- package/dist/better-auth/database-adapter/repository/generic.d.ts +1 -1
- package/dist/better-auth/database-adapter/repository/generic.d.ts.map +1 -1
- package/dist/better-auth/database-adapter/repository/user.d.ts.map +1 -1
- package/dist/{chunk-OSQ7S47Q.js → chunk-P3YLNFN4.js} +504 -232
- package/dist/chunk-P3YLNFN4.js.map +1 -0
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/inspector/{custom-element-SUVJ7CPN.js → custom-element-QESCMFY7.js} +13 -3
- package/dist/inspector/{custom-element-SUVJ7CPN.js.map → custom-element-QESCMFY7.js.map} +1 -1
- package/dist/inspector/index.js +12 -2
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/inspector/viewer/history-view.d.ts.map +1 -1
- package/dist/media/{chunk-K6GCHLQU.js → chunk-3LKBM3G3.js} +23 -15
- package/dist/media/chunk-3LKBM3G3.js.map +1 -0
- package/dist/media/create-image/browser.d.ts +2 -2
- package/dist/media/create-image/react-native.d.ts +2 -2
- package/dist/media/create-image/server.d.ts +2 -2
- package/dist/media/create-image-factory.d.ts +2 -2
- package/dist/media/index.browser.js +1 -1
- package/dist/media/index.js +1 -1
- package/dist/media/index.native.js +1 -1
- package/dist/media/index.server.js +1 -1
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +1 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +31 -15
- package/dist/react/index.js.map +1 -1
- package/dist/react/media/image.d.ts.map +1 -1
- package/dist/react-core/hooks.d.ts +126 -224
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +65 -63
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-core/subscription-provider.d.ts.map +1 -1
- package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts +2 -0
- package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts.map +1 -0
- package/dist/react-core/tests/useAccount.selector.test.d.ts +2 -0
- package/dist/react-core/tests/useAccount.selector.test.d.ts.map +1 -0
- package/dist/react-core/tests/useCoState.selector.test.d.ts +2 -0
- package/dist/react-core/tests/useCoState.selector.test.d.ts.map +1 -0
- package/dist/react-native-core/hooks.d.ts +1 -1
- package/dist/react-native-core/hooks.d.ts.map +1 -1
- package/dist/react-native-core/index.js +7 -5
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/react-native-core/media/image.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.d.ts +8 -8
- package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +39 -14
- package/dist/svelte/media/image.svelte +6 -5
- package/dist/svelte/media/image.svelte.d.ts.map +1 -1
- package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts +2 -0
- package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
- package/dist/svelte/tests/AccountCoState.svelte.test-d.js +19 -0
- package/dist/svelte/tests/CoState.svelte.test-d.d.ts +2 -0
- package/dist/svelte/tests/CoState.svelte.test-d.d.ts.map +1 -0
- package/dist/svelte/tests/CoState.svelte.test-d.js +16 -0
- package/dist/svelte/tests/CoState.svelte.test.d.ts +2 -0
- package/dist/svelte/tests/CoState.svelte.test.d.ts.map +1 -0
- package/dist/svelte/tests/CoState.svelte.test.js +42 -0
- package/dist/svelte/tests/TestCoStateWrapper.svelte +23 -0
- package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts +12 -0
- package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
- package/dist/testing.js +3 -1
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/CoValueBase.d.ts +4 -1
- package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
- package/dist/tools/coValues/account.d.ts +6 -6
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts +5 -5
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/coList.d.ts +9 -8
- package/dist/tools/coValues/coList.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts +17 -17
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/dist/tools/coValues/coPlainText.d.ts +3 -3
- package/dist/tools/coValues/coPlainText.d.ts.map +1 -1
- package/dist/tools/coValues/coVector.d.ts +3 -3
- package/dist/tools/coValues/coVector.d.ts.map +1 -1
- package/dist/tools/coValues/deepLoading.d.ts +66 -36
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts.map +1 -1
- package/dist/tools/coValues/group.d.ts +2 -2
- package/dist/tools/coValues/group.d.ts.map +1 -1
- package/dist/tools/coValues/inbox.d.ts.map +1 -1
- package/dist/tools/coValues/interfaces.d.ts +14 -6
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/coValues/request.d.ts.map +1 -1
- package/dist/tools/coValues/schemaUnion.d.ts +2 -2
- package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +3 -3
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/implementation/refs.d.ts +3 -3
- package/dist/tools/implementation/refs.d.ts.map +1 -1
- package/dist/tools/implementation/schema.d.ts +2 -2
- package/dist/tools/implementation/schema.d.ts.map +1 -1
- package/dist/tools/implementation/schemaUtils.d.ts +8 -0
- package/dist/tools/implementation/schemaUtils.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +33 -18
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +5 -4
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +23 -12
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +29 -18
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +39 -22
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts +1 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +30 -19
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts +5 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts +6 -5
- package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +3 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts +22 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts +9 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodSchema.d.ts +7 -6
- package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
- package/dist/tools/internal.d.ts +3 -3
- package/dist/tools/internal.d.ts.map +1 -1
- package/dist/tools/lib/utils.d.ts +14 -0
- package/dist/tools/lib/utils.d.ts.map +1 -0
- package/dist/tools/lib/utils.test.d.ts +2 -0
- package/dist/tools/lib/utils.test.d.ts.map +1 -0
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +3 -2
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
- package/dist/tools/subscribe/JazzError.d.ts +4 -3
- package/dist/tools/subscribe/JazzError.d.ts.map +1 -1
- package/dist/tools/subscribe/SubscriptionScope.d.ts +6 -5
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/index.d.ts.map +1 -1
- package/dist/tools/subscribe/types.d.ts +23 -3
- package/dist/tools/subscribe/types.d.ts.map +1 -1
- package/dist/tools/subscribe/utils.d.ts.map +1 -1
- package/dist/tools/testing.d.ts +3 -2
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/tests/schema.resolved.test.d.ts +2 -0
- package/dist/tools/tests/schema.resolved.test.d.ts.map +1 -0
- package/dist/tools/tests/utils.d.ts +2 -1
- package/dist/tools/tests/utils.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/better-auth/database-adapter/index.ts +2 -2
- package/src/better-auth/database-adapter/repository/account.ts +3 -3
- package/src/better-auth/database-adapter/repository/generic.ts +9 -6
- package/src/better-auth/database-adapter/repository/user.ts +6 -2
- package/src/better-auth/database-adapter/schema.ts +1 -1
- package/src/better-auth/database-adapter/tests/index.test.ts +3 -4
- package/src/inspector/tests/viewer/history-view.test.tsx +74 -10
- package/src/inspector/viewer/history-view.tsx +14 -5
- package/src/media/utils.test.ts +5 -0
- package/src/media/utils.ts +25 -16
- package/src/react/hooks.tsx +2 -2
- package/src/react/index.ts +2 -2
- package/src/react/media/image.tsx +10 -2
- package/src/react/tests/useAcceptInvite.test.ts +3 -1
- package/src/react-core/hooks.ts +226 -304
- package/src/react-core/subscription-provider.tsx +14 -7
- package/src/react-core/tests/createCoValueSubscriptionContext.test.tsx +233 -0
- package/src/react-core/tests/subscription.bench.tsx +32 -15
- package/src/react-core/tests/{useAccountWithSelector.test.ts → useAccount.selector.test.ts} +72 -24
- package/src/react-core/tests/useAccount.test.ts +92 -106
- package/src/react-core/tests/{useCoStateWithSelector.test.ts → useCoState.selector.test.ts} +23 -8
- package/src/react-core/tests/useCoState.test.ts +173 -49
- package/src/react-core/tests/useInboxSender.test.ts +3 -1
- package/src/react-core/tests/usePassPhraseAuth.test.ts +11 -82
- package/src/react-core/tests/useSubscriptionSelector.test.ts +48 -14
- package/src/react-native-core/hooks.tsx +2 -2
- package/src/react-native-core/media/image.tsx +3 -1
- package/src/svelte/jazz.class.svelte.ts +103 -27
- package/src/svelte/media/image.svelte +6 -5
- package/src/svelte/tests/AccountCoState.svelte.test-d.ts +23 -0
- package/src/svelte/tests/CoState.svelte.test-d.ts +20 -0
- package/src/svelte/tests/CoState.svelte.test.ts +57 -0
- package/src/svelte/tests/TestCoStateWrapper.svelte +23 -0
- package/src/tools/coValues/CoValueBase.ts +12 -0
- package/src/tools/coValues/account.ts +17 -12
- package/src/tools/coValues/coFeed.ts +38 -15
- package/src/tools/coValues/coList.ts +16 -11
- package/src/tools/coValues/coMap.ts +15 -14
- package/src/tools/coValues/coPlainText.ts +6 -3
- package/src/tools/coValues/coVector.ts +6 -5
- package/src/tools/coValues/deepLoading.ts +98 -51
- package/src/tools/coValues/group.ts +3 -2
- package/src/tools/coValues/inbox.ts +11 -10
- package/src/tools/coValues/interfaces.ts +49 -27
- package/src/tools/coValues/request.ts +8 -6
- package/src/tools/coValues/schemaUnion.ts +2 -1
- package/src/tools/exports.ts +11 -1
- package/src/tools/implementation/refs.ts +19 -13
- package/src/tools/implementation/schema.ts +5 -4
- package/src/tools/implementation/schemaUtils.ts +15 -0
- package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +4 -4
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +131 -95
- package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +19 -9
- package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +73 -22
- package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +86 -28
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +204 -148
- package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +1 -0
- package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +71 -27
- package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +7 -0
- package/src/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.ts +8 -6
- package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/schemaTypes/GroupSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +3 -0
- package/src/tools/implementation/zodSchema/typeConverters/{InstanceOfSchemaCoValuesNullable.ts → InstanceOfSchemaCoValuesMaybeLoaded.ts} +47 -39
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +4 -0
- package/src/tools/implementation/zodSchema/typeConverters/{InstanceOrPrimitiveOfSchemaCoValuesNullable.ts → InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.ts} +7 -3
- package/src/tools/implementation/zodSchema/zodSchema.ts +15 -7
- package/src/tools/internal.ts +3 -3
- package/src/tools/lib/utils.test.ts +56 -0
- package/src/tools/lib/utils.ts +32 -0
- package/src/tools/subscribe/CoValueCoreSubscription.ts +13 -8
- package/src/tools/subscribe/JazzError.ts +8 -2
- package/src/tools/subscribe/SubscriptionScope.ts +55 -44
- package/src/tools/subscribe/index.ts +12 -4
- package/src/tools/subscribe/types.ts +36 -2
- package/src/tools/subscribe/utils.ts +2 -1
- package/src/tools/testing.ts +5 -0
- package/src/tools/tests/CoValueCoreSubscription.test.ts +10 -4
- package/src/tools/tests/ContextManager.test.ts +12 -5
- package/src/tools/tests/account.test.ts +22 -12
- package/src/tools/tests/coDiscriminatedUnion.test.ts +8 -4
- package/src/tools/tests/coFeed.branch.test.ts +48 -32
- package/src/tools/tests/coFeed.test-d.ts +17 -10
- package/src/tools/tests/coFeed.test.ts +52 -30
- package/src/tools/tests/coList.branch.test.ts +21 -21
- package/src/tools/tests/coList.test-d.ts +39 -23
- package/src/tools/tests/coList.test.ts +51 -25
- package/src/tools/tests/coList.unique.test.ts +34 -29
- package/src/tools/tests/coMap.branch.test.ts +20 -21
- package/src/tools/tests/coMap.record.test-d.ts +28 -26
- package/src/tools/tests/coMap.record.test.ts +30 -20
- package/src/tools/tests/coMap.test-d.ts +31 -29
- package/src/tools/tests/coMap.test.ts +67 -40
- package/src/tools/tests/coMap.unique.test.ts +25 -24
- package/src/tools/tests/coVector.test.ts +29 -15
- package/src/tools/tests/createContext.test.ts +5 -3
- package/src/tools/tests/deepLoading.test.ts +314 -117
- package/src/tools/tests/exportImport.test.ts +16 -15
- package/src/tools/tests/groupsAndAccounts.test.ts +39 -16
- package/src/tools/tests/inbox.test.ts +3 -1
- package/src/tools/tests/load.test.ts +29 -23
- package/src/tools/tests/patterns/quest.test.ts +3 -2
- package/src/tools/tests/patterns/requestToJoin.test.ts +17 -17
- package/src/tools/tests/request.test.ts +12 -2
- package/src/tools/tests/schema.resolved.test.ts +723 -0
- package/src/tools/tests/schemaUnion.test.ts +7 -3
- package/src/tools/tests/subscribe.test.ts +39 -21
- package/src/tools/tests/testing.test.ts +3 -2
- package/src/tools/tests/utils.ts +15 -2
- package/dist/chunk-OSQ7S47Q.js.map +0 -1
- package/dist/media/chunk-K6GCHLQU.js.map +0 -1
- package/dist/react-core/tests/useAccountWithSelector.test.d.ts +0 -2
- package/dist/react-core/tests/useAccountWithSelector.test.d.ts.map +0 -1
- package/dist/react-core/tests/useCoStateWithSelector.test.d.ts +0 -2
- package/dist/react-core/tests/useCoStateWithSelector.test.d.ts.map +0 -1
- package/dist/tools/implementation/errors.d.ts +0 -2
- package/dist/tools/implementation/errors.d.ts.map +0 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +0 -19
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +0 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +0 -5
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +0 -1
- package/dist/tools/lib/id.d.ts +0 -2
- package/dist/tools/lib/id.d.ts.map +0 -1
- package/src/tools/implementation/errors.ts +0 -1
- package/src/tools/lib/id.ts +0 -3
|
@@ -3,7 +3,7 @@ import { assert, beforeEach, describe, expect, test, vi } from "vitest";
|
|
|
3
3
|
import { Group, co, z } from "../exports.js";
|
|
4
4
|
|
|
5
5
|
import { createJazzTestAccount, setupJazzTestSync } from "../testing.js";
|
|
6
|
-
import { waitFor } from "./utils.js";
|
|
6
|
+
import { assertLoaded, waitFor } from "./utils.js";
|
|
7
7
|
|
|
8
8
|
beforeEach(async () => {
|
|
9
9
|
cojsonInternals.CO_VALUE_LOADING_CONFIG.RETRY_DELAY = 1000;
|
|
@@ -40,7 +40,7 @@ describe("CoFeed Branching", async () => {
|
|
|
40
40
|
unstable_branch: { name: "feature-branch" },
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
assertLoaded(branchFeed);
|
|
44
44
|
|
|
45
45
|
expect(branchFeed.$jazz.branchName).toBe("feature-branch");
|
|
46
46
|
expect(branchFeed.$jazz.isBranched).toBe(true);
|
|
@@ -84,7 +84,7 @@ describe("CoFeed Branching", async () => {
|
|
|
84
84
|
unstable_branch: { name: "feature-branch" },
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
assertLoaded(branchFeed);
|
|
88
88
|
|
|
89
89
|
expect(branchFeed.$jazz.branchName).toBe("feature-branch");
|
|
90
90
|
expect(branchFeed.$jazz.isBranched).toBe(true);
|
|
@@ -129,7 +129,7 @@ describe("CoFeed Branching", async () => {
|
|
|
129
129
|
unstable_branch: { name: "no-changes-branch" },
|
|
130
130
|
});
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
assertLoaded(branchFeed);
|
|
133
133
|
|
|
134
134
|
expect(branchFeed.$jazz.branchName).toBe("no-changes-branch");
|
|
135
135
|
expect(branchFeed.$jazz.isBranched).toBe(true);
|
|
@@ -159,7 +159,7 @@ describe("CoFeed Branching", async () => {
|
|
|
159
159
|
unstable_branch: { name: "shared-branch" },
|
|
160
160
|
});
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
assertLoaded(branch1);
|
|
163
163
|
|
|
164
164
|
branch1.$jazz.push("jam");
|
|
165
165
|
|
|
@@ -167,7 +167,7 @@ describe("CoFeed Branching", async () => {
|
|
|
167
167
|
unstable_branch: { name: "shared-branch" },
|
|
168
168
|
});
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
assertLoaded(branch2);
|
|
171
171
|
|
|
172
172
|
expect(branch1.perAccount[me.$jazz.id]?.value).toEqual("jam");
|
|
173
173
|
expect(branch2.perAccount[me.$jazz.id]?.value).toEqual("jam");
|
|
@@ -202,7 +202,7 @@ describe("CoFeed Branching", async () => {
|
|
|
202
202
|
loadAs: alice,
|
|
203
203
|
});
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
assertLoaded(branch1);
|
|
206
206
|
|
|
207
207
|
originalFeed.$jazz.push("jam");
|
|
208
208
|
|
|
@@ -212,7 +212,7 @@ describe("CoFeed Branching", async () => {
|
|
|
212
212
|
loadAs: bob,
|
|
213
213
|
});
|
|
214
214
|
|
|
215
|
-
|
|
215
|
+
assertLoaded(branch2);
|
|
216
216
|
|
|
217
217
|
// Both branches should have the same changes
|
|
218
218
|
expect(branch1.perAccount[me.$jazz.id]?.value).toEqual("butter");
|
|
@@ -253,7 +253,7 @@ describe("CoFeed Branching", async () => {
|
|
|
253
253
|
unstable_branch: { name: "double-merge-branch" },
|
|
254
254
|
});
|
|
255
255
|
|
|
256
|
-
|
|
256
|
+
assertLoaded(branch);
|
|
257
257
|
|
|
258
258
|
branch.$jazz.push("jam");
|
|
259
259
|
|
|
@@ -261,7 +261,7 @@ describe("CoFeed Branching", async () => {
|
|
|
261
261
|
branch.$jazz.unstable_merge();
|
|
262
262
|
|
|
263
263
|
const feed = await TestStream.load(originalFeed.$jazz.id);
|
|
264
|
-
|
|
264
|
+
assertLoaded(feed);
|
|
265
265
|
|
|
266
266
|
if (feed.perAccount[me.$jazz.id]?.value !== "jam") {
|
|
267
267
|
console.log(feed.$jazz.raw.items, feed.perAccount[me.$jazz.id]?.value);
|
|
@@ -299,7 +299,7 @@ describe("CoFeed Branching", async () => {
|
|
|
299
299
|
loadAs: alice,
|
|
300
300
|
});
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
assertLoaded(branch1);
|
|
303
303
|
|
|
304
304
|
branch1.$jazz.push("jam");
|
|
305
305
|
|
|
@@ -309,7 +309,7 @@ describe("CoFeed Branching", async () => {
|
|
|
309
309
|
loadAs: bob,
|
|
310
310
|
});
|
|
311
311
|
|
|
312
|
-
|
|
312
|
+
assertLoaded(branch2);
|
|
313
313
|
|
|
314
314
|
branch2.$jazz.push("cheese");
|
|
315
315
|
branch2.$jazz.push("honey");
|
|
@@ -349,8 +349,7 @@ describe("CoFeed Branching", async () => {
|
|
|
349
349
|
unstable_branch: { name: "load-by-id-branch" },
|
|
350
350
|
});
|
|
351
351
|
|
|
352
|
-
|
|
353
|
-
|
|
352
|
+
assertLoaded(branch);
|
|
354
353
|
expect(branch.$jazz.id).toBe(originalFeed.$jazz.id);
|
|
355
354
|
});
|
|
356
355
|
|
|
@@ -366,7 +365,7 @@ describe("CoFeed Branching", async () => {
|
|
|
366
365
|
unstable_branch: { name: "conflict-branch" },
|
|
367
366
|
});
|
|
368
367
|
|
|
369
|
-
|
|
368
|
+
assertLoaded(branch);
|
|
370
369
|
|
|
371
370
|
branch.$jazz.push("jam");
|
|
372
371
|
branch.$jazz.push("cheese");
|
|
@@ -398,7 +397,7 @@ describe("CoFeed Branching", async () => {
|
|
|
398
397
|
unstable_branch: { name: "align-branch" },
|
|
399
398
|
});
|
|
400
399
|
|
|
401
|
-
|
|
400
|
+
assertLoaded(branch);
|
|
402
401
|
|
|
403
402
|
branch.$jazz.push("jam");
|
|
404
403
|
|
|
@@ -414,7 +413,7 @@ describe("CoFeed Branching", async () => {
|
|
|
414
413
|
unstable_branch: { name: "align-branch" },
|
|
415
414
|
});
|
|
416
415
|
|
|
417
|
-
|
|
416
|
+
assertLoaded(loadedBranch);
|
|
418
417
|
|
|
419
418
|
expect(loadedBranch.perAccount[me.$jazz.id]?.value).toEqual("jam");
|
|
420
419
|
});
|
|
@@ -437,7 +436,7 @@ describe("CoFeed Branching", async () => {
|
|
|
437
436
|
unstable_branch: { name: "text-feed-edit" },
|
|
438
437
|
});
|
|
439
438
|
|
|
440
|
-
|
|
439
|
+
assertLoaded(branch);
|
|
441
440
|
|
|
442
441
|
// Make extensive changes to the branch
|
|
443
442
|
branch.$jazz.push(Text.create("jam"));
|
|
@@ -449,7 +448,7 @@ describe("CoFeed Branching", async () => {
|
|
|
449
448
|
},
|
|
450
449
|
});
|
|
451
450
|
|
|
452
|
-
|
|
451
|
+
assertLoaded(loadedTextFeed);
|
|
453
452
|
|
|
454
453
|
// Verify original is unchanged
|
|
455
454
|
expect(loadedTextFeed.perAccount[me.$jazz.id]?.value?.toString()).toBe(
|
|
@@ -482,7 +481,7 @@ describe("CoFeed Branching", async () => {
|
|
|
482
481
|
unstable_branch: { name: "subscribe-branch" },
|
|
483
482
|
});
|
|
484
483
|
|
|
485
|
-
|
|
484
|
+
assertLoaded(branch);
|
|
486
485
|
|
|
487
486
|
const spy = vi.fn();
|
|
488
487
|
const unsubscribe = branch.$jazz.subscribe((feed, unsubscribe) => {
|
|
@@ -525,7 +524,7 @@ describe("CoFeed Branching", async () => {
|
|
|
525
524
|
unstable_branch: { name: "ensure-loaded-branch" },
|
|
526
525
|
});
|
|
527
526
|
|
|
528
|
-
|
|
527
|
+
assertLoaded(branch);
|
|
529
528
|
|
|
530
529
|
branch.$jazz.push("jam");
|
|
531
530
|
branch.$jazz.push("cheese");
|
|
@@ -559,7 +558,7 @@ describe("CoFeed Branching", async () => {
|
|
|
559
558
|
unstable_branch: { name: "schema-subscribe-branch" },
|
|
560
559
|
});
|
|
561
560
|
|
|
562
|
-
|
|
561
|
+
assertLoaded(branch);
|
|
563
562
|
|
|
564
563
|
branch.$jazz.push("jam");
|
|
565
564
|
branch.$jazz.push("cheese");
|
|
@@ -607,7 +606,7 @@ describe("CoFeed Branching", async () => {
|
|
|
607
606
|
unstable_branch: { name: "nullable-branch" },
|
|
608
607
|
});
|
|
609
608
|
|
|
610
|
-
|
|
609
|
+
assertLoaded(branch);
|
|
611
610
|
|
|
612
611
|
// Edit the branch
|
|
613
612
|
branch.$jazz.push("jam");
|
|
@@ -648,7 +647,7 @@ describe("CoFeed Branching", async () => {
|
|
|
648
647
|
unstable_branch: { name: "nested-feed-branch" },
|
|
649
648
|
});
|
|
650
649
|
|
|
651
|
-
|
|
650
|
+
assertLoaded(branch);
|
|
652
651
|
|
|
653
652
|
// Make changes to the branch
|
|
654
653
|
const newTwiceNested = TwiceNestedStream.create(["bread"], {
|
|
@@ -661,24 +660,41 @@ describe("CoFeed Branching", async () => {
|
|
|
661
660
|
branch.$jazz.push(newNested);
|
|
662
661
|
|
|
663
662
|
// Verify the original is unchanged
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
663
|
+
const myTopLevelStream = originalFeed.perAccount[me.$jazz.id];
|
|
664
|
+
assert(myTopLevelStream);
|
|
665
|
+
assertLoaded(myTopLevelStream.value);
|
|
666
|
+
const myNestedStream = myTopLevelStream.value.perAccount[me.$jazz.id];
|
|
667
|
+
assert(myNestedStream);
|
|
668
|
+
assertLoaded(myNestedStream.value);
|
|
669
|
+
expect(myNestedStream.value.perAccount[me.$jazz.id]?.value).toEqual(
|
|
670
|
+
"milk",
|
|
671
|
+
);
|
|
668
672
|
|
|
669
673
|
// Verify the branch has the changes
|
|
674
|
+
const myBranchedTopLevelStream = branch.perAccount[me.$jazz.id];
|
|
675
|
+
assert(myBranchedTopLevelStream);
|
|
676
|
+
assertLoaded(myBranchedTopLevelStream.value);
|
|
677
|
+
const myBranchedNestedStream =
|
|
678
|
+
myBranchedTopLevelStream.value.perAccount[me.$jazz.id];
|
|
679
|
+
assert(myBranchedNestedStream);
|
|
680
|
+
assertLoaded(myBranchedNestedStream.value);
|
|
670
681
|
expect(
|
|
671
|
-
|
|
672
|
-
?.perAccount[me.$jazz.id]?.value,
|
|
682
|
+
myBranchedNestedStream.value.perAccount[me.$jazz.id]?.value,
|
|
673
683
|
).toEqual("bread");
|
|
674
684
|
|
|
675
685
|
// Merge the branch
|
|
676
686
|
branch.$jazz.unstable_merge();
|
|
677
687
|
|
|
678
688
|
// Verify the original now has the merged changes
|
|
689
|
+
const myOriginalTopLevelStream = originalFeed.perAccount[me.$jazz.id];
|
|
690
|
+
assert(myOriginalTopLevelStream);
|
|
691
|
+
assertLoaded(myOriginalTopLevelStream.value);
|
|
692
|
+
const myOriginalNestedStream =
|
|
693
|
+
myOriginalTopLevelStream.value.perAccount[me.$jazz.id];
|
|
694
|
+
assert(myOriginalNestedStream);
|
|
695
|
+
assertLoaded(myOriginalNestedStream.value);
|
|
679
696
|
expect(
|
|
680
|
-
|
|
681
|
-
?.value?.perAccount[me.$jazz.id]?.value,
|
|
697
|
+
myOriginalNestedStream.value.perAccount[me.$jazz.id]?.value,
|
|
682
698
|
).toEqual("bread");
|
|
683
699
|
});
|
|
684
700
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { assert, describe, expectTypeOf, test } from "vitest";
|
|
2
2
|
import { Group, co, z } from "../exports.js";
|
|
3
3
|
import { Account } from "../index.js";
|
|
4
|
-
import { CoFeed, FileStream, Loaded } from "../internal.js";
|
|
4
|
+
import { CoFeed, FileStream, Loaded, MaybeLoaded } from "../internal.js";
|
|
5
|
+
import { assertLoaded } from "./utils.js";
|
|
5
6
|
|
|
6
7
|
describe("CoFeed", () => {
|
|
7
8
|
describe("init", () => {
|
|
@@ -39,7 +40,7 @@ describe("CoFeed", () => {
|
|
|
39
40
|
Dog.create({ name: "Rex", breed: "Labrador" }),
|
|
40
41
|
]);
|
|
41
42
|
|
|
42
|
-
type ExpectedType = Loaded<typeof Dog
|
|
43
|
+
type ExpectedType = MaybeLoaded<Loaded<typeof Dog>> | undefined;
|
|
43
44
|
|
|
44
45
|
function matches(value: ExpectedType) {
|
|
45
46
|
return value;
|
|
@@ -60,7 +61,7 @@ describe("CoFeed", () => {
|
|
|
60
61
|
Dog.create({ name: "Rex", breed: "Labrador" }),
|
|
61
62
|
]);
|
|
62
63
|
|
|
63
|
-
type ExpectedType = Loaded<typeof Dog
|
|
64
|
+
type ExpectedType = MaybeLoaded<Loaded<typeof Dog>> | undefined;
|
|
64
65
|
|
|
65
66
|
function matches(value: ExpectedType) {
|
|
66
67
|
return value;
|
|
@@ -89,7 +90,7 @@ describe("CoFeed", () => {
|
|
|
89
90
|
|
|
90
91
|
const feed = DogFeed.create([dog, undefined]);
|
|
91
92
|
|
|
92
|
-
type ExpectedType = Loaded<typeof Dog
|
|
93
|
+
type ExpectedType = MaybeLoaded<Loaded<typeof Dog>> | undefined;
|
|
93
94
|
|
|
94
95
|
function matches(value: ExpectedType) {
|
|
95
96
|
return value;
|
|
@@ -103,7 +104,7 @@ describe("CoFeed", () => {
|
|
|
103
104
|
|
|
104
105
|
const feed = NestedFeed.create([co.feed(z.string()).create(["milk"])]);
|
|
105
106
|
|
|
106
|
-
type ExpectedType = CoFeed<string
|
|
107
|
+
type ExpectedType = MaybeLoaded<CoFeed<string>> | undefined;
|
|
107
108
|
|
|
108
109
|
function matches(value: ExpectedType) {
|
|
109
110
|
return value;
|
|
@@ -144,17 +145,19 @@ describe("CoFeed", () => {
|
|
|
144
145
|
resolve: true,
|
|
145
146
|
});
|
|
146
147
|
|
|
147
|
-
type ExpectedType = Loaded<typeof Dog
|
|
148
|
+
type ExpectedType = MaybeLoaded<Loaded<typeof Dog>> | undefined;
|
|
148
149
|
|
|
149
150
|
function matches(value: ExpectedType) {
|
|
150
151
|
return value;
|
|
151
152
|
}
|
|
152
153
|
|
|
154
|
+
assertLoaded(loadedFeed);
|
|
153
155
|
matches(loadedFeed?.perAccount[Account.getMe().$jazz.id]?.value);
|
|
154
156
|
|
|
155
157
|
assert(loadedFeed);
|
|
156
158
|
const dog = loadedFeed.perAccount[Account.getMe().$jazz.id]?.value;
|
|
157
159
|
assert(dog);
|
|
160
|
+
assertLoaded(dog);
|
|
158
161
|
expectTypeOf(dog.name).toEqualTypeOf<string>();
|
|
159
162
|
});
|
|
160
163
|
|
|
@@ -171,16 +174,17 @@ describe("CoFeed", () => {
|
|
|
171
174
|
]);
|
|
172
175
|
|
|
173
176
|
const loadedFeed = await DogFeed.load(feed.$jazz.id, {
|
|
174
|
-
resolve: { $each: { $onError:
|
|
177
|
+
resolve: { $each: { $onError: "catch" } },
|
|
175
178
|
});
|
|
176
179
|
|
|
177
|
-
type ExpectedType = Loaded<typeof Dog
|
|
180
|
+
type ExpectedType = MaybeLoaded<Loaded<typeof Dog>> | undefined;
|
|
178
181
|
|
|
179
182
|
function matches(value: ExpectedType) {
|
|
180
183
|
return value;
|
|
181
184
|
}
|
|
182
185
|
|
|
183
|
-
|
|
186
|
+
assertLoaded(loadedFeed);
|
|
187
|
+
matches(loadedFeed.perAccount[Account.getMe().$jazz.id]?.value);
|
|
184
188
|
});
|
|
185
189
|
|
|
186
190
|
test("loading a nested feed with deep resolve", async () => {
|
|
@@ -202,20 +206,23 @@ describe("CoFeed", () => {
|
|
|
202
206
|
},
|
|
203
207
|
});
|
|
204
208
|
|
|
205
|
-
type ExpectedType = Loaded<typeof Dog
|
|
209
|
+
type ExpectedType = MaybeLoaded<Loaded<typeof Dog>> | undefined;
|
|
206
210
|
|
|
207
211
|
function matches(value: ExpectedType) {
|
|
208
212
|
return value;
|
|
209
213
|
}
|
|
210
214
|
|
|
215
|
+
assertLoaded(loadedFeed);
|
|
211
216
|
const nestedFeed =
|
|
212
217
|
loadedFeed?.perAccount[Account.getMe().$jazz.id]?.value;
|
|
213
218
|
assert(nestedFeed);
|
|
219
|
+
assertLoaded(nestedFeed);
|
|
214
220
|
matches(nestedFeed.perAccount[Account.getMe().$jazz.id]?.value);
|
|
215
221
|
|
|
216
222
|
assert(loadedFeed);
|
|
217
223
|
const dog = nestedFeed.perAccount[Account.getMe().$jazz.id]?.value;
|
|
218
224
|
assert(dog);
|
|
225
|
+
assertLoaded(dog);
|
|
219
226
|
expectTypeOf(dog.name).toEqualTypeOf<string>();
|
|
220
227
|
});
|
|
221
228
|
});
|
|
@@ -17,11 +17,12 @@ import {
|
|
|
17
17
|
z,
|
|
18
18
|
} from "../index.js";
|
|
19
19
|
import { createJazzTestAccount, setupJazzTestSync } from "../testing.js";
|
|
20
|
-
import { setupTwoNodes, waitFor } from "./utils.js";
|
|
20
|
+
import { assertLoaded, setupTwoNodes, waitFor } from "./utils.js";
|
|
21
21
|
import {
|
|
22
22
|
CoFeed,
|
|
23
|
-
|
|
23
|
+
CoFeedInstanceCoValuesMaybeLoaded,
|
|
24
24
|
ControlledAccount,
|
|
25
|
+
CoValueLoadingState,
|
|
25
26
|
TypeSym,
|
|
26
27
|
} from "../internal.js";
|
|
27
28
|
|
|
@@ -187,10 +188,13 @@ describe("CoFeed resolution", async () => {
|
|
|
187
188
|
// TODO: fix this
|
|
188
189
|
// expectTypeOf(stream[me.id]).not.toBeAny();
|
|
189
190
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
191
|
+
const myTopLevelStream = stream.perAccount[me.$jazz.id];
|
|
192
|
+
assert(myTopLevelStream);
|
|
193
|
+
assertLoaded(myTopLevelStream.value);
|
|
194
|
+
const myNestedStream = myTopLevelStream.value.perAccount[me.$jazz.id];
|
|
195
|
+
assert(myNestedStream);
|
|
196
|
+
assertLoaded(myNestedStream.value);
|
|
197
|
+
expect(myNestedStream.value.perAccount[me.$jazz.id]?.value).toEqual("milk");
|
|
194
198
|
});
|
|
195
199
|
|
|
196
200
|
test("Loading and availability", async () => {
|
|
@@ -202,7 +206,7 @@ describe("CoFeed resolution", async () => {
|
|
|
202
206
|
loadAs: anotherAccount,
|
|
203
207
|
});
|
|
204
208
|
|
|
205
|
-
|
|
209
|
+
assertLoaded(loadedStream);
|
|
206
210
|
|
|
207
211
|
const myStream = loadedStream.perAccount[me.$jazz.id];
|
|
208
212
|
|
|
@@ -210,7 +214,7 @@ describe("CoFeed resolution", async () => {
|
|
|
210
214
|
|
|
211
215
|
await waitFor(() => expect(myStream.value).toBeTruthy());
|
|
212
216
|
|
|
213
|
-
|
|
217
|
+
assertLoaded(myStream.value);
|
|
214
218
|
|
|
215
219
|
const loadedNestedStreamByMe = myStream.value.perAccount[me.$jazz.id];
|
|
216
220
|
|
|
@@ -218,7 +222,7 @@ describe("CoFeed resolution", async () => {
|
|
|
218
222
|
|
|
219
223
|
await waitFor(() => expect(loadedNestedStreamByMe.value).toBeTruthy());
|
|
220
224
|
|
|
221
|
-
|
|
225
|
+
assertLoaded(loadedNestedStreamByMe.value);
|
|
222
226
|
|
|
223
227
|
const loadedTwiceNestedStreamByMe =
|
|
224
228
|
loadedNestedStreamByMe.value.perAccount[me.$jazz.id];
|
|
@@ -236,7 +240,9 @@ describe("CoFeed resolution", async () => {
|
|
|
236
240
|
|
|
237
241
|
const anotherAccount = await createJazzTestAccount();
|
|
238
242
|
|
|
239
|
-
let result:
|
|
243
|
+
let result: CoFeedInstanceCoValuesMaybeLoaded<
|
|
244
|
+
co.Feed<co.Feed<z.z.ZodString>>
|
|
245
|
+
>;
|
|
240
246
|
|
|
241
247
|
TestStream.subscribe(
|
|
242
248
|
stream.$jazz.id,
|
|
@@ -249,10 +255,13 @@ describe("CoFeed resolution", async () => {
|
|
|
249
255
|
await waitFor(() => expect(result).toBeDefined());
|
|
250
256
|
|
|
251
257
|
await waitFor(() => {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
258
|
+
const myTopLevelStream = result.perAccount[accountId];
|
|
259
|
+
assert(myTopLevelStream);
|
|
260
|
+
assertLoaded(myTopLevelStream.value);
|
|
261
|
+
const myNestedStream = myTopLevelStream.value.perAccount[accountId];
|
|
262
|
+
assert(myNestedStream);
|
|
263
|
+
assertLoaded(myNestedStream.value);
|
|
264
|
+
expect(myNestedStream.value.perAccount[accountId]?.value).toBe("milk");
|
|
256
265
|
});
|
|
257
266
|
|
|
258
267
|
// When assigning a new nested stream, we get an update
|
|
@@ -267,20 +276,26 @@ describe("CoFeed resolution", async () => {
|
|
|
267
276
|
stream.$jazz.push(newNested);
|
|
268
277
|
|
|
269
278
|
await waitFor(() => {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
279
|
+
const myTopLevelStream = result.perAccount[accountId];
|
|
280
|
+
assert(myTopLevelStream);
|
|
281
|
+
assertLoaded(myTopLevelStream.value);
|
|
282
|
+
const myNestedStream = myTopLevelStream.value.perAccount[accountId];
|
|
283
|
+
assert(myNestedStream);
|
|
284
|
+
assertLoaded(myNestedStream.value);
|
|
285
|
+
expect(myNestedStream.value.perAccount[accountId]?.value).toBe("butter");
|
|
274
286
|
});
|
|
275
287
|
|
|
276
288
|
// we get updates when the new nested stream changes
|
|
277
289
|
newTwiceNested.$jazz.push("jam");
|
|
278
290
|
|
|
279
291
|
await waitFor(() => {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
292
|
+
const myTopLevelStream = result.perAccount[accountId];
|
|
293
|
+
assert(myTopLevelStream);
|
|
294
|
+
assertLoaded(myTopLevelStream.value);
|
|
295
|
+
const myNestedStream = myTopLevelStream.value.perAccount[accountId];
|
|
296
|
+
assert(myNestedStream);
|
|
297
|
+
assertLoaded(myNestedStream.value);
|
|
298
|
+
expect(myNestedStream.value.perAccount[accountId]?.value).toBe("jam");
|
|
284
299
|
});
|
|
285
300
|
});
|
|
286
301
|
|
|
@@ -299,9 +314,13 @@ describe("CoFeed resolution", async () => {
|
|
|
299
314
|
?.perAccount[me.$jazz.id]?.value,
|
|
300
315
|
).toBe("milk");
|
|
301
316
|
|
|
302
|
-
stream.perAccount[me.$jazz.id]
|
|
303
|
-
|
|
304
|
-
|
|
317
|
+
const myTopLevelStream = stream.perAccount[me.$jazz.id];
|
|
318
|
+
assert(myTopLevelStream);
|
|
319
|
+
assertLoaded(myTopLevelStream.value);
|
|
320
|
+
const myNestedStream = myTopLevelStream.value.perAccount[me.$jazz.id];
|
|
321
|
+
assert(myNestedStream);
|
|
322
|
+
assertLoaded(myNestedStream.value);
|
|
323
|
+
myNestedStream.value.$jazz.push("bread");
|
|
305
324
|
|
|
306
325
|
const update2 = (await queue.next()).value;
|
|
307
326
|
expect(
|
|
@@ -417,7 +436,8 @@ describe("FileStream loading & Subscription", async () => {
|
|
|
417
436
|
loadAs: anotherAccount,
|
|
418
437
|
});
|
|
419
438
|
|
|
420
|
-
|
|
439
|
+
assertLoaded(loadedStream);
|
|
440
|
+
expect(loadedStream.getChunks()).toEqual({
|
|
421
441
|
mimeType: "text/plain",
|
|
422
442
|
chunks: [new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6])],
|
|
423
443
|
finished: true,
|
|
@@ -557,6 +577,7 @@ describe("FileStream.load", async () => {
|
|
|
557
577
|
|
|
558
578
|
const blob = await promise;
|
|
559
579
|
|
|
580
|
+
assertLoaded(blob);
|
|
560
581
|
// The promise resolves only when the stream is ended
|
|
561
582
|
// so we get a blob with all the chunks
|
|
562
583
|
expect(blob?.getChunks()?.finished).toBe(true);
|
|
@@ -575,6 +596,7 @@ describe("FileStream.load", async () => {
|
|
|
575
596
|
|
|
576
597
|
stream.push(new Uint8Array([2]));
|
|
577
598
|
|
|
599
|
+
assertLoaded(blob);
|
|
578
600
|
// The promise resolves before the stream is ended
|
|
579
601
|
// so we get a blob only with the first chunk
|
|
580
602
|
expect(blob?.getChunks({ allowUnfinished: true })?.finished).toBe(false);
|
|
@@ -769,7 +791,7 @@ describe("FileStream large file loading", async () => {
|
|
|
769
791
|
allowUnfinished: true,
|
|
770
792
|
});
|
|
771
793
|
|
|
772
|
-
|
|
794
|
+
assertLoaded(loadedStream);
|
|
773
795
|
|
|
774
796
|
const loadedChunks = loadedStream.getChunks({ allowUnfinished: true });
|
|
775
797
|
expect(loadedChunks).not.toBeNull();
|
|
@@ -816,7 +838,7 @@ describe("FileStream large file loading", async () => {
|
|
|
816
838
|
allowUnfinished: false,
|
|
817
839
|
});
|
|
818
840
|
|
|
819
|
-
|
|
841
|
+
assertLoaded(loadedStream);
|
|
820
842
|
|
|
821
843
|
const loadedChunks = loadedStream.getChunks();
|
|
822
844
|
expect(loadedChunks).not.toBeNull();
|
|
@@ -844,7 +866,7 @@ describe("waitForSync", async () => {
|
|
|
844
866
|
|
|
845
867
|
const loadedStream = await serverNode.load(stream.$jazz.raw.id);
|
|
846
868
|
|
|
847
|
-
expect(loadedStream).not.toBe(
|
|
869
|
+
expect(loadedStream).not.toBe(CoValueLoadingState.UNAVAILABLE);
|
|
848
870
|
});
|
|
849
871
|
|
|
850
872
|
test("FileStream: should resolve when the value is uploaded", async () => {
|
|
@@ -863,7 +885,7 @@ describe("waitForSync", async () => {
|
|
|
863
885
|
|
|
864
886
|
const loadedStream = await serverNode.load(stream.$jazz.raw.id);
|
|
865
887
|
|
|
866
|
-
expect(loadedStream).not.toBe(
|
|
888
|
+
expect(loadedStream).not.toBe(CoValueLoadingState.UNAVAILABLE);
|
|
867
889
|
});
|
|
868
890
|
|
|
869
891
|
test("should rely on the current active account if no account is provided", async () => {
|