@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
package/src/localLoader.ts
CHANGED
|
@@ -9,10 +9,11 @@ import {
|
|
|
9
9
|
IFluidCodeDetails,
|
|
10
10
|
IHostLoader,
|
|
11
11
|
ILoaderOptions,
|
|
12
|
-
} from "@fluidframework/container-definitions";
|
|
13
|
-
import { Loader } from "@fluidframework/container-loader";
|
|
12
|
+
} from "@fluidframework/container-definitions/internal";
|
|
13
|
+
import { Loader } from "@fluidframework/container-loader/internal";
|
|
14
14
|
import { IRequest, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
15
|
-
import { IDocumentServiceFactory, IUrlResolver } from "@fluidframework/driver-definitions";
|
|
15
|
+
import { IDocumentServiceFactory, IUrlResolver } from "@fluidframework/driver-definitions/internal";
|
|
16
|
+
|
|
16
17
|
import { LocalCodeLoader, fluidEntryPoint } from "./localCodeLoader.js";
|
|
17
18
|
|
|
18
19
|
/**
|
package/src/packageVersion.ts
CHANGED
package/src/retry.ts
CHANGED
|
@@ -3,27 +3,30 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IContainerContext, IRuntime } from "@fluidframework/container-definitions";
|
|
6
|
+
import { IContainerContext, IRuntime } from "@fluidframework/container-definitions/internal";
|
|
7
7
|
import {
|
|
8
8
|
ContainerRuntime,
|
|
9
9
|
DefaultSummaryConfiguration,
|
|
10
10
|
IContainerRuntimeOptions,
|
|
11
|
-
} from "@fluidframework/container-runtime";
|
|
12
|
-
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
|
|
11
|
+
} from "@fluidframework/container-runtime/internal";
|
|
12
|
+
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
|
|
13
13
|
import {
|
|
14
14
|
FluidObject,
|
|
15
15
|
IFluidHandleContext,
|
|
16
16
|
IRequest,
|
|
17
17
|
IResponse,
|
|
18
18
|
} from "@fluidframework/core-interfaces";
|
|
19
|
-
import { assert } from "@fluidframework/core-utils";
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
20
|
+
import {
|
|
21
|
+
RuntimeRequestHandler,
|
|
22
|
+
// eslint-disable-next-line import/no-deprecated
|
|
23
|
+
buildRuntimeRequestHandler,
|
|
24
|
+
} from "@fluidframework/request-handler/internal";
|
|
22
25
|
import {
|
|
23
26
|
IFluidDataStoreFactory,
|
|
24
27
|
NamedFluidDataStoreRegistryEntries,
|
|
25
|
-
} from "@fluidframework/runtime-definitions";
|
|
26
|
-
import { RequestParser, RuntimeFactoryHelper } from "@fluidframework/runtime-utils";
|
|
28
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
29
|
+
import { RequestParser, RuntimeFactoryHelper } from "@fluidframework/runtime-utils/internal";
|
|
27
30
|
|
|
28
31
|
interface backCompat_IFluidRouter {
|
|
29
32
|
IFluidRouter?: backCompat_IFluidRouter;
|
|
@@ -89,7 +92,7 @@ export const createTestContainerRuntimeFactory = (
|
|
|
89
92
|
const rootContext =
|
|
90
93
|
"createDetachedRootDataStore" in runtime
|
|
91
94
|
? (runtime as any).createDetachedRootDataStore([this.type], "default")
|
|
92
|
-
: runtime.createDetachedDataStore([this.type]
|
|
95
|
+
: runtime.createDetachedDataStore([this.type]);
|
|
93
96
|
|
|
94
97
|
const rootRuntime = await this.dataStoreFactory.instantiateDataStore(
|
|
95
98
|
rootContext,
|
|
@@ -130,6 +133,7 @@ export const createTestContainerRuntimeFactory = (
|
|
|
130
133
|
["default", Promise.resolve(this.dataStoreFactory)],
|
|
131
134
|
[this.type, Promise.resolve(this.dataStoreFactory)],
|
|
132
135
|
],
|
|
136
|
+
// eslint-disable-next-line import/no-deprecated
|
|
133
137
|
buildRuntimeRequestHandler(
|
|
134
138
|
backCompat_DefaultRouteRequestHandler("default"),
|
|
135
139
|
...this.requestHandlers,
|
|
@@ -163,6 +167,7 @@ export const createTestContainerRuntimeFactory = (
|
|
|
163
167
|
["default", Promise.resolve(this.dataStoreFactory)],
|
|
164
168
|
[this.type, Promise.resolve(this.dataStoreFactory)],
|
|
165
169
|
],
|
|
170
|
+
// eslint-disable-next-line import/no-deprecated
|
|
166
171
|
requestHandler: buildRuntimeRequestHandler(
|
|
167
172
|
getDefaultObject,
|
|
168
173
|
...this.requestHandlers,
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct";
|
|
7
|
-
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime";
|
|
8
|
-
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
|
|
6
|
+
import { ContainerRuntimeFactoryWithDefaultDataStore } from "@fluidframework/aqueduct/internal";
|
|
7
|
+
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
|
|
8
|
+
import { IContainerRuntime } from "@fluidframework/container-runtime-definitions/internal";
|
|
9
9
|
import { FluidObject } from "@fluidframework/core-interfaces";
|
|
10
|
-
import { RuntimeRequestHandler } from "@fluidframework/request-handler";
|
|
10
|
+
import { RuntimeRequestHandler } from "@fluidframework/request-handler/internal";
|
|
11
11
|
import {
|
|
12
12
|
IFluidDataStoreFactory,
|
|
13
13
|
NamedFluidDataStoreRegistryEntries,
|
|
14
|
-
} from "@fluidframework/runtime-definitions";
|
|
14
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
15
15
|
|
|
16
16
|
const getDefaultFluidObject = async (runtime: IContainerRuntime) => {
|
|
17
17
|
const entryPoint = await runtime.getAliasedDataStoreEntryPoint("default");
|
package/src/testFluidObject.ts
CHANGED
|
@@ -4,20 +4,21 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { IFluidHandle, IRequest, IResponse } from "@fluidframework/core-interfaces";
|
|
7
|
-
import { assert } from "@fluidframework/core-utils";
|
|
7
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
8
8
|
import {
|
|
9
9
|
FluidDataStoreRuntime,
|
|
10
10
|
FluidObjectHandle,
|
|
11
11
|
mixinRequestHandler,
|
|
12
|
-
} from "@fluidframework/datastore";
|
|
12
|
+
} from "@fluidframework/datastore/internal";
|
|
13
13
|
import { IChannelFactory, IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
|
|
14
14
|
import { ISharedMap, SharedMap } from "@fluidframework/map";
|
|
15
15
|
import {
|
|
16
16
|
IFluidDataStoreChannel,
|
|
17
17
|
IFluidDataStoreContext,
|
|
18
18
|
IFluidDataStoreFactory,
|
|
19
|
-
} from "@fluidframework/runtime-definitions";
|
|
20
|
-
import { create404Response } from "@fluidframework/runtime-utils";
|
|
19
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
20
|
+
import { create404Response } from "@fluidframework/runtime-utils/internal";
|
|
21
|
+
|
|
21
22
|
import { ITestFluidObject } from "./interfaces.js";
|
|
22
23
|
|
|
23
24
|
/**
|
|
@@ -3,18 +3,20 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { ITestDriver, TestDriverTypes } from "@fluid-internal/test-driver-definitions";
|
|
6
8
|
import {
|
|
7
9
|
IContainer,
|
|
8
10
|
IFluidCodeDetails,
|
|
9
11
|
IHostLoader,
|
|
10
12
|
ILoader,
|
|
11
|
-
} from "@fluidframework/container-definitions";
|
|
13
|
+
} from "@fluidframework/container-definitions/internal";
|
|
12
14
|
import {
|
|
13
15
|
ILoaderProps,
|
|
14
16
|
Loader,
|
|
15
17
|
waitContainerToCatchUp as waitContainerToCatchUp_original,
|
|
16
|
-
} from "@fluidframework/container-loader";
|
|
17
|
-
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime";
|
|
18
|
+
} from "@fluidframework/container-loader/internal";
|
|
19
|
+
import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/internal";
|
|
18
20
|
import {
|
|
19
21
|
IRequestHeader,
|
|
20
22
|
ITelemetryBaseEvent,
|
|
@@ -24,14 +26,15 @@ import {
|
|
|
24
26
|
IDocumentServiceFactory,
|
|
25
27
|
IResolvedUrl,
|
|
26
28
|
IUrlResolver,
|
|
27
|
-
} from "@fluidframework/driver-definitions";
|
|
29
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
30
|
+
import { type ITelemetryGenericEventExt } from "@fluidframework/telemetry-utils";
|
|
28
31
|
import {
|
|
29
|
-
type ITelemetryGenericEventExt,
|
|
30
32
|
createChildLogger,
|
|
31
33
|
createMultiSinkLogger,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
type ITelemetryLoggerPropertyBags,
|
|
35
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
34
36
|
import { v4 as uuid } from "uuid";
|
|
37
|
+
|
|
35
38
|
import { LoaderContainerTracker } from "./loaderContainerTracker.js";
|
|
36
39
|
import { LocalCodeLoader, fluidEntryPoint } from "./localCodeLoader.js";
|
|
37
40
|
import { createAndAttachContainer } from "./localLoader.js";
|
|
@@ -79,7 +82,12 @@ export interface ITestObjectProvider {
|
|
|
79
82
|
/**
|
|
80
83
|
* Logger used to track expected and unexpected events.
|
|
81
84
|
*/
|
|
82
|
-
logger:
|
|
85
|
+
logger: ITelemetryBaseLogger;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Logger used to track expected and unexpected events.
|
|
89
|
+
*/
|
|
90
|
+
tracker: IEventAndErrorTrackingLogger;
|
|
83
91
|
|
|
84
92
|
/**
|
|
85
93
|
* Used to create a url for the created container with any data store path given in the relative url.
|
|
@@ -177,6 +185,7 @@ export interface ITestObjectProvider {
|
|
|
177
185
|
loadTestContainer(
|
|
178
186
|
testContainerConfig?: ITestContainerConfig,
|
|
179
187
|
requestHeader?: IRequestHeader,
|
|
188
|
+
pendingLocalState?: string,
|
|
180
189
|
): Promise<IContainer>;
|
|
181
190
|
|
|
182
191
|
/**
|
|
@@ -285,6 +294,15 @@ function getDocumentIdStrategy(type?: TestDriverTypes): IDocumentIdStrategy {
|
|
|
285
294
|
}
|
|
286
295
|
}
|
|
287
296
|
|
|
297
|
+
/** @internal */
|
|
298
|
+
export interface IEventAndErrorTrackingLogger {
|
|
299
|
+
registerExpectedEvent: (...orderedExpectedEvents: ITelemetryGenericEventExt[]) => void;
|
|
300
|
+
reportAndClearTrackedEvents: () => {
|
|
301
|
+
expectedNotFound: { index: number; event: ITelemetryGenericEventExt }[];
|
|
302
|
+
unexpectedErrors: ITelemetryBaseEvent[];
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
|
|
288
306
|
/**
|
|
289
307
|
* This class tracks events. It allows specifying expected events, which will be looked for in order.
|
|
290
308
|
* It also tracks all unexpected errors.
|
|
@@ -292,7 +310,9 @@ function getDocumentIdStrategy(type?: TestDriverTypes): IDocumentIdStrategy {
|
|
|
292
310
|
* any expected events that have not occurred.
|
|
293
311
|
* @internal
|
|
294
312
|
*/
|
|
295
|
-
export class EventAndErrorTrackingLogger
|
|
313
|
+
export class EventAndErrorTrackingLogger
|
|
314
|
+
implements ITelemetryBaseLogger, IEventAndErrorTrackingLogger
|
|
315
|
+
{
|
|
296
316
|
/**
|
|
297
317
|
* Even if these error events are logged, tests should still be allowed to pass
|
|
298
318
|
* Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
|
|
@@ -307,12 +327,9 @@ export class EventAndErrorTrackingLogger implements ITelemetryBaseLogger {
|
|
|
307
327
|
{ eventName: "fluid:telemetry:OpPerf:OpRoundtripTime" },
|
|
308
328
|
];
|
|
309
329
|
|
|
310
|
-
constructor(private readonly baseLogger
|
|
330
|
+
constructor(private readonly baseLogger?: ITelemetryBaseLogger) {}
|
|
311
331
|
|
|
312
|
-
private readonly expectedEvents:
|
|
313
|
-
| { index: number; event: ITelemetryGenericEventExt | undefined }
|
|
314
|
-
| undefined
|
|
315
|
-
)[] = [];
|
|
332
|
+
private readonly expectedEvents: { index: number; event: ITelemetryGenericEventExt }[] = [];
|
|
316
333
|
private readonly unexpectedErrors: ITelemetryBaseEvent[] = [];
|
|
317
334
|
|
|
318
335
|
public registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]) {
|
|
@@ -330,24 +347,26 @@ export class EventAndErrorTrackingLogger implements ITelemetryBaseLogger {
|
|
|
330
347
|
}
|
|
331
348
|
|
|
332
349
|
send(event: ITelemetryBaseEvent): void {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
350
|
+
if (this.expectedEvents.length > 0) {
|
|
351
|
+
const ee = this.expectedEvents[0].event;
|
|
352
|
+
if (ee.eventName === event.eventName) {
|
|
353
|
+
let matches = true;
|
|
354
|
+
for (const key of Object.keys(ee)) {
|
|
355
|
+
if (ee[key] !== event[key]) {
|
|
356
|
+
matches = false;
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
340
359
|
}
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
360
|
+
if (matches) {
|
|
361
|
+
// we found an expected event
|
|
362
|
+
// so remove it from the list of expected events
|
|
363
|
+
// and if it is an error, change it to generic
|
|
364
|
+
// this helps keep our telemetry clear of
|
|
365
|
+
// expected errors.
|
|
366
|
+
this.expectedEvents.shift();
|
|
367
|
+
if (event.category === "error") {
|
|
368
|
+
event.category = "generic";
|
|
369
|
+
}
|
|
351
370
|
}
|
|
352
371
|
}
|
|
353
372
|
}
|
|
@@ -364,7 +383,7 @@ export class EventAndErrorTrackingLogger implements ITelemetryBaseLogger {
|
|
|
364
383
|
}
|
|
365
384
|
}
|
|
366
385
|
|
|
367
|
-
this.baseLogger
|
|
386
|
+
this.baseLogger?.send(event);
|
|
368
387
|
}
|
|
369
388
|
|
|
370
389
|
public reportAndClearTrackedEvents() {
|
|
@@ -389,7 +408,8 @@ export class TestObjectProvider implements ITestObjectProvider {
|
|
|
389
408
|
private _loaderContainerTracker = new LoaderContainerTracker();
|
|
390
409
|
private _documentServiceFactory: IDocumentServiceFactory | undefined;
|
|
391
410
|
private _urlResolver: IUrlResolver | undefined;
|
|
392
|
-
private _logger:
|
|
411
|
+
private _logger: ITelemetryBaseLogger | undefined;
|
|
412
|
+
private _tracker: EventAndErrorTrackingLogger | undefined;
|
|
393
413
|
private readonly _documentIdStrategy: IDocumentIdStrategy;
|
|
394
414
|
// Since documentId doesn't change we can only create/make one container. Call the load functions instead.
|
|
395
415
|
private _documentCreated = false;
|
|
@@ -418,27 +438,29 @@ export class TestObjectProvider implements ITestObjectProvider {
|
|
|
418
438
|
/**
|
|
419
439
|
* {@inheritDoc ITestObjectProvider.logger}
|
|
420
440
|
*/
|
|
421
|
-
public get logger():
|
|
441
|
+
public get logger(): ITelemetryBaseLogger {
|
|
422
442
|
if (this._logger === undefined) {
|
|
423
|
-
this.
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
443
|
+
this._tracker = new EventAndErrorTrackingLogger(getTestLogger?.());
|
|
444
|
+
this._logger = createChildLogger({
|
|
445
|
+
logger: this._tracker,
|
|
446
|
+
properties: {
|
|
447
|
+
all: {
|
|
448
|
+
testType: this.type,
|
|
449
|
+
driverType: this.driver.type,
|
|
450
|
+
driverEndpointName: this.driver.endpointName,
|
|
451
|
+
driverTenantName: this.driver.tenantName,
|
|
452
|
+
driverUserIndex: this.driver.userIndex,
|
|
433
453
|
},
|
|
434
|
-
}
|
|
435
|
-
);
|
|
454
|
+
},
|
|
455
|
+
});
|
|
436
456
|
}
|
|
437
457
|
return this._logger;
|
|
438
458
|
}
|
|
439
459
|
|
|
440
|
-
|
|
441
|
-
this.
|
|
460
|
+
public get tracker() {
|
|
461
|
+
void this.logger;
|
|
462
|
+
assert(this._tracker !== undefined, "should be initialized");
|
|
463
|
+
return this._tracker;
|
|
442
464
|
}
|
|
443
465
|
|
|
444
466
|
/**
|
|
@@ -569,11 +591,18 @@ export class TestObjectProvider implements ITestObjectProvider {
|
|
|
569
591
|
return this.resolveContainer(loader, requestHeader);
|
|
570
592
|
}
|
|
571
593
|
|
|
572
|
-
private async resolveContainer(
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
594
|
+
private async resolveContainer(
|
|
595
|
+
loader: ILoader,
|
|
596
|
+
headers?: IRequestHeader,
|
|
597
|
+
pendingLocalState?: string,
|
|
598
|
+
) {
|
|
599
|
+
return loader.resolve(
|
|
600
|
+
{
|
|
601
|
+
url: await this.driver.createContainerUrl(this.documentId),
|
|
602
|
+
headers,
|
|
603
|
+
},
|
|
604
|
+
pendingLocalState,
|
|
605
|
+
);
|
|
577
606
|
}
|
|
578
607
|
|
|
579
608
|
/**
|
|
@@ -616,10 +645,11 @@ export class TestObjectProvider implements ITestObjectProvider {
|
|
|
616
645
|
public async loadTestContainer(
|
|
617
646
|
testContainerConfig?: ITestContainerConfig,
|
|
618
647
|
requestHeader?: IRequestHeader,
|
|
648
|
+
pendingLocalState?: string,
|
|
619
649
|
): Promise<IContainer> {
|
|
620
650
|
const loader = this.makeTestLoader(testContainerConfig);
|
|
621
651
|
|
|
622
|
-
const container = await this.resolveContainer(loader, requestHeader);
|
|
652
|
+
const container = await this.resolveContainer(loader, requestHeader, pendingLocalState);
|
|
623
653
|
await this.waitContainerToCatchUp(container);
|
|
624
654
|
|
|
625
655
|
return container;
|
|
@@ -633,11 +663,12 @@ export class TestObjectProvider implements ITestObjectProvider {
|
|
|
633
663
|
this._documentServiceFactory = undefined;
|
|
634
664
|
this._urlResolver = undefined;
|
|
635
665
|
this._documentIdStrategy.reset();
|
|
636
|
-
const logError = getUnexpectedLogErrorException(this.
|
|
666
|
+
const logError = getUnexpectedLogErrorException(this._tracker);
|
|
637
667
|
if (logError) {
|
|
638
668
|
throw logError;
|
|
639
669
|
}
|
|
640
670
|
this._logger = undefined;
|
|
671
|
+
this._tracker = undefined;
|
|
641
672
|
this._documentCreated = false;
|
|
642
673
|
}
|
|
643
674
|
|
|
@@ -687,7 +718,8 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
687
718
|
*/
|
|
688
719
|
public readonly type = "TestObjectProviderWithVersionedLoad";
|
|
689
720
|
private _loaderContainerTracker = new LoaderContainerTracker();
|
|
690
|
-
private _logger:
|
|
721
|
+
private _logger: ITelemetryBaseLogger | undefined;
|
|
722
|
+
private _tracker: EventAndErrorTrackingLogger | undefined;
|
|
691
723
|
private readonly _documentIdStrategy: IDocumentIdStrategy;
|
|
692
724
|
private _documentServiceFactory: IDocumentServiceFactory | undefined;
|
|
693
725
|
private _urlResolver: IUrlResolver | undefined;
|
|
@@ -713,6 +745,7 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
713
745
|
private readonly createFluidEntryPointForLoading: (
|
|
714
746
|
testContainerConfig?: ITestContainerConfig,
|
|
715
747
|
) => fluidEntryPoint,
|
|
748
|
+
private readonly telemetryProps?: ITelemetryLoggerPropertyBags,
|
|
716
749
|
) {
|
|
717
750
|
this._documentIdStrategy = getDocumentIdStrategy(driverForCreating.type);
|
|
718
751
|
}
|
|
@@ -720,17 +753,23 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
720
753
|
/**
|
|
721
754
|
* {@inheritDoc ITestObjectProvider.logger}
|
|
722
755
|
*/
|
|
723
|
-
public get logger()
|
|
756
|
+
public get logger() {
|
|
724
757
|
if (this._logger === undefined) {
|
|
725
|
-
this.
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
);
|
|
758
|
+
this._tracker = new EventAndErrorTrackingLogger(getTestLogger?.());
|
|
759
|
+
this._logger = createChildLogger({
|
|
760
|
+
logger: this._tracker,
|
|
761
|
+
properties: this.telemetryProps,
|
|
762
|
+
});
|
|
730
763
|
}
|
|
731
764
|
return this._logger;
|
|
732
765
|
}
|
|
733
766
|
|
|
767
|
+
public get tracker() {
|
|
768
|
+
void this.logger;
|
|
769
|
+
assert(this._tracker !== undefined, "should be initialized");
|
|
770
|
+
return this._tracker;
|
|
771
|
+
}
|
|
772
|
+
|
|
734
773
|
/**
|
|
735
774
|
* {@inheritDoc ITestObjectProvider.documentServiceFactory}
|
|
736
775
|
*/
|
|
@@ -920,12 +959,16 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
920
959
|
loader: ILoader,
|
|
921
960
|
headers?: IRequestHeader,
|
|
922
961
|
driver?: ITestDriver,
|
|
962
|
+
pendingLocalState?: string,
|
|
923
963
|
) {
|
|
924
|
-
return loader.resolve(
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
964
|
+
return loader.resolve(
|
|
965
|
+
{
|
|
966
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
967
|
+
url: await driver!.createContainerUrl(this.documentId),
|
|
968
|
+
headers,
|
|
969
|
+
},
|
|
970
|
+
pendingLocalState,
|
|
971
|
+
);
|
|
929
972
|
}
|
|
930
973
|
|
|
931
974
|
/**
|
|
@@ -972,11 +1015,17 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
972
1015
|
public async loadTestContainer(
|
|
973
1016
|
testContainerConfig?: ITestContainerConfig,
|
|
974
1017
|
requestHeader?: IRequestHeader,
|
|
1018
|
+
pendingLocalState?: string,
|
|
975
1019
|
): Promise<IContainer> {
|
|
976
1020
|
// Keep track of which Loader we are about to use so we can pass the correct driver through
|
|
977
1021
|
const driver = this.useCreateApi ? this.driverForCreating : this.driverForLoading;
|
|
978
1022
|
const loader = this.makeTestLoader(testContainerConfig);
|
|
979
|
-
const container = await this.resolveContainer(
|
|
1023
|
+
const container = await this.resolveContainer(
|
|
1024
|
+
loader,
|
|
1025
|
+
requestHeader,
|
|
1026
|
+
driver,
|
|
1027
|
+
pendingLocalState,
|
|
1028
|
+
);
|
|
980
1029
|
await this.waitContainerToCatchUp(container);
|
|
981
1030
|
|
|
982
1031
|
return container;
|
|
@@ -989,10 +1038,11 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
989
1038
|
this.useCreateApi = true;
|
|
990
1039
|
this._loaderContainerTracker.reset();
|
|
991
1040
|
this._logger = undefined;
|
|
1041
|
+
this._tracker = undefined;
|
|
992
1042
|
this._documentServiceFactory = undefined;
|
|
993
1043
|
this._urlResolver = undefined;
|
|
994
1044
|
this._documentIdStrategy.reset();
|
|
995
|
-
const logError = getUnexpectedLogErrorException(this.
|
|
1045
|
+
const logError = getUnexpectedLogErrorException(this._tracker);
|
|
996
1046
|
if (logError) {
|
|
997
1047
|
throw logError;
|
|
998
1048
|
}
|
|
@@ -1038,7 +1088,7 @@ export class TestObjectProviderWithVersionedLoad implements ITestObjectProvider
|
|
|
1038
1088
|
* @internal
|
|
1039
1089
|
*/
|
|
1040
1090
|
export function getUnexpectedLogErrorException(
|
|
1041
|
-
logger:
|
|
1091
|
+
logger: IEventAndErrorTrackingLogger | undefined,
|
|
1042
1092
|
prefix?: string,
|
|
1043
1093
|
) {
|
|
1044
1094
|
if (logger === undefined) {
|
package/src/timeoutUtils.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, Deferred } from "@fluidframework/core-utils";
|
|
6
|
+
import { assert, Deferred } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import type * as Mocha from "mocha";
|
|
8
8
|
|
|
9
9
|
// @deprecated this value is no longer used
|