@fluidframework/test-utils 2.0.0-dev-rc.3.0.0.250606 → 2.0.0-dev-rc.3.0.0.254274
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/api-report/test-utils.api.md +68 -48
- package/dist/DriverWrappers.d.ts +1 -1
- package/dist/DriverWrappers.d.ts.map +1 -1
- package/dist/DriverWrappers.js.map +1 -1
- package/dist/TestSummaryUtils.d.ts +4 -4
- package/dist/TestSummaryUtils.d.ts.map +1 -1
- package/dist/TestSummaryUtils.js +12 -12
- package/dist/TestSummaryUtils.js.map +1 -1
- package/dist/containerUtils.d.ts +2 -2
- package/dist/containerUtils.d.ts.map +1 -1
- package/dist/containerUtils.js +3 -3
- package/dist/containerUtils.js.map +1 -1
- package/dist/debug.d.ts.map +1 -1
- package/dist/debug.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +1 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/loaderContainerTracker.d.ts +1 -1
- package/dist/loaderContainerTracker.d.ts.map +1 -1
- package/dist/loaderContainerTracker.js +13 -13
- package/dist/loaderContainerTracker.js.map +1 -1
- package/dist/localCodeLoader.d.ts +3 -3
- package/dist/localCodeLoader.d.ts.map +1 -1
- package/dist/localCodeLoader.js +4 -4
- package/dist/localCodeLoader.js.map +1 -1
- package/dist/localLoader.d.ts +2 -2
- package/dist/localLoader.d.ts.map +1 -1
- package/dist/localLoader.js +2 -2
- package/dist/localLoader.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/retry.js +2 -2
- package/dist/retry.js.map +1 -1
- package/dist/test-utils-alpha.d.ts +38 -37
- package/dist/test-utils-beta.d.ts +40 -37
- package/dist/test-utils-public.d.ts +40 -37
- package/dist/test-utils-untrimmed.d.ts +71 -50
- package/dist/testContainerRuntimeFactory.d.ts +5 -5
- package/dist/testContainerRuntimeFactory.d.ts.map +1 -1
- package/dist/testContainerRuntimeFactory.js +16 -14
- package/dist/testContainerRuntimeFactory.js.map +1 -1
- package/dist/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +5 -5
- package/dist/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
- package/dist/testContainerRuntimeFactoryWithDefaultDataStore.js +2 -2
- package/dist/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
- package/dist/testFluidObject.d.ts +2 -2
- package/dist/testFluidObject.d.ts.map +1 -1
- package/dist/testFluidObject.js +7 -7
- package/dist/testFluidObject.js.map +1 -1
- package/dist/testObjectProvider.d.ts +40 -20
- package/dist/testObjectProvider.d.ts.map +1 -1
- package/dist/testObjectProvider.js +61 -44
- package/dist/testObjectProvider.js.map +1 -1
- package/dist/timeoutUtils.js +4 -4
- package/dist/timeoutUtils.js.map +1 -1
- package/lib/DriverWrappers.d.ts +1 -1
- package/lib/DriverWrappers.d.ts.map +1 -1
- package/lib/DriverWrappers.js.map +1 -1
- package/lib/TestSummaryUtils.d.ts +4 -4
- package/lib/TestSummaryUtils.d.ts.map +1 -1
- package/lib/TestSummaryUtils.js +4 -4
- package/lib/TestSummaryUtils.js.map +1 -1
- package/lib/containerUtils.d.ts +2 -2
- package/lib/containerUtils.d.ts.map +1 -1
- package/lib/containerUtils.js +1 -1
- package/lib/containerUtils.js.map +1 -1
- package/lib/debug.d.ts.map +1 -1
- package/lib/debug.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +1 -1
- package/lib/interfaces.d.ts.map +1 -1
- package/lib/interfaces.js.map +1 -1
- package/lib/loaderContainerTracker.d.ts +1 -1
- package/lib/loaderContainerTracker.d.ts.map +1 -1
- package/lib/loaderContainerTracker.js +2 -2
- package/lib/loaderContainerTracker.js.map +1 -1
- package/lib/localCodeLoader.d.ts +3 -3
- package/lib/localCodeLoader.d.ts.map +1 -1
- package/lib/localCodeLoader.js +2 -2
- package/lib/localCodeLoader.js.map +1 -1
- package/lib/localLoader.d.ts +2 -2
- package/lib/localLoader.d.ts.map +1 -1
- package/lib/localLoader.js +1 -1
- package/lib/localLoader.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/retry.js +1 -1
- package/lib/retry.js.map +1 -1
- package/lib/test-utils-alpha.d.ts +38 -37
- package/lib/test-utils-beta.d.ts +40 -37
- package/lib/test-utils-public.d.ts +40 -37
- package/lib/test-utils-untrimmed.d.ts +71 -50
- package/lib/testContainerRuntimeFactory.d.ts +5 -5
- package/lib/testContainerRuntimeFactory.d.ts.map +1 -1
- package/lib/testContainerRuntimeFactory.js +10 -6
- package/lib/testContainerRuntimeFactory.js.map +1 -1
- package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +5 -5
- package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
- package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js +1 -1
- package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
- package/lib/testFluidObject.d.ts +2 -2
- package/lib/testFluidObject.d.ts.map +1 -1
- package/lib/testFluidObject.js +3 -3
- package/lib/testFluidObject.js.map +1 -1
- package/lib/testObjectProvider.d.ts +40 -20
- package/lib/testObjectProvider.d.ts.map +1 -1
- package/lib/testObjectProvider.js +56 -39
- package/lib/testObjectProvider.js.map +1 -1
- package/lib/timeoutUtils.js +1 -1
- package/lib/timeoutUtils.js.map +1 -1
- package/lib/tsdoc-metadata.json +11 -0
- package/package.json +26 -35
- package/src/DriverWrappers.ts +1 -1
- package/src/TestSummaryUtils.ts +11 -6
- package/src/containerUtils.ts +4 -3
- package/src/debug.ts +1 -0
- package/src/index.ts +1 -0
- package/src/interfaces.ts +1 -1
- package/src/loaderContainerTracker.ts +6 -4
- package/src/localCodeLoader.ts +6 -5
- package/src/localLoader.ts +4 -3
- package/src/packageVersion.ts +1 -1
- package/src/retry.ts +1 -1
- package/src/testContainerRuntimeFactory.ts +14 -9
- package/src/testContainerRuntimeFactoryWithDefaultDataStore.ts +5 -5
- package/src/testFluidObject.ts +5 -4
- package/src/testObjectProvider.ts +120 -70
- package/src/timeoutUtils.ts +1 -1
- package/lib/test/timeoutUtils.spec.js +0 -165
- package/lib/test/timeoutUtils.spec.js.map +0 -1
- package/lib/test/types/validateTestUtilsPrevious.generated.js +0 -90
- package/lib/test/types/validateTestUtilsPrevious.generated.js.map +0 -1
|
@@ -5,14 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.TestContainerRuntimeFactory = exports.createTestContainerRuntimeFactory = void 0;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const runtime_utils_1 = require("@fluidframework/runtime-utils");
|
|
8
|
+
const internal_1 = require("@fluidframework/container-runtime/internal");
|
|
9
|
+
const internal_2 = require("@fluidframework/core-utils/internal");
|
|
10
|
+
const internal_3 = require("@fluidframework/request-handler/internal");
|
|
11
|
+
const internal_4 = require("@fluidframework/runtime-utils/internal");
|
|
13
12
|
const backCompat_DefaultRouteRequestHandler = (defaultRootId) => {
|
|
14
13
|
return async (request, runtime) => {
|
|
15
|
-
const parser =
|
|
14
|
+
const parser = internal_4.RequestParser.create(request);
|
|
16
15
|
if (parser.pathParts.length === 0) {
|
|
17
16
|
return runtime.IFluidHandleContext.resolveHandle({
|
|
18
17
|
url: `/${defaultRootId}${parser.query}`,
|
|
@@ -27,11 +26,11 @@ const backCompat_DefaultRouteRequestHandler = (defaultRootId) => {
|
|
|
27
26
|
* @internal
|
|
28
27
|
*/
|
|
29
28
|
const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
|
|
30
|
-
return class extends
|
|
29
|
+
return class extends internal_4.RuntimeFactoryHelper {
|
|
31
30
|
constructor(type, dataStoreFactory, runtimeOptions = {
|
|
32
31
|
summaryOptions: {
|
|
33
32
|
summaryConfigOverrides: {
|
|
34
|
-
...
|
|
33
|
+
...internal_1.DefaultSummaryConfiguration,
|
|
35
34
|
...{
|
|
36
35
|
initialSummarizerDelayMs: 0,
|
|
37
36
|
},
|
|
@@ -49,12 +48,12 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
|
|
|
49
48
|
// Thus need to leverage old API createDetachedRootDataStore() that is gone in latest releases.
|
|
50
49
|
const rootContext = "createDetachedRootDataStore" in runtime
|
|
51
50
|
? runtime.createDetachedRootDataStore([this.type], "default")
|
|
52
|
-
: runtime.createDetachedDataStore([this.type]
|
|
51
|
+
: runtime.createDetachedDataStore([this.type]);
|
|
53
52
|
const rootRuntime = await this.dataStoreFactory.instantiateDataStore(rootContext,
|
|
54
53
|
/* existing */ false);
|
|
55
54
|
const dataStore = await rootContext.attachRuntime(this.dataStoreFactory, rootRuntime);
|
|
56
55
|
const result = await dataStore?.trySetAlias("default");
|
|
57
|
-
(0,
|
|
56
|
+
(0, internal_2.assert)(result === "Success" || result === undefined, "success");
|
|
58
57
|
}
|
|
59
58
|
async instantiateFromExisting(runtime) {
|
|
60
59
|
// Validate we can load root data stores.
|
|
@@ -71,7 +70,9 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
|
|
|
71
70
|
return containerRuntimeCtor.load(context, [
|
|
72
71
|
["default", Promise.resolve(this.dataStoreFactory)],
|
|
73
72
|
[this.type, Promise.resolve(this.dataStoreFactory)],
|
|
74
|
-
],
|
|
73
|
+
],
|
|
74
|
+
// eslint-disable-next-line import/no-deprecated
|
|
75
|
+
(0, internal_3.buildRuntimeRequestHandler)(backCompat_DefaultRouteRequestHandler("default"), ...this.requestHandlers), this.runtimeOptions, context.scope, existing);
|
|
75
76
|
}
|
|
76
77
|
const provideEntryPoint = async (runtime) => {
|
|
77
78
|
const entryPoint = await runtime.getAliasedDataStoreEntryPoint("default");
|
|
@@ -81,7 +82,7 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
|
|
|
81
82
|
return entryPoint.get();
|
|
82
83
|
};
|
|
83
84
|
const getDefaultObject = async (request, runtime) => {
|
|
84
|
-
const parser =
|
|
85
|
+
const parser = internal_4.RequestParser.create(request);
|
|
85
86
|
if (parser.pathParts.length === 0) {
|
|
86
87
|
// This cast is safe as ContainerRuntime.loadRuntime is called below
|
|
87
88
|
return runtime.resolveHandle({
|
|
@@ -97,7 +98,8 @@ const createTestContainerRuntimeFactory = (containerRuntimeCtor) => {
|
|
|
97
98
|
["default", Promise.resolve(this.dataStoreFactory)],
|
|
98
99
|
[this.type, Promise.resolve(this.dataStoreFactory)],
|
|
99
100
|
],
|
|
100
|
-
|
|
101
|
+
// eslint-disable-next-line import/no-deprecated
|
|
102
|
+
requestHandler: (0, internal_3.buildRuntimeRequestHandler)(getDefaultObject, ...this.requestHandlers),
|
|
101
103
|
provideEntryPoint,
|
|
102
104
|
// ! This prop is needed for back-compat. Can be removed in 2.0.0-internal.8.0.0
|
|
103
105
|
initializeEntryPoint: provideEntryPoint,
|
|
@@ -113,5 +115,5 @@ exports.createTestContainerRuntimeFactory = createTestContainerRuntimeFactory;
|
|
|
113
115
|
* A container runtime factory that allows you to set runtime options
|
|
114
116
|
* @internal
|
|
115
117
|
*/
|
|
116
|
-
exports.TestContainerRuntimeFactory = (0, exports.createTestContainerRuntimeFactory)(
|
|
118
|
+
exports.TestContainerRuntimeFactory = (0, exports.createTestContainerRuntimeFactory)(internal_1.ContainerRuntime);
|
|
117
119
|
//# sourceMappingURL=testContainerRuntimeFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testContainerRuntimeFactory.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IContainerContext, IRuntime } from \"@fluidframework/container-definitions\";\nimport {\n\tContainerRuntime,\n\tDefaultSummaryConfiguration,\n\tIContainerRuntimeOptions,\n} from \"@fluidframework/container-runtime\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport {\n\tFluidObject,\n\tIFluidHandleContext,\n\tIRequest,\n\tIResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils\";\n// eslint-disable-next-line import/no-deprecated\nimport { RuntimeRequestHandler, buildRuntimeRequestHandler } from \"@fluidframework/request-handler\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions\";\nimport { RequestParser, RuntimeFactoryHelper } from \"@fluidframework/runtime-utils\";\n\ninterface backCompat_IFluidRouter {\n\tIFluidRouter?: backCompat_IFluidRouter;\n\trequest(request: IRequest): Promise<IResponse>;\n}\n\nconst backCompat_DefaultRouteRequestHandler = (defaultRootId: string) => {\n\treturn async (request: IRequest, runtime: IContainerRuntime) => {\n\t\tconst parser = RequestParser.create(request);\n\t\tif (parser.pathParts.length === 0) {\n\t\t\treturn (\n\t\t\t\truntime as any as Required<FluidObject<IFluidHandleContext>>\n\t\t\t).IFluidHandleContext.resolveHandle({\n\t\t\t\turl: `/${defaultRootId}${parser.query}`,\n\t\t\t\theaders: request.headers,\n\t\t\t});\n\t\t}\n\t\treturn undefined; // continue search\n\t};\n};\n\ninterface backCompat_ContainerRuntime {\n\tload(\n\t\tcontext: IContainerContext,\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries,\n\t\trequestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>,\n\t\truntimeOptions?: IContainerRuntimeOptions,\n\t\tcontainerScope?: FluidObject,\n\t\texisting?: boolean,\n\t\tcontainerRuntimeCtor?: typeof ContainerRuntime,\n\t): Promise<ContainerRuntime>;\n}\n\n/**\n * Create a container runtime factory class that allows you to set runtime options\n * @internal\n */\nexport const createTestContainerRuntimeFactory = (\n\tcontainerRuntimeCtor: typeof ContainerRuntime,\n) => {\n\treturn class extends RuntimeFactoryHelper {\n\t\tconstructor(\n\t\t\tpublic type: string,\n\t\t\tpublic dataStoreFactory: IFluidDataStoreFactory,\n\t\t\tpublic runtimeOptions: IContainerRuntimeOptions = {\n\t\t\t\tsummaryOptions: {\n\t\t\t\t\tsummaryConfigOverrides: {\n\t\t\t\t\t\t...DefaultSummaryConfiguration,\n\t\t\t\t\t\t...{\n\t\t\t\t\t\t\tinitialSummarizerDelayMs: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpublic requestHandlers: RuntimeRequestHandler[] = [],\n\t\t) {\n\t\t\tsuper();\n\t\t}\n\n\t\tpublic async instantiateFirstTime(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Back-compat - old code does not return IDataStore for rootContext.attachRuntime() call!\n\t\t\t// Thus need to leverage old API createDetachedRootDataStore() that is gone in latest releases.\n\t\t\tconst rootContext =\n\t\t\t\t\"createDetachedRootDataStore\" in runtime\n\t\t\t\t\t? (runtime as any).createDetachedRootDataStore([this.type], \"default\")\n\t\t\t\t\t: runtime.createDetachedDataStore([this.type], \"default\");\n\n\t\t\tconst rootRuntime = await this.dataStoreFactory.instantiateDataStore(\n\t\t\t\trootContext,\n\t\t\t\t/* existing */ false,\n\t\t\t);\n\t\t\tconst dataStore = await rootContext.attachRuntime(this.dataStoreFactory, rootRuntime);\n\n\t\t\tconst result = await dataStore?.trySetAlias(\"default\");\n\t\t\tassert(result === \"Success\" || result === undefined, \"success\");\n\t\t}\n\n\t\tpublic async instantiateFromExisting(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Validate we can load root data stores.\n\t\t\t// We should be able to load any data store that was created in initializeFirstTime!\n\t\t\t// Note: We use the deprecated `getRootDataStore` from v1.X here to allow for cross-major version compat\n\t\t\t// testing. Can be removed when we no longer support v1.X.\n\t\t\tawait (runtime.getAliasedDataStoreEntryPoint?.(\"default\") ??\n\t\t\t\t(\n\t\t\t\t\truntime as any as {\n\t\t\t\t\t\tgetRootDataStore(\n\t\t\t\t\t\t\tid: string,\n\t\t\t\t\t\t\twait?: boolean,\n\t\t\t\t\t\t): Promise<backCompat_IFluidRouter>;\n\t\t\t\t\t}\n\t\t\t\t).getRootDataStore(\"default\"));\n\t\t}\n\n\t\tasync preInitialize(\n\t\t\tcontext: IContainerContext,\n\t\t\texisting: boolean,\n\t\t): Promise<IRuntime & IContainerRuntime> {\n\t\t\tif (containerRuntimeCtor.loadRuntime === undefined) {\n\t\t\t\t// Note: We use the deprecated `load` from v1.X here to allow for cross-major version compat testing.\n\t\t\t\t// Can be removed when we no longer support v1.X.\n\t\t\t\treturn (containerRuntimeCtor as any as backCompat_ContainerRuntime).load(\n\t\t\t\t\tcontext,\n\t\t\t\t\t[\n\t\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t],\n\t\t\t\t\tbuildRuntimeRequestHandler(\n\t\t\t\t\t\tbackCompat_DefaultRouteRequestHandler(\"default\"),\n\t\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t\t),\n\t\t\t\t\tthis.runtimeOptions,\n\t\t\t\t\tcontext.scope,\n\t\t\t\t\texisting,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst provideEntryPoint = async (runtime: IContainerRuntime) => {\n\t\t\t\tconst entryPoint = await runtime.getAliasedDataStoreEntryPoint(\"default\");\n\t\t\t\tif (entryPoint === undefined) {\n\t\t\t\t\tthrow new Error(\"default dataStore must exist\");\n\t\t\t\t}\n\t\t\t\treturn entryPoint.get();\n\t\t\t};\n\t\t\tconst getDefaultObject = async (request: IRequest, runtime: IContainerRuntime) => {\n\t\t\t\tconst parser = RequestParser.create(request);\n\t\t\t\tif (parser.pathParts.length === 0) {\n\t\t\t\t\t// This cast is safe as ContainerRuntime.loadRuntime is called below\n\t\t\t\t\treturn (runtime as ContainerRuntime).resolveHandle({\n\t\t\t\t\t\turl: `/default${parser.query}`,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn undefined; // continue search\n\t\t\t};\n\t\t\treturn containerRuntimeCtor.loadRuntime({\n\t\t\t\tcontext,\n\t\t\t\tregistryEntries: [\n\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t],\n\t\t\t\trequestHandler: buildRuntimeRequestHandler(\n\t\t\t\t\tgetDefaultObject,\n\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t),\n\t\t\t\tprovideEntryPoint,\n\t\t\t\t// ! This prop is needed for back-compat. Can be removed in 2.0.0-internal.8.0.0\n\t\t\t\tinitializeEntryPoint: provideEntryPoint,\n\t\t\t\truntimeOptions: this.runtimeOptions,\n\t\t\t\tcontainerScope: context.scope,\n\t\t\t\texisting,\n\t\t\t} as any);\n\t\t}\n\t};\n};\n\n/**\n * A container runtime factory that allows you to set runtime options\n * @internal\n */\nexport const TestContainerRuntimeFactory = createTestContainerRuntimeFactory(ContainerRuntime);\n"]}
|
|
1
|
+
{"version":3,"file":"testContainerRuntimeFactory.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IContainerContext, IRuntime } from \"@fluidframework/container-definitions/internal\";\nimport {\n\tContainerRuntime,\n\tDefaultSummaryConfiguration,\n\tIContainerRuntimeOptions,\n} from \"@fluidframework/container-runtime/internal\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions/internal\";\nimport {\n\tFluidObject,\n\tIFluidHandleContext,\n\tIRequest,\n\tIResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\tRuntimeRequestHandler,\n\t// eslint-disable-next-line import/no-deprecated\n\tbuildRuntimeRequestHandler,\n} from \"@fluidframework/request-handler/internal\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { RequestParser, RuntimeFactoryHelper } from \"@fluidframework/runtime-utils/internal\";\n\ninterface backCompat_IFluidRouter {\n\tIFluidRouter?: backCompat_IFluidRouter;\n\trequest(request: IRequest): Promise<IResponse>;\n}\n\nconst backCompat_DefaultRouteRequestHandler = (defaultRootId: string) => {\n\treturn async (request: IRequest, runtime: IContainerRuntime) => {\n\t\tconst parser = RequestParser.create(request);\n\t\tif (parser.pathParts.length === 0) {\n\t\t\treturn (\n\t\t\t\truntime as any as Required<FluidObject<IFluidHandleContext>>\n\t\t\t).IFluidHandleContext.resolveHandle({\n\t\t\t\turl: `/${defaultRootId}${parser.query}`,\n\t\t\t\theaders: request.headers,\n\t\t\t});\n\t\t}\n\t\treturn undefined; // continue search\n\t};\n};\n\ninterface backCompat_ContainerRuntime {\n\tload(\n\t\tcontext: IContainerContext,\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries,\n\t\trequestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>,\n\t\truntimeOptions?: IContainerRuntimeOptions,\n\t\tcontainerScope?: FluidObject,\n\t\texisting?: boolean,\n\t\tcontainerRuntimeCtor?: typeof ContainerRuntime,\n\t): Promise<ContainerRuntime>;\n}\n\n/**\n * Create a container runtime factory class that allows you to set runtime options\n * @internal\n */\nexport const createTestContainerRuntimeFactory = (\n\tcontainerRuntimeCtor: typeof ContainerRuntime,\n) => {\n\treturn class extends RuntimeFactoryHelper {\n\t\tconstructor(\n\t\t\tpublic type: string,\n\t\t\tpublic dataStoreFactory: IFluidDataStoreFactory,\n\t\t\tpublic runtimeOptions: IContainerRuntimeOptions = {\n\t\t\t\tsummaryOptions: {\n\t\t\t\t\tsummaryConfigOverrides: {\n\t\t\t\t\t\t...DefaultSummaryConfiguration,\n\t\t\t\t\t\t...{\n\t\t\t\t\t\t\tinitialSummarizerDelayMs: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpublic requestHandlers: RuntimeRequestHandler[] = [],\n\t\t) {\n\t\t\tsuper();\n\t\t}\n\n\t\tpublic async instantiateFirstTime(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Back-compat - old code does not return IDataStore for rootContext.attachRuntime() call!\n\t\t\t// Thus need to leverage old API createDetachedRootDataStore() that is gone in latest releases.\n\t\t\tconst rootContext =\n\t\t\t\t\"createDetachedRootDataStore\" in runtime\n\t\t\t\t\t? (runtime as any).createDetachedRootDataStore([this.type], \"default\")\n\t\t\t\t\t: runtime.createDetachedDataStore([this.type]);\n\n\t\t\tconst rootRuntime = await this.dataStoreFactory.instantiateDataStore(\n\t\t\t\trootContext,\n\t\t\t\t/* existing */ false,\n\t\t\t);\n\t\t\tconst dataStore = await rootContext.attachRuntime(this.dataStoreFactory, rootRuntime);\n\n\t\t\tconst result = await dataStore?.trySetAlias(\"default\");\n\t\t\tassert(result === \"Success\" || result === undefined, \"success\");\n\t\t}\n\n\t\tpublic async instantiateFromExisting(runtime: ContainerRuntime): Promise<void> {\n\t\t\t// Validate we can load root data stores.\n\t\t\t// We should be able to load any data store that was created in initializeFirstTime!\n\t\t\t// Note: We use the deprecated `getRootDataStore` from v1.X here to allow for cross-major version compat\n\t\t\t// testing. Can be removed when we no longer support v1.X.\n\t\t\tawait (runtime.getAliasedDataStoreEntryPoint?.(\"default\") ??\n\t\t\t\t(\n\t\t\t\t\truntime as any as {\n\t\t\t\t\t\tgetRootDataStore(\n\t\t\t\t\t\t\tid: string,\n\t\t\t\t\t\t\twait?: boolean,\n\t\t\t\t\t\t): Promise<backCompat_IFluidRouter>;\n\t\t\t\t\t}\n\t\t\t\t).getRootDataStore(\"default\"));\n\t\t}\n\n\t\tasync preInitialize(\n\t\t\tcontext: IContainerContext,\n\t\t\texisting: boolean,\n\t\t): Promise<IRuntime & IContainerRuntime> {\n\t\t\tif (containerRuntimeCtor.loadRuntime === undefined) {\n\t\t\t\t// Note: We use the deprecated `load` from v1.X here to allow for cross-major version compat testing.\n\t\t\t\t// Can be removed when we no longer support v1.X.\n\t\t\t\treturn (containerRuntimeCtor as any as backCompat_ContainerRuntime).load(\n\t\t\t\t\tcontext,\n\t\t\t\t\t[\n\t\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t],\n\t\t\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\t\t\tbuildRuntimeRequestHandler(\n\t\t\t\t\t\tbackCompat_DefaultRouteRequestHandler(\"default\"),\n\t\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t\t),\n\t\t\t\t\tthis.runtimeOptions,\n\t\t\t\t\tcontext.scope,\n\t\t\t\t\texisting,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst provideEntryPoint = async (runtime: IContainerRuntime) => {\n\t\t\t\tconst entryPoint = await runtime.getAliasedDataStoreEntryPoint(\"default\");\n\t\t\t\tif (entryPoint === undefined) {\n\t\t\t\t\tthrow new Error(\"default dataStore must exist\");\n\t\t\t\t}\n\t\t\t\treturn entryPoint.get();\n\t\t\t};\n\t\t\tconst getDefaultObject = async (request: IRequest, runtime: IContainerRuntime) => {\n\t\t\t\tconst parser = RequestParser.create(request);\n\t\t\t\tif (parser.pathParts.length === 0) {\n\t\t\t\t\t// This cast is safe as ContainerRuntime.loadRuntime is called below\n\t\t\t\t\treturn (runtime as ContainerRuntime).resolveHandle({\n\t\t\t\t\t\turl: `/default${parser.query}`,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn undefined; // continue search\n\t\t\t};\n\t\t\treturn containerRuntimeCtor.loadRuntime({\n\t\t\t\tcontext,\n\t\t\t\tregistryEntries: [\n\t\t\t\t\t[\"default\", Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t\t[this.type, Promise.resolve(this.dataStoreFactory)],\n\t\t\t\t],\n\t\t\t\t// eslint-disable-next-line import/no-deprecated\n\t\t\t\trequestHandler: buildRuntimeRequestHandler(\n\t\t\t\t\tgetDefaultObject,\n\t\t\t\t\t...this.requestHandlers,\n\t\t\t\t),\n\t\t\t\tprovideEntryPoint,\n\t\t\t\t// ! This prop is needed for back-compat. Can be removed in 2.0.0-internal.8.0.0\n\t\t\t\tinitializeEntryPoint: provideEntryPoint,\n\t\t\t\truntimeOptions: this.runtimeOptions,\n\t\t\t\tcontainerScope: context.scope,\n\t\t\t\texisting,\n\t\t\t} as any);\n\t\t}\n\t};\n};\n\n/**\n * A container runtime factory that allows you to set runtime options\n * @internal\n */\nexport const TestContainerRuntimeFactory = createTestContainerRuntimeFactory(ContainerRuntime);\n"]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct";
|
|
6
|
-
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime";
|
|
7
|
-
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
|
|
5
|
+
import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct/internal";
|
|
6
|
+
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
|
|
7
|
+
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
|
|
8
8
|
import { FluidObject } from "@fluidframework/core-interfaces";
|
|
9
|
-
import { RuntimeRequestHandler } from "@fluidframework/request-handler";
|
|
10
|
-
import { IFluidDataStoreFactory, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions";
|
|
9
|
+
import { RuntimeRequestHandler } from "@fluidframework/request-handler/internal";
|
|
10
|
+
import { IFluidDataStoreFactory, NamedFluidDataStoreRegistryEntries } from "@fluidframework/runtime-definitions/internal";
|
|
11
11
|
/**
|
|
12
12
|
* ! Note: This function is purely needed for back-compat as the constructor argument structure was changed
|
|
13
13
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,2CAA2C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.d.ts","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,2CAA2C,EAAE,MAAM,mCAAmC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACN,sBAAsB,EACtB,kCAAkC,EAClC,MAAM,8CAA8C,CAAC;AAUtD;;;GAGG;AACH,eAAO,MAAM,iDAAiD;oBAG5C,sBAAsB;;0BAEhB,GAAG;;;mCAGK,iBAAiB,KAAK,QAAQ,WAAW,CAAC;MAEvE,2CAuBF,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createContainerRuntimeFactoryWithDefaultDataStore = void 0;
|
|
8
|
-
const
|
|
8
|
+
const internal_1 = require("@fluidframework/aqueduct/internal");
|
|
9
9
|
const getDefaultFluidObject = async (runtime) => {
|
|
10
10
|
const entryPoint = await runtime.getAliasedDataStoreEntryPoint("default");
|
|
11
11
|
if (entryPoint === undefined) {
|
|
@@ -17,7 +17,7 @@ const getDefaultFluidObject = async (runtime) => {
|
|
|
17
17
|
* ! Note: This function is purely needed for back-compat as the constructor argument structure was changed
|
|
18
18
|
* @internal
|
|
19
19
|
*/
|
|
20
|
-
const createContainerRuntimeFactoryWithDefaultDataStore = (Base =
|
|
20
|
+
const createContainerRuntimeFactoryWithDefaultDataStore = (Base = internal_1.ContainerRuntimeFactoryWithDefaultDataStore, ctorArgs) => {
|
|
21
21
|
try {
|
|
22
22
|
return new Base(ctorArgs);
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"testContainerRuntimeFactoryWithDefaultDataStore.js","sourceRoot":"","sources":["../src/testContainerRuntimeFactoryWithDefaultDataStore.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,gEAAgG;AAUhG,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IAClE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAC1E,IAAI,UAAU,KAAK,SAAS,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KAChD;IACD,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,iDAAiD,GAAG,CAChE,OAA2D,sDAA2C,EACtG,QAOC,EAC6C,EAAE;IAChD,IAAI;QACH,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1B;IAAC,OAAO,GAAG,EAAE;QACb,qJAAqJ;QACrJ,MAAM,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GACjB,GAAG,QAAQ,CAAC;QACb,+DAA+D;QAC/D,OAAO,IAAK,IAAY,CACvB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,IAAI,qBAAqB,CAC1C,CAAC;KACF;AACF,CAAC,CAAC;AAjCW,QAAA,iDAAiD,qDAiC5D","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ContainerRuntimeFactoryWithDefaultDataStore } from \"@fluidframework/aqueduct/internal\";\nimport { IContainerRuntimeOptions } from \"@fluidframework/container-runtime/internal\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions/internal\";\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { RuntimeRequestHandler } from \"@fluidframework/request-handler/internal\";\nimport {\n\tIFluidDataStoreFactory,\n\tNamedFluidDataStoreRegistryEntries,\n} from \"@fluidframework/runtime-definitions/internal\";\n\nconst getDefaultFluidObject = async (runtime: IContainerRuntime) => {\n\tconst entryPoint = await runtime.getAliasedDataStoreEntryPoint(\"default\");\n\tif (entryPoint === undefined) {\n\t\tthrow new Error(\"default dataStore must exist\");\n\t}\n\treturn entryPoint.get();\n};\n\n/**\n * ! Note: This function is purely needed for back-compat as the constructor argument structure was changed\n * @internal\n */\nexport const createContainerRuntimeFactoryWithDefaultDataStore = (\n\tBase: typeof ContainerRuntimeFactoryWithDefaultDataStore = ContainerRuntimeFactoryWithDefaultDataStore,\n\tctorArgs: {\n\t\tdefaultFactory: IFluidDataStoreFactory;\n\t\tregistryEntries: NamedFluidDataStoreRegistryEntries;\n\t\tdependencyContainer?: any;\n\t\trequestHandlers?: RuntimeRequestHandler[];\n\t\truntimeOptions?: IContainerRuntimeOptions;\n\t\tprovideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;\n\t},\n): ContainerRuntimeFactoryWithDefaultDataStore => {\n\ttry {\n\t\treturn new Base(ctorArgs);\n\t} catch (err) {\n\t\t// IMPORTANT: The constructor argument structure changed, so this is needed for dynamically using older ContainerRuntimeFactoryWithDefaultDataStore's\n\t\tconst {\n\t\t\tdefaultFactory,\n\t\t\tregistryEntries,\n\t\t\tdependencyContainer,\n\t\t\trequestHandlers,\n\t\t\truntimeOptions,\n\t\t\tprovideEntryPoint,\n\t\t} = ctorArgs;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn new (Base as any)(\n\t\t\tdefaultFactory,\n\t\t\tregistryEntries,\n\t\t\tdependencyContainer,\n\t\t\trequestHandlers,\n\t\t\truntimeOptions,\n\t\t\tprovideEntryPoint ?? getDefaultFluidObject,\n\t\t);\n\t}\n};\n"]}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { IFluidHandle, IRequest, IResponse } from "@fluidframework/core-interfaces";
|
|
6
|
-
import { FluidDataStoreRuntime } from "@fluidframework/datastore";
|
|
6
|
+
import { FluidDataStoreRuntime } from "@fluidframework/datastore/internal";
|
|
7
7
|
import { IChannelFactory, IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
|
|
8
8
|
import { ISharedMap } from "@fluidframework/map";
|
|
9
|
-
import { IFluidDataStoreChannel, IFluidDataStoreContext, IFluidDataStoreFactory } from "@fluidframework/runtime-definitions";
|
|
9
|
+
import { IFluidDataStoreChannel, IFluidDataStoreContext, IFluidDataStoreFactory } from "@fluidframework/runtime-definitions/internal";
|
|
10
10
|
import { ITestFluidObject } from "./interfaces.js";
|
|
11
11
|
/**
|
|
12
12
|
* A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testFluidObject.d.ts","sourceRoot":"","sources":["../src/testFluidObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEpF,OAAO,EACN,qBAAqB,EAGrB,MAAM,
|
|
1
|
+
{"version":3,"file":"testFluidObject.d.ts","sourceRoot":"","sources":["../src/testFluidObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEpF,OAAO,EACN,qBAAqB,EAGrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,EAAE,UAAU,EAAa,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;aAyBtC,OAAO,EAAE,sBAAsB;aAC/B,OAAO,EAAE,sBAAsB;aAC/B,OAAO,EAAE,sBAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IA3BnC,IAAW,gBAAgB,SAE1B;IAED,IAAW,cAAc,SAExB;IAED,IAAW,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAEtC;IAEM,IAAI,EAAG,UAAU,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;;;OAMG;gBAEc,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAKjE;;;OAGG;IACU,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAehD,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAM9C,UAAU,CAAC,QAAQ,EAAE,OAAO;CA2BzC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,sBAAuB,YAAW,sBAAsB;IAYnE,OAAO,CAAC,QAAQ,CAAC,cAAc;aACf,IAAI;IAZrB,IAAW,sBAAsB,SAEhC;IAED;;;;;OAKG;gBAEe,cAAc,EAAE,sBAAsB,EACvC,IAAI,SAA2B;IAGnC,oBAAoB,CAChC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,CAAC;CAmDjC"}
|
package/dist/testFluidObject.js
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.TestFluidObjectFactory = exports.TestFluidObject = void 0;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
|
+
const internal_2 = require("@fluidframework/datastore/internal");
|
|
10
10
|
const map_1 = require("@fluidframework/map");
|
|
11
|
-
const
|
|
11
|
+
const internal_3 = require("@fluidframework/runtime-utils/internal");
|
|
12
12
|
/**
|
|
13
13
|
* A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.
|
|
14
14
|
* The shared objects can be retrieved by passing the key of the entry to getSharedObject.
|
|
@@ -37,7 +37,7 @@ class TestFluidObject {
|
|
|
37
37
|
this.channel = channel;
|
|
38
38
|
this.context = context;
|
|
39
39
|
this.factoryEntriesMap = factoryEntriesMap;
|
|
40
|
-
this.innerHandle = new
|
|
40
|
+
this.innerHandle = new internal_2.FluidObjectHandle(this, "", runtime.objectsRoutingContext);
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Retrieves a shared object with the given id.
|
|
@@ -58,7 +58,7 @@ class TestFluidObject {
|
|
|
58
58
|
async request(request) {
|
|
59
59
|
return request.url === "" || request.url === "/" || request.url.startsWith("/?")
|
|
60
60
|
? { mimeType: "fluid/object", status: 200, value: this }
|
|
61
|
-
: (0,
|
|
61
|
+
: (0, internal_3.create404Response)(request);
|
|
62
62
|
}
|
|
63
63
|
async initialize(existing) {
|
|
64
64
|
const doInitialization = async () => {
|
|
@@ -141,10 +141,10 @@ class TestFluidObjectFactory {
|
|
|
141
141
|
factoryEntriesMapForObject.set(id, factory);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
-
const runtimeClass = (0,
|
|
144
|
+
const runtimeClass = (0, internal_2.mixinRequestHandler)(async (request, rt) => {
|
|
145
145
|
// The provideEntryPoint callback below always returns FluidDataStoreRuntime, so this cast is safe
|
|
146
146
|
const dataObject = (await rt.entryPoint.get());
|
|
147
|
-
(0,
|
|
147
|
+
(0, internal_1.assert)(dataObject.request !== undefined, "entryPoint should have been initialized by now");
|
|
148
148
|
return dataObject.request(request);
|
|
149
149
|
});
|
|
150
150
|
const runtime = new runtimeClass(context, dataTypes, existing, async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testFluidObject.js","sourceRoot":"","sources":["../src/testFluidObject.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle, IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport {\n\tFluidDataStoreRuntime,\n\tFluidObjectHandle,\n\tmixinRequestHandler,\n} from \"@fluidframework/datastore\";\nimport { IChannelFactory, IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\nimport { ISharedMap, SharedMap } from \"@fluidframework/map\";\nimport {\n\tIFluidDataStoreChannel,\n\tIFluidDataStoreContext,\n\tIFluidDataStoreFactory,\n} from \"@fluidframework/runtime-definitions\";\nimport { create404Response } from \"@fluidframework/runtime-utils\";\nimport { ITestFluidObject } from \"./interfaces.js\";\n\n/**\n * A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.\n * The shared objects can be retrieved by passing the key of the entry to getSharedObject.\n * It exposes the IFluidDataStoreContext and IFluidDataStoreRuntime.\n * @internal\n */\nexport class TestFluidObject implements ITestFluidObject {\n\tpublic get ITestFluidObject() {\n\t\treturn this;\n\t}\n\n\tpublic get IFluidLoadable() {\n\t\treturn this;\n\t}\n\n\tpublic get handle(): IFluidHandle<this> {\n\t\treturn this.innerHandle;\n\t}\n\n\tpublic root!: ISharedMap;\n\tprivate readonly innerHandle: IFluidHandle<this>;\n\tprivate initializeP: Promise<void> | undefined;\n\n\t/**\n\t * Creates a new TestFluidObject.\n\t * @param runtime - The data store runtime.\n\t * @param context - The data store context.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. For each item in the list,\n\t * a shared object is created which can be retrieved by calling getSharedObject() with the id;\n\t */\n\tconstructor(\n\t\tpublic readonly runtime: IFluidDataStoreRuntime,\n\t\tpublic readonly channel: IFluidDataStoreChannel,\n\t\tpublic readonly context: IFluidDataStoreContext,\n\t\tprivate readonly factoryEntriesMap: Map<string, IChannelFactory>,\n\t) {\n\t\tthis.innerHandle = new FluidObjectHandle(this, \"\", runtime.objectsRoutingContext);\n\t}\n\n\t/**\n\t * Retrieves a shared object with the given id.\n\t * @param id - The id of the shared object to retrieve.\n\t */\n\tpublic async getSharedObject<T = any>(id: string): Promise<T> {\n\t\tif (this.factoryEntriesMap === undefined) {\n\t\t\tthrow new Error(\"Shared objects were not provided during creation.\");\n\t\t}\n\n\t\tfor (const key of this.factoryEntriesMap.keys()) {\n\t\t\tif (key === id) {\n\t\t\t\tconst handle = this.root.get<IFluidHandle>(id);\n\t\t\t\treturn handle?.get() as unknown as T;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(`Shared object with id ${id} not found.`);\n\t}\n\n\tpublic async request(request: IRequest): Promise<IResponse> {\n\t\treturn request.url === \"\" || request.url === \"/\" || request.url.startsWith(\"/?\")\n\t\t\t? { mimeType: \"fluid/object\", status: 200, value: this }\n\t\t\t: create404Response(request);\n\t}\n\n\tpublic async initialize(existing: boolean) {\n\t\tconst doInitialization = async () => {\n\t\t\tif (!existing) {\n\t\t\t\tthis.root = SharedMap.create(this.runtime, \"root\");\n\n\t\t\t\tthis.factoryEntriesMap.forEach(\n\t\t\t\t\t(sharedObjectFactory: IChannelFactory, key: string) => {\n\t\t\t\t\t\tconst sharedObject = this.runtime.createChannel(\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tsharedObjectFactory.type,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.root.set(key, sharedObject.handle);\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tthis.root.bindToContext();\n\t\t\t}\n\n\t\t\tthis.root = (await this.runtime.getChannel(\"root\")) as ISharedMap;\n\t\t};\n\n\t\tif (this.initializeP === undefined) {\n\t\t\tthis.initializeP = doInitialization();\n\t\t}\n\n\t\treturn this.initializeP;\n\t}\n}\n\n/**\n * @internal\n */\nexport type ChannelFactoryRegistry = Iterable<[string | undefined, IChannelFactory]>;\n\n/**\n * Creates a factory for a TestFluidObject with the given object factory entries. It creates a data store runtime\n * with the object factories in the entry list. All the entries with an id other than undefined are passed to the\n * Fluid object so that it can create a shared object for each.\n *\n * @example\n *\n * The following will create a Fluid object that creates and loads a SharedString and SharedDirectory.\n * It will add SparseMatrix to the data store's factory so that it can be created later.\n *\n * ```typescript\n * new TestFluidObjectFactory([\n * [ \"sharedString\", SharedString.getFactory() ],\n * [ \"sharedDirectory\", SharedDirectory.getFactory() ],\n * [ undefined, SparseMatrix.getFactory() ],\n * ]);\n * ```\n *\n * The SharedString and SharedDirectory can be retrieved via getSharedObject() on the TestFluidObject as follows:\n *\n * ```typescript\n * sharedString = testFluidObject.getSharedObject<SharedString>(\"sharedString\");\n * sharedDir = testFluidObject.getSharedObject<SharedDirectory>(\"sharedDirectory\");\n * ```\n *\n * @privateRemarks Beware that using this class generally forfeits some compatibility coverage\n * `describeCompat` aims to provide:\n * `SharedMap`s always reference the current version of SharedMap.\n * AB#4670 tracks improving this situation.\n * @internal\n */\nexport class TestFluidObjectFactory implements IFluidDataStoreFactory {\n\tpublic get IFluidDataStoreFactory() {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates a new TestFluidObjectFactory.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. It creates a data store runtime with each\n\t * IChannelFactory. Entries with string ids are passed to the Fluid object so that it can create a shared object\n\t * for it.\n\t */\n\tconstructor(\n\t\tprivate readonly factoryEntries: ChannelFactoryRegistry,\n\t\tpublic readonly type = \"TestFluidObjectFactory\",\n\t) {}\n\n\tpublic async instantiateDataStore(\n\t\tcontext: IFluidDataStoreContext,\n\t\texisting: boolean,\n\t): Promise<FluidDataStoreRuntime> {\n\t\tconst dataTypes = new Map<string, IChannelFactory>();\n\n\t\t// Add SharedMap's factory which will be used to create the root map.\n\t\tconst sharedMapFactory = SharedMap.getFactory();\n\t\tdataTypes.set(sharedMapFactory.type, sharedMapFactory);\n\n\t\t// Add the object factories to the list to be sent to data store runtime.\n\t\tfor (const [, factory] of this.factoryEntries) {\n\t\t\tdataTypes.set(factory.type, factory);\n\t\t}\n\n\t\t// Create a map from the factory entries with entries that don't have the id as undefined. This will be\n\t\t// passed to the Fluid object.\n\t\tconst factoryEntriesMapForObject = new Map<string, IChannelFactory>();\n\t\tfor (const [id, factory] of this.factoryEntries) {\n\t\t\tif (id !== undefined) {\n\t\t\t\tfactoryEntriesMapForObject.set(id, factory);\n\t\t\t}\n\t\t}\n\n\t\tconst runtimeClass = mixinRequestHandler(\n\t\t\tasync (request: IRequest, rt: FluidDataStoreRuntime) => {\n\t\t\t\t// The provideEntryPoint callback below always returns FluidDataStoreRuntime, so this cast is safe\n\t\t\t\tconst dataObject = (await rt.entryPoint.get()) as FluidDataStoreRuntime;\n\t\t\t\tassert(\n\t\t\t\t\tdataObject.request !== undefined,\n\t\t\t\t\t\"entryPoint should have been initialized by now\",\n\t\t\t\t);\n\t\t\t\treturn dataObject.request(request);\n\t\t\t},\n\t\t);\n\n\t\tconst runtime = new runtimeClass(context, dataTypes, existing, async () => {\n\t\t\tawait instance.initialize(true);\n\t\t\treturn instance;\n\t\t});\n\n\t\tconst instance: TestFluidObject = new TestFluidObject(\n\t\t\truntime, // runtime\n\t\t\truntime, // channel\n\t\t\tcontext,\n\t\t\tfactoryEntriesMapForObject,\n\t\t);\n\n\t\tif (!existing) {\n\t\t\tawait instance.initialize(false);\n\t\t}\n\n\t\treturn runtime;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"testFluidObject.js","sourceRoot":"","sources":["../src/testFluidObject.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle, IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\tFluidDataStoreRuntime,\n\tFluidObjectHandle,\n\tmixinRequestHandler,\n} from \"@fluidframework/datastore/internal\";\nimport { IChannelFactory, IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\nimport { ISharedMap, SharedMap } from \"@fluidframework/map\";\nimport {\n\tIFluidDataStoreChannel,\n\tIFluidDataStoreContext,\n\tIFluidDataStoreFactory,\n} from \"@fluidframework/runtime-definitions/internal\";\nimport { create404Response } from \"@fluidframework/runtime-utils/internal\";\n\nimport { ITestFluidObject } from \"./interfaces.js\";\n\n/**\n * A test Fluid object that will create a shared object for each key-value pair in the factoryEntries passed to load.\n * The shared objects can be retrieved by passing the key of the entry to getSharedObject.\n * It exposes the IFluidDataStoreContext and IFluidDataStoreRuntime.\n * @internal\n */\nexport class TestFluidObject implements ITestFluidObject {\n\tpublic get ITestFluidObject() {\n\t\treturn this;\n\t}\n\n\tpublic get IFluidLoadable() {\n\t\treturn this;\n\t}\n\n\tpublic get handle(): IFluidHandle<this> {\n\t\treturn this.innerHandle;\n\t}\n\n\tpublic root!: ISharedMap;\n\tprivate readonly innerHandle: IFluidHandle<this>;\n\tprivate initializeP: Promise<void> | undefined;\n\n\t/**\n\t * Creates a new TestFluidObject.\n\t * @param runtime - The data store runtime.\n\t * @param context - The data store context.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. For each item in the list,\n\t * a shared object is created which can be retrieved by calling getSharedObject() with the id;\n\t */\n\tconstructor(\n\t\tpublic readonly runtime: IFluidDataStoreRuntime,\n\t\tpublic readonly channel: IFluidDataStoreChannel,\n\t\tpublic readonly context: IFluidDataStoreContext,\n\t\tprivate readonly factoryEntriesMap: Map<string, IChannelFactory>,\n\t) {\n\t\tthis.innerHandle = new FluidObjectHandle(this, \"\", runtime.objectsRoutingContext);\n\t}\n\n\t/**\n\t * Retrieves a shared object with the given id.\n\t * @param id - The id of the shared object to retrieve.\n\t */\n\tpublic async getSharedObject<T = any>(id: string): Promise<T> {\n\t\tif (this.factoryEntriesMap === undefined) {\n\t\t\tthrow new Error(\"Shared objects were not provided during creation.\");\n\t\t}\n\n\t\tfor (const key of this.factoryEntriesMap.keys()) {\n\t\t\tif (key === id) {\n\t\t\t\tconst handle = this.root.get<IFluidHandle>(id);\n\t\t\t\treturn handle?.get() as unknown as T;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(`Shared object with id ${id} not found.`);\n\t}\n\n\tpublic async request(request: IRequest): Promise<IResponse> {\n\t\treturn request.url === \"\" || request.url === \"/\" || request.url.startsWith(\"/?\")\n\t\t\t? { mimeType: \"fluid/object\", status: 200, value: this }\n\t\t\t: create404Response(request);\n\t}\n\n\tpublic async initialize(existing: boolean) {\n\t\tconst doInitialization = async () => {\n\t\t\tif (!existing) {\n\t\t\t\tthis.root = SharedMap.create(this.runtime, \"root\");\n\n\t\t\t\tthis.factoryEntriesMap.forEach(\n\t\t\t\t\t(sharedObjectFactory: IChannelFactory, key: string) => {\n\t\t\t\t\t\tconst sharedObject = this.runtime.createChannel(\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tsharedObjectFactory.type,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.root.set(key, sharedObject.handle);\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tthis.root.bindToContext();\n\t\t\t}\n\n\t\t\tthis.root = (await this.runtime.getChannel(\"root\")) as ISharedMap;\n\t\t};\n\n\t\tif (this.initializeP === undefined) {\n\t\t\tthis.initializeP = doInitialization();\n\t\t}\n\n\t\treturn this.initializeP;\n\t}\n}\n\n/**\n * @internal\n */\nexport type ChannelFactoryRegistry = Iterable<[string | undefined, IChannelFactory]>;\n\n/**\n * Creates a factory for a TestFluidObject with the given object factory entries. It creates a data store runtime\n * with the object factories in the entry list. All the entries with an id other than undefined are passed to the\n * Fluid object so that it can create a shared object for each.\n *\n * @example\n *\n * The following will create a Fluid object that creates and loads a SharedString and SharedDirectory.\n * It will add SparseMatrix to the data store's factory so that it can be created later.\n *\n * ```typescript\n * new TestFluidObjectFactory([\n * [ \"sharedString\", SharedString.getFactory() ],\n * [ \"sharedDirectory\", SharedDirectory.getFactory() ],\n * [ undefined, SparseMatrix.getFactory() ],\n * ]);\n * ```\n *\n * The SharedString and SharedDirectory can be retrieved via getSharedObject() on the TestFluidObject as follows:\n *\n * ```typescript\n * sharedString = testFluidObject.getSharedObject<SharedString>(\"sharedString\");\n * sharedDir = testFluidObject.getSharedObject<SharedDirectory>(\"sharedDirectory\");\n * ```\n *\n * @privateRemarks Beware that using this class generally forfeits some compatibility coverage\n * `describeCompat` aims to provide:\n * `SharedMap`s always reference the current version of SharedMap.\n * AB#4670 tracks improving this situation.\n * @internal\n */\nexport class TestFluidObjectFactory implements IFluidDataStoreFactory {\n\tpublic get IFluidDataStoreFactory() {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates a new TestFluidObjectFactory.\n\t * @param factoryEntries - A list of id to IChannelFactory mapping. It creates a data store runtime with each\n\t * IChannelFactory. Entries with string ids are passed to the Fluid object so that it can create a shared object\n\t * for it.\n\t */\n\tconstructor(\n\t\tprivate readonly factoryEntries: ChannelFactoryRegistry,\n\t\tpublic readonly type = \"TestFluidObjectFactory\",\n\t) {}\n\n\tpublic async instantiateDataStore(\n\t\tcontext: IFluidDataStoreContext,\n\t\texisting: boolean,\n\t): Promise<FluidDataStoreRuntime> {\n\t\tconst dataTypes = new Map<string, IChannelFactory>();\n\n\t\t// Add SharedMap's factory which will be used to create the root map.\n\t\tconst sharedMapFactory = SharedMap.getFactory();\n\t\tdataTypes.set(sharedMapFactory.type, sharedMapFactory);\n\n\t\t// Add the object factories to the list to be sent to data store runtime.\n\t\tfor (const [, factory] of this.factoryEntries) {\n\t\t\tdataTypes.set(factory.type, factory);\n\t\t}\n\n\t\t// Create a map from the factory entries with entries that don't have the id as undefined. This will be\n\t\t// passed to the Fluid object.\n\t\tconst factoryEntriesMapForObject = new Map<string, IChannelFactory>();\n\t\tfor (const [id, factory] of this.factoryEntries) {\n\t\t\tif (id !== undefined) {\n\t\t\t\tfactoryEntriesMapForObject.set(id, factory);\n\t\t\t}\n\t\t}\n\n\t\tconst runtimeClass = mixinRequestHandler(\n\t\t\tasync (request: IRequest, rt: FluidDataStoreRuntime) => {\n\t\t\t\t// The provideEntryPoint callback below always returns FluidDataStoreRuntime, so this cast is safe\n\t\t\t\tconst dataObject = (await rt.entryPoint.get()) as FluidDataStoreRuntime;\n\t\t\t\tassert(\n\t\t\t\t\tdataObject.request !== undefined,\n\t\t\t\t\t\"entryPoint should have been initialized by now\",\n\t\t\t\t);\n\t\t\t\treturn dataObject.request(request);\n\t\t\t},\n\t\t);\n\n\t\tconst runtime = new runtimeClass(context, dataTypes, existing, async () => {\n\t\t\tawait instance.initialize(true);\n\t\t\treturn instance;\n\t\t});\n\n\t\tconst instance: TestFluidObject = new TestFluidObject(\n\t\t\truntime, // runtime\n\t\t\truntime, // channel\n\t\t\tcontext,\n\t\t\tfactoryEntriesMapForObject,\n\t\t);\n\n\t\tif (!existing) {\n\t\t\tawait instance.initialize(false);\n\t\t}\n\n\t\treturn runtime;\n\t}\n}\n"]}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { ITestDriver } from "@fluid-internal/test-driver-definitions";
|
|
6
|
+
import { IContainer, IFluidCodeDetails, IHostLoader } from "@fluidframework/container-definitions/internal";
|
|
7
|
+
import { ILoaderProps, Loader } from "@fluidframework/container-loader/internal";
|
|
8
|
+
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
|
|
8
9
|
import { IRequestHeader, ITelemetryBaseEvent, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
9
|
-
import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions";
|
|
10
|
+
import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions/internal";
|
|
10
11
|
import { type ITelemetryGenericEventExt } from "@fluidframework/telemetry-utils";
|
|
11
|
-
import {
|
|
12
|
+
import { type ITelemetryLoggerPropertyBags } from "@fluidframework/telemetry-utils/internal";
|
|
12
13
|
import { fluidEntryPoint } from "./localCodeLoader.js";
|
|
13
14
|
import { ChannelFactoryRegistry } from "./testFluidObject.js";
|
|
14
15
|
/**
|
|
@@ -43,7 +44,11 @@ export interface ITestObjectProvider {
|
|
|
43
44
|
/**
|
|
44
45
|
* Logger used to track expected and unexpected events.
|
|
45
46
|
*/
|
|
46
|
-
logger:
|
|
47
|
+
logger: ITelemetryBaseLogger;
|
|
48
|
+
/**
|
|
49
|
+
* Logger used to track expected and unexpected events.
|
|
50
|
+
*/
|
|
51
|
+
tracker: IEventAndErrorTrackingLogger;
|
|
47
52
|
/**
|
|
48
53
|
* Used to create a url for the created container with any data store path given in the relative url.
|
|
49
54
|
*/
|
|
@@ -111,7 +116,7 @@ export interface ITestObjectProvider {
|
|
|
111
116
|
* @param testContainerConfig - optional configuring the test Container
|
|
112
117
|
* @param requestHeader - optional headers to be supplied to the loader
|
|
113
118
|
*/
|
|
114
|
-
loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
|
|
119
|
+
loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader, pendingLocalState?: string): Promise<IContainer>;
|
|
115
120
|
/**
|
|
116
121
|
* Update the document ID from the resolved container's URL and reset the ID property
|
|
117
122
|
*/
|
|
@@ -176,6 +181,17 @@ export interface IDocumentIdStrategy {
|
|
|
176
181
|
*/
|
|
177
182
|
reset(): void;
|
|
178
183
|
}
|
|
184
|
+
/** @internal */
|
|
185
|
+
export interface IEventAndErrorTrackingLogger {
|
|
186
|
+
registerExpectedEvent: (...orderedExpectedEvents: ITelemetryGenericEventExt[]) => void;
|
|
187
|
+
reportAndClearTrackedEvents: () => {
|
|
188
|
+
expectedNotFound: {
|
|
189
|
+
index: number;
|
|
190
|
+
event: ITelemetryGenericEventExt;
|
|
191
|
+
}[];
|
|
192
|
+
unexpectedErrors: ITelemetryBaseEvent[];
|
|
193
|
+
};
|
|
194
|
+
}
|
|
179
195
|
/**
|
|
180
196
|
* This class tracks events. It allows specifying expected events, which will be looked for in order.
|
|
181
197
|
* It also tracks all unexpected errors.
|
|
@@ -183,23 +199,23 @@ export interface IDocumentIdStrategy {
|
|
|
183
199
|
* any expected events that have not occurred.
|
|
184
200
|
* @internal
|
|
185
201
|
*/
|
|
186
|
-
export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger {
|
|
187
|
-
private readonly baseLogger
|
|
202
|
+
export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger, IEventAndErrorTrackingLogger {
|
|
203
|
+
private readonly baseLogger?;
|
|
188
204
|
/**
|
|
189
205
|
* Even if these error events are logged, tests should still be allowed to pass
|
|
190
206
|
* Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
|
|
191
207
|
*/
|
|
192
208
|
private readonly allowedErrors;
|
|
193
|
-
constructor(baseLogger
|
|
209
|
+
constructor(baseLogger?: ITelemetryBaseLogger | undefined);
|
|
194
210
|
private readonly expectedEvents;
|
|
195
211
|
private readonly unexpectedErrors;
|
|
196
212
|
registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]): void;
|
|
197
213
|
send(event: ITelemetryBaseEvent): void;
|
|
198
214
|
reportAndClearTrackedEvents(): {
|
|
199
|
-
expectedNotFound:
|
|
215
|
+
expectedNotFound: {
|
|
200
216
|
index: number;
|
|
201
|
-
event: ITelemetryGenericEventExt
|
|
202
|
-
}
|
|
217
|
+
event: ITelemetryGenericEventExt;
|
|
218
|
+
}[];
|
|
203
219
|
unexpectedErrors: ITelemetryBaseEvent[];
|
|
204
220
|
};
|
|
205
221
|
}
|
|
@@ -225,6 +241,7 @@ export declare class TestObjectProvider implements ITestObjectProvider {
|
|
|
225
241
|
private _documentServiceFactory;
|
|
226
242
|
private _urlResolver;
|
|
227
243
|
private _logger;
|
|
244
|
+
private _tracker;
|
|
228
245
|
private readonly _documentIdStrategy;
|
|
229
246
|
private _documentCreated;
|
|
230
247
|
/**
|
|
@@ -244,8 +261,8 @@ export declare class TestObjectProvider implements ITestObjectProvider {
|
|
|
244
261
|
/**
|
|
245
262
|
* {@inheritDoc ITestObjectProvider.logger}
|
|
246
263
|
*/
|
|
247
|
-
get logger():
|
|
248
|
-
|
|
264
|
+
get logger(): ITelemetryBaseLogger;
|
|
265
|
+
get tracker(): EventAndErrorTrackingLogger;
|
|
249
266
|
/**
|
|
250
267
|
* {@inheritDoc ITestObjectProvider.documentServiceFactory}
|
|
251
268
|
*/
|
|
@@ -298,7 +315,7 @@ export declare class TestObjectProvider implements ITestObjectProvider {
|
|
|
298
315
|
/**
|
|
299
316
|
* {@inheritDoc ITestObjectProvider.loadTestContainer}
|
|
300
317
|
*/
|
|
301
|
-
loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
|
|
318
|
+
loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader, pendingLocalState?: string): Promise<IContainer>;
|
|
302
319
|
/**
|
|
303
320
|
* {@inheritDoc ITestObjectProvider.reset}
|
|
304
321
|
*/
|
|
@@ -329,12 +346,14 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
|
|
|
329
346
|
private readonly driverForLoading;
|
|
330
347
|
private readonly createFluidEntryPointForCreating;
|
|
331
348
|
private readonly createFluidEntryPointForLoading;
|
|
349
|
+
private readonly telemetryProps?;
|
|
332
350
|
/**
|
|
333
351
|
* {@inheritDoc ITestObjectProvider."type"}
|
|
334
352
|
*/
|
|
335
353
|
readonly type = "TestObjectProviderWithVersionedLoad";
|
|
336
354
|
private _loaderContainerTracker;
|
|
337
355
|
private _logger;
|
|
356
|
+
private _tracker;
|
|
338
357
|
private readonly _documentIdStrategy;
|
|
339
358
|
private _documentServiceFactory;
|
|
340
359
|
private _urlResolver;
|
|
@@ -346,11 +365,12 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
|
|
|
346
365
|
* subsequent loads use the load APIs.
|
|
347
366
|
*/
|
|
348
367
|
private useCreateApi;
|
|
349
|
-
constructor(LoaderConstructorForCreating: typeof Loader, LoaderConstructorForLoading: typeof Loader, driverForCreating: ITestDriver, driverForLoading: ITestDriver, createFluidEntryPointForCreating: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, createFluidEntryPointForLoading: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint);
|
|
368
|
+
constructor(LoaderConstructorForCreating: typeof Loader, LoaderConstructorForLoading: typeof Loader, driverForCreating: ITestDriver, driverForLoading: ITestDriver, createFluidEntryPointForCreating: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, createFluidEntryPointForLoading: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, telemetryProps?: ITelemetryLoggerPropertyBags | undefined);
|
|
350
369
|
/**
|
|
351
370
|
* {@inheritDoc ITestObjectProvider.logger}
|
|
352
371
|
*/
|
|
353
|
-
get logger():
|
|
372
|
+
get logger(): ITelemetryBaseLogger;
|
|
373
|
+
get tracker(): EventAndErrorTrackingLogger;
|
|
354
374
|
/**
|
|
355
375
|
* {@inheritDoc ITestObjectProvider.documentServiceFactory}
|
|
356
376
|
*/
|
|
@@ -413,7 +433,7 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
|
|
|
413
433
|
/**
|
|
414
434
|
* {@inheritDoc ITestObjectProvider.loadTestContainer}
|
|
415
435
|
*/
|
|
416
|
-
loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
|
|
436
|
+
loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader, pendingLocalState?: string): Promise<IContainer>;
|
|
417
437
|
/**
|
|
418
438
|
* {@inheritDoc ITestObjectProvider.reset}
|
|
419
439
|
*/
|
|
@@ -435,5 +455,5 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
|
|
|
435
455
|
/**
|
|
436
456
|
* @internal
|
|
437
457
|
*/
|
|
438
|
-
export declare function getUnexpectedLogErrorException(logger:
|
|
458
|
+
export declare function getUnexpectedLogErrorException(logger: IEventAndErrorTrackingLogger | undefined, prefix?: string): Error | undefined;
|
|
439
459
|
//# sourceMappingURL=testObjectProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testObjectProvider.d.ts","sourceRoot":"","sources":["../src/testObjectProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"testObjectProvider.d.ts","sourceRoot":"","sources":["../src/testObjectProvider.ts"],"names":[],"mappings":"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"}
|