@fluidframework/test-utils 2.0.0-dev-rc.3.0.0.253463 → 2.0.0-dev-rc.3.0.0.254513
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 +33 -13
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loaderContainerTracker.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/test-utils-alpha.d.ts +3 -0
- package/dist/test-utils-beta.d.ts +5 -0
- package/dist/test-utils-public.d.ts +5 -0
- package/dist/test-utils-untrimmed.d.ts +36 -15
- package/dist/testContainerRuntimeFactory.js +1 -1
- package/dist/testContainerRuntimeFactory.js.map +1 -1
- package/dist/testObjectProvider.d.ts +35 -15
- package/dist/testObjectProvider.d.ts.map +1 -1
- package/dist/testObjectProvider.js +61 -44
- package/dist/testObjectProvider.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/loaderContainerTracker.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/test-utils-alpha.d.ts +3 -0
- package/lib/test-utils-beta.d.ts +5 -0
- package/lib/test-utils-public.d.ts +5 -0
- package/lib/test-utils-untrimmed.d.ts +36 -15
- package/lib/testContainerRuntimeFactory.js +1 -1
- package/lib/testContainerRuntimeFactory.js.map +1 -1
- package/lib/testObjectProvider.d.ts +35 -15
- package/lib/testObjectProvider.d.ts.map +1 -1
- package/lib/testObjectProvider.js +55 -38
- package/lib/testObjectProvider.js.map +1 -1
- package/package.json +27 -24
- package/src/index.ts +1 -0
- package/src/loaderContainerTracker.ts +1 -1
- package/src/packageVersion.ts +1 -1
- package/src/testContainerRuntimeFactory.ts +1 -1
- package/src/testObjectProvider.ts +116 -64
|
@@ -9,6 +9,7 @@ import { IContainerRuntimeOptions } from "@fluidframework/container-runtime/inte
|
|
|
9
9
|
import { IRequestHeader, ITelemetryBaseEvent, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
10
10
|
import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions/internal";
|
|
11
11
|
import { type ITelemetryGenericEventExt } from "@fluidframework/telemetry-utils";
|
|
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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"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
5
6
|
import { waitContainerToCatchUp as waitContainerToCatchUp_original, } from "@fluidframework/container-loader/internal";
|
|
6
|
-
import { createChildLogger, createMultiSinkLogger } from "@fluidframework/telemetry-utils/internal";
|
|
7
|
+
import { createChildLogger, createMultiSinkLogger, } from "@fluidframework/telemetry-utils/internal";
|
|
7
8
|
import { v4 as uuid } from "uuid";
|
|
8
9
|
import { LoaderContainerTracker } from "./loaderContainerTracker.js";
|
|
9
10
|
import { LocalCodeLoader } from "./localCodeLoader.js";
|
|
@@ -88,24 +89,26 @@ export class EventAndErrorTrackingLogger {
|
|
|
88
89
|
this.expectedEvents.push(...orderedExpectedEvents.map((event, index) => ({ index, event })));
|
|
89
90
|
}
|
|
90
91
|
send(event) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
if (this.expectedEvents.length > 0) {
|
|
93
|
+
const ee = this.expectedEvents[0].event;
|
|
94
|
+
if (ee.eventName === event.eventName) {
|
|
95
|
+
let matches = true;
|
|
96
|
+
for (const key of Object.keys(ee)) {
|
|
97
|
+
if (ee[key] !== event[key]) {
|
|
98
|
+
matches = false;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
98
101
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
if (matches) {
|
|
103
|
+
// we found an expected event
|
|
104
|
+
// so remove it from the list of expected events
|
|
105
|
+
// and if it is an error, change it to generic
|
|
106
|
+
// this helps keep our telemetry clear of
|
|
107
|
+
// expected errors.
|
|
108
|
+
this.expectedEvents.shift();
|
|
109
|
+
if (event.category === "error") {
|
|
110
|
+
event.category = "generic";
|
|
111
|
+
}
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
}
|
|
@@ -119,7 +122,7 @@ export class EventAndErrorTrackingLogger {
|
|
|
119
122
|
event.category = "generic";
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
|
-
this.baseLogger
|
|
125
|
+
this.baseLogger?.send(event);
|
|
123
126
|
}
|
|
124
127
|
reportAndClearTrackedEvents() {
|
|
125
128
|
const expectedNotFound = this.expectedEvents.splice(0, this.expectedEvents.length);
|
|
@@ -166,22 +169,26 @@ export class TestObjectProvider {
|
|
|
166
169
|
*/
|
|
167
170
|
get logger() {
|
|
168
171
|
if (this._logger === undefined) {
|
|
169
|
-
this.
|
|
170
|
-
|
|
172
|
+
this._tracker = new EventAndErrorTrackingLogger(getTestLogger?.());
|
|
173
|
+
this._logger = createChildLogger({
|
|
174
|
+
logger: this._tracker,
|
|
171
175
|
properties: {
|
|
172
176
|
all: {
|
|
177
|
+
testType: this.type,
|
|
173
178
|
driverType: this.driver.type,
|
|
174
179
|
driverEndpointName: this.driver.endpointName,
|
|
175
180
|
driverTenantName: this.driver.tenantName,
|
|
176
181
|
driverUserIndex: this.driver.userIndex,
|
|
177
182
|
},
|
|
178
183
|
},
|
|
179
|
-
})
|
|
184
|
+
});
|
|
180
185
|
}
|
|
181
186
|
return this._logger;
|
|
182
187
|
}
|
|
183
|
-
|
|
184
|
-
this.
|
|
188
|
+
get tracker() {
|
|
189
|
+
void this.logger;
|
|
190
|
+
assert(this._tracker !== undefined, "should be initialized");
|
|
191
|
+
return this._tracker;
|
|
185
192
|
}
|
|
186
193
|
/**
|
|
187
194
|
* {@inheritDoc ITestObjectProvider.documentServiceFactory}
|
|
@@ -279,11 +286,11 @@ export class TestObjectProvider {
|
|
|
279
286
|
const loader = this.createLoader([[defaultCodeDetails, entryPoint]], loaderProps);
|
|
280
287
|
return this.resolveContainer(loader, requestHeader);
|
|
281
288
|
}
|
|
282
|
-
async resolveContainer(loader, headers) {
|
|
289
|
+
async resolveContainer(loader, headers, pendingLocalState) {
|
|
283
290
|
return loader.resolve({
|
|
284
291
|
url: await this.driver.createContainerUrl(this.documentId),
|
|
285
292
|
headers,
|
|
286
|
-
});
|
|
293
|
+
}, pendingLocalState);
|
|
287
294
|
}
|
|
288
295
|
/**
|
|
289
296
|
* {@inheritDoc ITestObjectProvider.makeTestLoader}
|
|
@@ -309,9 +316,9 @@ export class TestObjectProvider {
|
|
|
309
316
|
/**
|
|
310
317
|
* {@inheritDoc ITestObjectProvider.loadTestContainer}
|
|
311
318
|
*/
|
|
312
|
-
async loadTestContainer(testContainerConfig, requestHeader) {
|
|
319
|
+
async loadTestContainer(testContainerConfig, requestHeader, pendingLocalState) {
|
|
313
320
|
const loader = this.makeTestLoader(testContainerConfig);
|
|
314
|
-
const container = await this.resolveContainer(loader, requestHeader);
|
|
321
|
+
const container = await this.resolveContainer(loader, requestHeader, pendingLocalState);
|
|
315
322
|
await this.waitContainerToCatchUp(container);
|
|
316
323
|
return container;
|
|
317
324
|
}
|
|
@@ -323,11 +330,12 @@ export class TestObjectProvider {
|
|
|
323
330
|
this._documentServiceFactory = undefined;
|
|
324
331
|
this._urlResolver = undefined;
|
|
325
332
|
this._documentIdStrategy.reset();
|
|
326
|
-
const logError = getUnexpectedLogErrorException(this.
|
|
333
|
+
const logError = getUnexpectedLogErrorException(this._tracker);
|
|
327
334
|
if (logError) {
|
|
328
335
|
throw logError;
|
|
329
336
|
}
|
|
330
337
|
this._logger = undefined;
|
|
338
|
+
this._tracker = undefined;
|
|
331
339
|
this._documentCreated = false;
|
|
332
340
|
}
|
|
333
341
|
/**
|
|
@@ -366,13 +374,14 @@ export class TestObjectProvider {
|
|
|
366
374
|
* @internal
|
|
367
375
|
*/
|
|
368
376
|
export class TestObjectProviderWithVersionedLoad {
|
|
369
|
-
constructor(LoaderConstructorForCreating, LoaderConstructorForLoading, driverForCreating, driverForLoading, createFluidEntryPointForCreating, createFluidEntryPointForLoading) {
|
|
377
|
+
constructor(LoaderConstructorForCreating, LoaderConstructorForLoading, driverForCreating, driverForLoading, createFluidEntryPointForCreating, createFluidEntryPointForLoading, telemetryProps) {
|
|
370
378
|
this.LoaderConstructorForCreating = LoaderConstructorForCreating;
|
|
371
379
|
this.LoaderConstructorForLoading = LoaderConstructorForLoading;
|
|
372
380
|
this.driverForCreating = driverForCreating;
|
|
373
381
|
this.driverForLoading = driverForLoading;
|
|
374
382
|
this.createFluidEntryPointForCreating = createFluidEntryPointForCreating;
|
|
375
383
|
this.createFluidEntryPointForLoading = createFluidEntryPointForLoading;
|
|
384
|
+
this.telemetryProps = telemetryProps;
|
|
376
385
|
/**
|
|
377
386
|
* {@inheritDoc ITestObjectProvider."type"}
|
|
378
387
|
*/
|
|
@@ -394,12 +403,19 @@ export class TestObjectProviderWithVersionedLoad {
|
|
|
394
403
|
*/
|
|
395
404
|
get logger() {
|
|
396
405
|
if (this._logger === undefined) {
|
|
397
|
-
this.
|
|
398
|
-
|
|
399
|
-
|
|
406
|
+
this._tracker = new EventAndErrorTrackingLogger(getTestLogger?.());
|
|
407
|
+
this._logger = createChildLogger({
|
|
408
|
+
logger: this._tracker,
|
|
409
|
+
properties: this.telemetryProps,
|
|
410
|
+
});
|
|
400
411
|
}
|
|
401
412
|
return this._logger;
|
|
402
413
|
}
|
|
414
|
+
get tracker() {
|
|
415
|
+
void this.logger;
|
|
416
|
+
assert(this._tracker !== undefined, "should be initialized");
|
|
417
|
+
return this._tracker;
|
|
418
|
+
}
|
|
403
419
|
/**
|
|
404
420
|
* {@inheritDoc ITestObjectProvider.documentServiceFactory}
|
|
405
421
|
*/
|
|
@@ -536,12 +552,12 @@ export class TestObjectProviderWithVersionedLoad {
|
|
|
536
552
|
const loader = this.createLoader([[defaultCodeDetails, entryPoint]], loaderProps);
|
|
537
553
|
return this.resolveContainer(loader, requestHeader, driver);
|
|
538
554
|
}
|
|
539
|
-
async resolveContainer(loader, headers, driver) {
|
|
555
|
+
async resolveContainer(loader, headers, driver, pendingLocalState) {
|
|
540
556
|
return loader.resolve({
|
|
541
557
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
542
558
|
url: await driver.createContainerUrl(this.documentId),
|
|
543
559
|
headers,
|
|
544
|
-
});
|
|
560
|
+
}, pendingLocalState);
|
|
545
561
|
}
|
|
546
562
|
/**
|
|
547
563
|
* {@inheritDoc ITestObjectProvider.makeTestLoader}
|
|
@@ -567,11 +583,11 @@ export class TestObjectProviderWithVersionedLoad {
|
|
|
567
583
|
/**
|
|
568
584
|
* {@inheritDoc ITestObjectProvider.loadTestContainer}
|
|
569
585
|
*/
|
|
570
|
-
async loadTestContainer(testContainerConfig, requestHeader) {
|
|
586
|
+
async loadTestContainer(testContainerConfig, requestHeader, pendingLocalState) {
|
|
571
587
|
// Keep track of which Loader we are about to use so we can pass the correct driver through
|
|
572
588
|
const driver = this.useCreateApi ? this.driverForCreating : this.driverForLoading;
|
|
573
589
|
const loader = this.makeTestLoader(testContainerConfig);
|
|
574
|
-
const container = await this.resolveContainer(loader, requestHeader, driver);
|
|
590
|
+
const container = await this.resolveContainer(loader, requestHeader, driver, pendingLocalState);
|
|
575
591
|
await this.waitContainerToCatchUp(container);
|
|
576
592
|
return container;
|
|
577
593
|
}
|
|
@@ -582,10 +598,11 @@ export class TestObjectProviderWithVersionedLoad {
|
|
|
582
598
|
this.useCreateApi = true;
|
|
583
599
|
this._loaderContainerTracker.reset();
|
|
584
600
|
this._logger = undefined;
|
|
601
|
+
this._tracker = undefined;
|
|
585
602
|
this._documentServiceFactory = undefined;
|
|
586
603
|
this._urlResolver = undefined;
|
|
587
604
|
this._documentIdStrategy.reset();
|
|
588
|
-
const logError = getUnexpectedLogErrorException(this.
|
|
605
|
+
const logError = getUnexpectedLogErrorException(this._tracker);
|
|
589
606
|
if (logError) {
|
|
590
607
|
throw logError;
|
|
591
608
|
}
|