@fluidframework/test-utils 2.0.0-rc.1.0.4 → 2.0.0-rc.2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +4 -1
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +34 -0
  4. package/README.md +1 -1
  5. package/api-extractor-cjs.json +8 -0
  6. package/api-extractor-lint.json +1 -1
  7. package/api-extractor.json +1 -1
  8. package/api-report/test-utils.api.md +27 -9
  9. package/dist/DriverWrappers.d.ts +3 -0
  10. package/dist/DriverWrappers.d.ts.map +1 -1
  11. package/dist/DriverWrappers.js +3 -0
  12. package/dist/DriverWrappers.js.map +1 -1
  13. package/dist/TestConfigs.d.ts +14 -1
  14. package/dist/TestConfigs.d.ts.map +1 -1
  15. package/dist/TestConfigs.js +14 -3
  16. package/dist/TestConfigs.js.map +1 -1
  17. package/dist/TestSummaryUtils.d.ts +7 -2
  18. package/dist/TestSummaryUtils.d.ts.map +1 -1
  19. package/dist/TestSummaryUtils.js +39 -14
  20. package/dist/TestSummaryUtils.js.map +1 -1
  21. package/dist/containerUtils.d.ts +1 -1
  22. package/dist/containerUtils.d.ts.map +1 -1
  23. package/dist/containerUtils.js +2 -2
  24. package/dist/containerUtils.js.map +1 -1
  25. package/dist/debug.js +2 -2
  26. package/dist/debug.js.map +1 -1
  27. package/dist/index.d.ts +14 -14
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +44 -43
  30. package/dist/index.js.map +1 -1
  31. package/dist/loaderContainerTracker.d.ts +1 -1
  32. package/dist/loaderContainerTracker.d.ts.map +1 -1
  33. package/dist/loaderContainerTracker.js +11 -11
  34. package/dist/loaderContainerTracker.js.map +1 -1
  35. package/dist/localLoader.d.ts +1 -1
  36. package/dist/localLoader.d.ts.map +1 -1
  37. package/dist/localLoader.js +2 -2
  38. package/dist/localLoader.js.map +1 -1
  39. package/dist/package.json +3 -0
  40. package/dist/packageVersion.d.ts +1 -1
  41. package/dist/packageVersion.js +1 -1
  42. package/dist/packageVersion.js.map +1 -1
  43. package/dist/test-utils-alpha.d.ts +7 -3
  44. package/dist/test-utils-beta.d.ts +9 -3
  45. package/dist/test-utils-public.d.ts +9 -3
  46. package/dist/test-utils-untrimmed.d.ts +59 -14
  47. package/dist/testContainerRuntimeFactory.d.ts.map +1 -1
  48. package/dist/testContainerRuntimeFactory.js +9 -2
  49. package/dist/testContainerRuntimeFactory.js.map +1 -1
  50. package/dist/testFluidObject.d.ts +1 -1
  51. package/dist/testFluidObject.d.ts.map +1 -1
  52. package/dist/testFluidObject.js.map +1 -1
  53. package/dist/testObjectProvider.d.ts +34 -11
  54. package/dist/testObjectProvider.d.ts.map +1 -1
  55. package/dist/testObjectProvider.js +71 -38
  56. package/dist/testObjectProvider.js.map +1 -1
  57. package/dist/timeoutUtils.d.ts.map +1 -1
  58. package/dist/timeoutUtils.js.map +1 -1
  59. package/dist/tsdoc-metadata.json +1 -1
  60. package/lib/DriverWrappers.d.ts +35 -0
  61. package/lib/DriverWrappers.d.ts.map +1 -0
  62. package/lib/DriverWrappers.js +54 -0
  63. package/lib/DriverWrappers.js.map +1 -0
  64. package/lib/TestConfigs.d.ts +23 -0
  65. package/lib/TestConfigs.d.ts.map +1 -0
  66. package/lib/TestConfigs.js +24 -0
  67. package/lib/TestConfigs.js.map +1 -0
  68. package/lib/TestSummaryUtils.d.ts +66 -0
  69. package/lib/TestSummaryUtils.d.ts.map +1 -0
  70. package/lib/TestSummaryUtils.js +153 -0
  71. package/lib/TestSummaryUtils.js.map +1 -0
  72. package/lib/containerUtils.d.ts +46 -0
  73. package/lib/containerUtils.d.ts.map +1 -0
  74. package/lib/containerUtils.js +79 -0
  75. package/lib/containerUtils.js.map +1 -0
  76. package/lib/debug.d.ts +7 -0
  77. package/lib/debug.d.ts.map +1 -0
  78. package/lib/debug.js +9 -0
  79. package/lib/debug.js.map +1 -0
  80. package/lib/index.d.ts +19 -0
  81. package/lib/index.d.ts.map +1 -0
  82. package/lib/index.js +18 -0
  83. package/lib/index.js.map +1 -0
  84. package/lib/interfaces.d.ts +25 -0
  85. package/lib/interfaces.d.ts.map +1 -0
  86. package/lib/interfaces.js +6 -0
  87. package/lib/interfaces.js.map +1 -0
  88. package/lib/loaderContainerTracker.d.ts +144 -0
  89. package/lib/loaderContainerTracker.d.ts.map +1 -0
  90. package/lib/loaderContainerTracker.js +631 -0
  91. package/lib/loaderContainerTracker.js.map +1 -0
  92. package/lib/localCodeLoader.d.ts +31 -0
  93. package/lib/localCodeLoader.d.ts.map +1 -0
  94. package/lib/localCodeLoader.js +73 -0
  95. package/lib/localCodeLoader.js.map +1 -0
  96. package/lib/localLoader.d.ts +26 -0
  97. package/lib/localLoader.d.ts.map +1 -0
  98. package/lib/localLoader.js +37 -0
  99. package/lib/localLoader.js.map +1 -0
  100. package/lib/packageVersion.d.ts +9 -0
  101. package/lib/packageVersion.d.ts.map +1 -0
  102. package/lib/packageVersion.js +9 -0
  103. package/lib/packageVersion.js.map +1 -0
  104. package/lib/retry.d.ts +18 -0
  105. package/lib/retry.d.ts.map +1 -0
  106. package/lib/retry.js +37 -0
  107. package/lib/retry.js.map +1 -0
  108. package/lib/test/timeoutUtils.spec.js +165 -0
  109. package/lib/test/timeoutUtils.spec.js.map +1 -0
  110. package/lib/test/types/validateTestUtilsPrevious.generated.js +90 -0
  111. package/lib/test/types/validateTestUtilsPrevious.generated.js.map +1 -0
  112. package/lib/test-utils-alpha.d.ts +309 -0
  113. package/lib/test-utils-beta.d.ts +208 -0
  114. package/lib/test-utils-public.d.ts +208 -0
  115. package/lib/test-utils-untrimmed.d.ts +1046 -0
  116. package/lib/testContainerRuntimeFactory.d.ts +46 -0
  117. package/lib/testContainerRuntimeFactory.d.ts.map +1 -0
  118. package/lib/testContainerRuntimeFactory.js +113 -0
  119. package/lib/testContainerRuntimeFactory.js.map +1 -0
  120. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts +23 -0
  121. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -0
  122. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js +28 -0
  123. package/lib/testContainerRuntimeFactoryWithDefaultDataStore.js.map +1 -0
  124. package/lib/testFluidObject.d.ts +92 -0
  125. package/lib/testFluidObject.d.ts.map +1 -0
  126. package/lib/testFluidObject.js +159 -0
  127. package/lib/testFluidObject.js.map +1 -0
  128. package/lib/testObjectProvider.d.ts +435 -0
  129. package/lib/testObjectProvider.d.ts.map +1 -0
  130. package/lib/testObjectProvider.js +636 -0
  131. package/lib/testObjectProvider.js.map +1 -0
  132. package/lib/timeoutUtils.d.ts +60 -0
  133. package/lib/timeoutUtils.d.ts.map +1 -0
  134. package/lib/timeoutUtils.js +164 -0
  135. package/lib/timeoutUtils.js.map +1 -0
  136. package/package.json +105 -38
  137. package/src/DriverWrappers.ts +3 -0
  138. package/src/TestConfigs.ts +25 -3
  139. package/src/TestSummaryUtils.ts +36 -12
  140. package/src/containerUtils.ts +1 -1
  141. package/src/debug.ts +1 -1
  142. package/src/index.ts +19 -14
  143. package/src/loaderContainerTracker.ts +5 -5
  144. package/src/localLoader.ts +1 -1
  145. package/src/packageVersion.ts +1 -1
  146. package/src/testContainerRuntimeFactory.ts +12 -2
  147. package/src/testFluidObject.ts +1 -1
  148. package/src/testObjectProvider.ts +99 -34
  149. package/src/timeoutUtils.ts +1 -0
  150. package/tsconfig.cjs.json +7 -0
  151. package/tsconfig.json +3 -4
@@ -0,0 +1,435 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { IContainer, IHostLoader, IFluidCodeDetails } from "@fluidframework/container-definitions";
6
+ import { ILoaderProps, Loader } from "@fluidframework/container-loader";
7
+ import { IContainerRuntimeOptions } from "@fluidframework/container-runtime";
8
+ import { ITelemetryBaseLogger, ITelemetryBaseEvent, IRequestHeader } from "@fluidframework/core-interfaces";
9
+ import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions";
10
+ import { ITestDriver } from "@fluidframework/test-driver-definitions";
11
+ import { type ITelemetryGenericEventExt } from "@fluidframework/telemetry-utils";
12
+ import { fluidEntryPoint } from "./localCodeLoader.js";
13
+ import { ChannelFactoryRegistry } from "./testFluidObject.js";
14
+ /**
15
+ * @alpha
16
+ */
17
+ export interface IOpProcessingController {
18
+ processIncoming(...containers: IContainer[]): Promise<void>;
19
+ processOutgoing(...containers: IContainer[]): Promise<void>;
20
+ pauseProcessing(...containers: IContainer[]): Promise<void>;
21
+ resumeProcessing(...containers: IContainer[]): void;
22
+ }
23
+ /**
24
+ * @internal
25
+ */
26
+ export interface ITestObjectProvider {
27
+ /**
28
+ * Indicates which type of test object provider is being used.
29
+ */
30
+ type: "TestObjectProvider" | "TestObjectProviderWithVersionedLoad";
31
+ /**
32
+ * The document id to retrieve or create containers
33
+ */
34
+ documentId: string;
35
+ /**
36
+ * Creates the document service after extracting different endpoints URLs from a resolved URL.
37
+ */
38
+ documentServiceFactory: IDocumentServiceFactory;
39
+ /**
40
+ * Test driver used to create the IDocumentServiceFactory. Varies depending on the test type.
41
+ */
42
+ driver: ITestDriver;
43
+ /**
44
+ * Logger used to track expected and unexpected events.
45
+ */
46
+ logger: EventAndErrorTrackingLogger | undefined;
47
+ /**
48
+ * Used to create a url for the created container with any data store path given in the relative url.
49
+ */
50
+ urlResolver: IUrlResolver;
51
+ /**
52
+ * Default IFluidCodeDetails used to create containers.
53
+ */
54
+ defaultCodeDetails: IFluidCodeDetails;
55
+ /**
56
+ * Contains functions to pause/resume op processing.
57
+ */
58
+ opProcessingController: IOpProcessingController;
59
+ /**
60
+ * Represents the entry point for a Fluid container.
61
+ */
62
+ createFluidEntryPoint: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint;
63
+ /**
64
+ * Create a loader. Containers created/loaded through this loader will be added to the OpProcessingController.
65
+ *
66
+ * Only the version of the loader will vary based on compat config. The version of
67
+ * containerRuntime/dataRuntime used in fluidEntryPoint will be used as is from what is passed in.
68
+ *
69
+ * @param packageEntries - list of code details and fluidEntryPoint pairs.
70
+ */
71
+ createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>): IHostLoader;
72
+ /**
73
+ * Create a container using a default document id and code details.
74
+ * Container created is automatically added to the OpProcessingController to manage op flow
75
+ *
76
+ * Only the version of the loader will vary based on compat config. The version of
77
+ * containerRuntime/dataRuntime used in fluidEntryPoint will be used as is from what is passed in.
78
+ *
79
+ * @param packageEntries - list of code details and fluidEntryPoint pairs.
80
+ */
81
+ createContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>): Promise<IContainer>;
82
+ /**
83
+ * Create a detached container much like createContainer, but without attaching it to the document service.
84
+ */
85
+ createDetachedContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>): Promise<IContainer>;
86
+ /**
87
+ * Attaches a detached container to the document service.
88
+ */
89
+ attachDetachedContainer(container: IContainer): Promise<void>;
90
+ /**
91
+ * Loads a container using the default document id
92
+ */
93
+ loadContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>, requestHeader?: IRequestHeader): Promise<IContainer>;
94
+ /**
95
+ * Make a test loader. Containers created/loaded through this loader will be added to the OpProcessingController.
96
+ * The version of the loader/containerRuntime/dataRuntime may vary based on compat config of the current run
97
+ * @param testContainerConfig - optional configuring the test Container
98
+ */
99
+ makeTestLoader(testContainerConfig?: ITestContainerConfig): IHostLoader;
100
+ /**
101
+ * Make a container using a default document id and code details
102
+ * Container loaded is automatically added to the OpProcessingController to manage op flow
103
+ * @param testContainerConfig - optional configuring the test Container
104
+ */
105
+ makeTestContainer(testContainerConfig?: ITestContainerConfig): Promise<IContainer>;
106
+ /**
107
+ * Load a container using a default document id and code details.
108
+ * IContainer loaded is automatically added to the OpProcessingController to manage op flow
109
+ * @param testContainerConfig - optional configuring the test Container
110
+ * @param requestHeader - optional headers to be supplied to the loader
111
+ */
112
+ loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
113
+ /**
114
+ * Update the document ID from the resolved container's URL and reset the ID property
115
+ */
116
+ updateDocumentId(url: IResolvedUrl | undefined): void;
117
+ /**
118
+ * Make sure all the tracked containers are synchronized.
119
+ */
120
+ ensureSynchronized(timeoutDuration?: number): Promise<void>;
121
+ /**
122
+ * Reset the tracker, closing all containers and stop tracking them.
123
+ */
124
+ resetLoaderContainerTracker(syncSummarizerClients?: boolean): any;
125
+ /**
126
+ * Resets and closes all tracked containers and class states.
127
+ */
128
+ reset(): void;
129
+ }
130
+ /**
131
+ * @internal
132
+ */
133
+ export declare enum DataObjectFactoryType {
134
+ Primed = 0,
135
+ Test = 1
136
+ }
137
+ /**
138
+ * @internal
139
+ */
140
+ export interface ITestContainerConfig {
141
+ /** TestFluidDataObject instead of PrimedDataStore */
142
+ fluidDataObjectType?: DataObjectFactoryType;
143
+ /** An array of channel name and DDS factory pair to create on container creation time */
144
+ registry?: ChannelFactoryRegistry;
145
+ /** Container runtime options for the container instance */
146
+ runtimeOptions?: IContainerRuntimeOptions;
147
+ /** Whether this runtime should be instantiated using a mixed-in attributor class */
148
+ enableAttribution?: boolean;
149
+ /** Loader options for the loader used to create containers */
150
+ loaderProps?: Partial<ILoaderProps>;
151
+ }
152
+ /**
153
+ * @internal
154
+ */
155
+ export declare const createDocumentId: () => string;
156
+ /**
157
+ * Used to retrieve, update, and reset document id based on the type of driver being used.
158
+ *
159
+ * @internal
160
+ */
161
+ export interface IDocumentIdStrategy {
162
+ /**
163
+ * Get document id
164
+ */
165
+ get(): string;
166
+ /**
167
+ * Update the document ID from the resolved container's URL and reset the ID property
168
+ */
169
+ update(resolvedUrl?: IResolvedUrl): void;
170
+ /**
171
+ * Reset document id to a new document id
172
+ */
173
+ reset(): void;
174
+ }
175
+ /**
176
+ * This class tracks events. It allows specifying expected events, which will be looked for in order.
177
+ * It also tracks all unexpected errors.
178
+ * At any point you call reportAndClearTrackedEvents which will provide all unexpected errors, and
179
+ * any expected events that have not occurred.
180
+ * @internal
181
+ */
182
+ export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger {
183
+ private readonly baseLogger;
184
+ /**
185
+ * Even if these error events are logged, tests should still be allowed to pass
186
+ * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
187
+ */
188
+ private readonly allowedErrors;
189
+ constructor(baseLogger: ITelemetryBaseLogger);
190
+ private readonly expectedEvents;
191
+ private readonly unexpectedErrors;
192
+ registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]): void;
193
+ send(event: ITelemetryBaseEvent): void;
194
+ reportAndClearTrackedEvents(): {
195
+ expectedNotFound: ({
196
+ index: number;
197
+ event: ITelemetryGenericEventExt | undefined;
198
+ } | undefined)[];
199
+ unexpectedErrors: ITelemetryBaseEvent[];
200
+ };
201
+ }
202
+ /**
203
+ * Shared base class for test object provider. Contain code for loader and container creation and loading
204
+ * @internal
205
+ */
206
+ export declare class TestObjectProvider implements ITestObjectProvider {
207
+ private readonly LoaderConstructor;
208
+ /**
209
+ * {@inheritDoc ITestObjectProvider.driver}
210
+ */
211
+ readonly driver: ITestDriver;
212
+ /**
213
+ * {@inheritDoc ITestObjectProvider.createFluidEntryPoint}
214
+ */
215
+ readonly createFluidEntryPoint: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint;
216
+ /**
217
+ * {@inheritDoc ITestObjectProvider."type"}
218
+ */
219
+ readonly type = "TestObjectProvider";
220
+ private _loaderContainerTracker;
221
+ private _documentServiceFactory;
222
+ private _urlResolver;
223
+ private _logger;
224
+ private readonly _documentIdStrategy;
225
+ private _documentCreated;
226
+ /**
227
+ * Manage objects for loading and creating container, including the driver, loader, and OpProcessingController
228
+ * @param createFluidEntryPoint - callback to create a fluidEntryPoint, with an optional set of channel name
229
+ * and factory for TestFluidObject
230
+ */
231
+ constructor(LoaderConstructor: typeof Loader,
232
+ /**
233
+ * {@inheritDoc ITestObjectProvider.driver}
234
+ */
235
+ driver: ITestDriver,
236
+ /**
237
+ * {@inheritDoc ITestObjectProvider.createFluidEntryPoint}
238
+ */
239
+ createFluidEntryPoint: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint);
240
+ /**
241
+ * {@inheritDoc ITestObjectProvider.logger}
242
+ */
243
+ get logger(): EventAndErrorTrackingLogger;
244
+ private set logger(value);
245
+ /**
246
+ * {@inheritDoc ITestObjectProvider.documentServiceFactory}
247
+ */
248
+ get documentServiceFactory(): IDocumentServiceFactory;
249
+ /**
250
+ * {@inheritDoc ITestObjectProvider.urlResolver}
251
+ */
252
+ get urlResolver(): IUrlResolver;
253
+ /**
254
+ * {@inheritDoc ITestObjectProvider.documentId}
255
+ */
256
+ get documentId(): string;
257
+ /**
258
+ * {@inheritDoc ITestObjectProvider.defaultCodeDetails}
259
+ */
260
+ get defaultCodeDetails(): IFluidCodeDetails;
261
+ /**
262
+ * {@inheritDoc ITestObjectProvider.opProcessingController}
263
+ */
264
+ get opProcessingController(): IOpProcessingController;
265
+ /**
266
+ * {@inheritDoc ITestObjectProvider.createLoader}
267
+ */
268
+ createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>): Loader;
269
+ /**
270
+ * {@inheritDoc ITestObjectProvider.createContainer}
271
+ */
272
+ createContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>): Promise<IContainer>;
273
+ /**
274
+ * {@inheritdoc ITestObjectProvider.createDetachedContainer}
275
+ */
276
+ createDetachedContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps> | undefined): Promise<IContainer>;
277
+ /**
278
+ * {@inheritdoc ITestObjectProvider.attachDetachedContainer}
279
+ */
280
+ attachDetachedContainer(container: IContainer): Promise<void>;
281
+ /**
282
+ * {@inheritDoc ITestObjectProvider.loadContainer}
283
+ */
284
+ loadContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>, requestHeader?: IRequestHeader): Promise<IContainer>;
285
+ private resolveContainer;
286
+ /**
287
+ * {@inheritDoc ITestObjectProvider.makeTestLoader}
288
+ */
289
+ makeTestLoader(testContainerConfig?: ITestContainerConfig): Loader;
290
+ /**
291
+ * {@inheritDoc ITestObjectProvider.makeTestContainer}
292
+ */
293
+ makeTestContainer(testContainerConfig?: ITestContainerConfig): Promise<IContainer>;
294
+ /**
295
+ * {@inheritDoc ITestObjectProvider.loadTestContainer}
296
+ */
297
+ loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
298
+ /**
299
+ * {@inheritDoc ITestObjectProvider.reset}
300
+ */
301
+ reset(): void;
302
+ /**
303
+ * {@inheritDoc ITestObjectProvider.ensureSynchronized}
304
+ */
305
+ ensureSynchronized(): Promise<void>;
306
+ private waitContainerToCatchUp;
307
+ /**
308
+ * {@inheritDoc ITestObjectProvider.updateDocumentId}
309
+ */
310
+ updateDocumentId(resolvedUrl: IResolvedUrl | undefined): void;
311
+ /**
312
+ * {@inheritDoc ITestObjectProvider.resetLoaderContainerTracker}
313
+ */
314
+ resetLoaderContainerTracker(syncSummarizerClients?: boolean): void;
315
+ }
316
+ /**
317
+ * Implements {@link ITestObjectProvider}, but uses different versions to create and load containers.
318
+ *
319
+ * @internal
320
+ */
321
+ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectProvider {
322
+ private readonly LoaderConstructorForCreating;
323
+ private readonly LoaderConstructorForLoading;
324
+ private readonly driverForCreating;
325
+ private readonly driverForLoading;
326
+ private readonly createFluidEntryPointForCreating;
327
+ private readonly createFluidEntryPointForLoading;
328
+ /**
329
+ * {@inheritDoc ITestObjectProvider."type"}
330
+ */
331
+ readonly type = "TestObjectProviderWithVersionedLoad";
332
+ private _loaderContainerTracker;
333
+ private _logger;
334
+ private readonly _documentIdStrategy;
335
+ private _documentServiceFactory;
336
+ private _urlResolver;
337
+ private _documentCreated;
338
+ /**
339
+ * Used to determine which APIs to use when creating a loader.
340
+ *
341
+ * The first load will always use the create APIs, and then useCreateApi will be set to false to ensure all
342
+ * subsequent loads use the load APIs.
343
+ */
344
+ private useCreateApi;
345
+ constructor(LoaderConstructorForCreating: typeof Loader, LoaderConstructorForLoading: typeof Loader, driverForCreating: ITestDriver, driverForLoading: ITestDriver, createFluidEntryPointForCreating: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint, createFluidEntryPointForLoading: (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint);
346
+ /**
347
+ * {@inheritDoc ITestObjectProvider.logger}
348
+ */
349
+ get logger(): EventAndErrorTrackingLogger;
350
+ /**
351
+ * {@inheritDoc ITestObjectProvider.documentServiceFactory}
352
+ */
353
+ get documentServiceFactory(): IDocumentServiceFactory;
354
+ /**
355
+ * {@inheritDoc ITestObjectProvider.urlResolver}
356
+ */
357
+ get urlResolver(): IUrlResolver;
358
+ /**
359
+ * {@inheritDoc ITestObjectProvider.documentId}
360
+ */
361
+ get documentId(): string;
362
+ /**
363
+ * {@inheritDoc ITestObjectProvider.defaultCodeDetails}
364
+ */
365
+ get defaultCodeDetails(): IFluidCodeDetails;
366
+ /**
367
+ * {@inheritDoc ITestObjectProvider.opProcessingController}
368
+ */
369
+ get opProcessingController(): IOpProcessingController;
370
+ /**
371
+ * {@inheritDoc ITestObjectProvider.driver}
372
+ */
373
+ get driver(): ITestDriver;
374
+ /**
375
+ * {@inheritDoc ITestObjectProvider.createFluidEntryPoint}
376
+ */
377
+ get createFluidEntryPoint(): (testContainerConfig?: ITestContainerConfig) => fluidEntryPoint;
378
+ private createLoaderForCreating;
379
+ private createLoaderForLoading;
380
+ /**
381
+ * {@inheritDoc ITestObjectProvider.createLoader}
382
+ */
383
+ createLoader(packageEntries: Iterable<[IFluidCodeDetails, fluidEntryPoint]>, loaderProps?: Partial<ILoaderProps>): Loader;
384
+ /**
385
+ * {@inheritDoc ITestObjectProvider.createContainer}
386
+ */
387
+ createContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>): Promise<IContainer>;
388
+ /**
389
+ * {@inheritdoc ITestObjectProvider.createDetachedContainer}
390
+ */
391
+ createDetachedContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps> | undefined): Promise<IContainer>;
392
+ /**
393
+ * {@inheritdoc ITestObjectProvider.attachDetachedContainer}
394
+ */
395
+ attachDetachedContainer(container: IContainer): Promise<void>;
396
+ /**
397
+ * {@inheritDoc ITestObjectProvider.loadContainer}
398
+ */
399
+ loadContainer(entryPoint: fluidEntryPoint, loaderProps?: Partial<ILoaderProps>, requestHeader?: IRequestHeader): Promise<IContainer>;
400
+ private resolveContainer;
401
+ /**
402
+ * {@inheritDoc ITestObjectProvider.makeTestLoader}
403
+ */
404
+ makeTestLoader(testContainerConfig?: ITestContainerConfig): Loader;
405
+ /**
406
+ * {@inheritDoc ITestObjectProvider.makeTestContainer}
407
+ */
408
+ makeTestContainer(testContainerConfig?: ITestContainerConfig): Promise<IContainer>;
409
+ /**
410
+ * {@inheritDoc ITestObjectProvider.loadTestContainer}
411
+ */
412
+ loadTestContainer(testContainerConfig?: ITestContainerConfig, requestHeader?: IRequestHeader): Promise<IContainer>;
413
+ /**
414
+ * {@inheritDoc ITestObjectProvider.reset}
415
+ */
416
+ reset(): void;
417
+ /**
418
+ * {@inheritDoc ITestObjectProvider.ensureSynchronized}
419
+ */
420
+ ensureSynchronized(): Promise<void>;
421
+ private waitContainerToCatchUp;
422
+ /**
423
+ * {@inheritDoc ITestObjectProvider.updateDocumentId}
424
+ */
425
+ updateDocumentId(resolvedUrl: IResolvedUrl | undefined): void;
426
+ /**
427
+ * {@inheritDoc ITestObjectProvider.resetLoaderContainerTracker}
428
+ */
429
+ resetLoaderContainerTracker(syncSummarizerClients?: boolean): void;
430
+ }
431
+ /**
432
+ * @internal
433
+ */
434
+ export declare function getUnexpectedLogErrorException(logger: EventAndErrorTrackingLogger | undefined, prefix?: string): Error | undefined;
435
+ //# sourceMappingURL=testObjectProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testObjectProvider.d.ts","sourceRoot":"","sources":["../src/testObjectProvider.ts"],"names":[],"mappings":"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"}