@fluidframework/test-utils 2.90.0 → 2.92.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 (51) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -0
  3. package/dist/eventAndErrorLogger.d.ts +51 -0
  4. package/dist/eventAndErrorLogger.d.ts.map +1 -0
  5. package/dist/eventAndErrorLogger.js +116 -0
  6. package/dist/eventAndErrorLogger.js.map +1 -0
  7. package/dist/index.d.ts +7 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +14 -5
  10. package/dist/index.js.map +1 -1
  11. package/dist/legacy.d.ts +1 -1
  12. package/dist/packageVersion.d.ts +1 -1
  13. package/dist/packageVersion.js +1 -1
  14. package/dist/packageVersion.js.map +1 -1
  15. package/dist/public.d.ts +1 -1
  16. package/dist/testObjectProvider.d.ts +4 -46
  17. package/dist/testObjectProvider.d.ts.map +1 -1
  18. package/dist/testObjectProvider.js +6 -113
  19. package/dist/testObjectProvider.js.map +1 -1
  20. package/dist/timeoutUtils.d.ts.map +1 -1
  21. package/dist/timeoutUtils.js +2 -0
  22. package/dist/timeoutUtils.js.map +1 -1
  23. package/eslint.config.mts +25 -2
  24. package/internal.d.ts +1 -1
  25. package/legacy.d.ts +1 -1
  26. package/lib/eventAndErrorLogger.d.ts +51 -0
  27. package/lib/eventAndErrorLogger.d.ts.map +1 -0
  28. package/lib/eventAndErrorLogger.js +111 -0
  29. package/lib/eventAndErrorLogger.js.map +1 -0
  30. package/lib/index.d.ts +7 -3
  31. package/lib/index.d.ts.map +1 -1
  32. package/lib/index.js +11 -2
  33. package/lib/index.js.map +1 -1
  34. package/lib/legacy.d.ts +1 -1
  35. package/lib/packageVersion.d.ts +1 -1
  36. package/lib/packageVersion.js +1 -1
  37. package/lib/packageVersion.js.map +1 -1
  38. package/lib/public.d.ts +1 -1
  39. package/lib/testObjectProvider.d.ts +4 -46
  40. package/lib/testObjectProvider.d.ts.map +1 -1
  41. package/lib/testObjectProvider.js +1 -106
  42. package/lib/testObjectProvider.js.map +1 -1
  43. package/lib/timeoutUtils.d.ts.map +1 -1
  44. package/lib/timeoutUtils.js +2 -0
  45. package/lib/timeoutUtils.js.map +1 -1
  46. package/package.json +30 -30
  47. package/src/eventAndErrorLogger.ts +164 -0
  48. package/src/index.ts +22 -8
  49. package/src/packageVersion.ts +1 -1
  50. package/src/testObjectProvider.ts +5 -155
  51. package/src/timeoutUtils.ts +8 -0
@@ -0,0 +1,51 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { ITelemetryBaseEvent, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
6
+ import type { ITelemetryGenericEventExt } from "@fluidframework/telemetry-utils/internal";
7
+ /** @internal */
8
+ export interface IEventAndErrorTrackingLogger {
9
+ registerExpectedEvent: (...orderedExpectedEvents: ITelemetryGenericEventExt[]) => void;
10
+ reportAndClearTrackedEvents: () => {
11
+ expectedNotFound: {
12
+ index: number;
13
+ event: ITelemetryGenericEventExt;
14
+ }[];
15
+ unexpectedErrors: ITelemetryBaseEvent[];
16
+ };
17
+ }
18
+ /**
19
+ * This class tracks events. It allows specifying expected events, which will be looked for in order.
20
+ * It also tracks all unexpected errors.
21
+ * At any point you call reportAndClearTrackedEvents which will provide all unexpected errors, and
22
+ * any expected events that have not occurred.
23
+ * @internal
24
+ */
25
+ export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger, IEventAndErrorTrackingLogger {
26
+ private readonly baseLogger?;
27
+ /**
28
+ * Even if these error events are logged, tests should still be allowed to pass
29
+ * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
30
+ */
31
+ private readonly allowedErrors;
32
+ constructor(baseLogger?: ITelemetryBaseLogger | undefined);
33
+ private readonly expectedEvents;
34
+ private readonly unexpectedErrors;
35
+ registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]): void;
36
+ send(event: ITelemetryBaseEvent): void;
37
+ reportAndClearTrackedEvents(): {
38
+ expectedNotFound: {
39
+ index: number;
40
+ event: ITelemetryGenericEventExt;
41
+ }[];
42
+ unexpectedErrors: ITelemetryBaseEvent[];
43
+ };
44
+ }
45
+ /**
46
+ * Retrieves unexpected errors from a logger and returns them as an exception.
47
+ *
48
+ * @internal
49
+ */
50
+ export declare function getUnexpectedLogErrorException(logger: IEventAndErrorTrackingLogger | undefined, prefix?: string): Error | undefined;
51
+ //# sourceMappingURL=eventAndErrorLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventAndErrorLogger.d.ts","sourceRoot":"","sources":["../src/eventAndErrorLogger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAI1F,gBAAgB;AAChB,MAAM,WAAW,4BAA4B;IAC5C,qBAAqB,EAAE,CAAC,GAAG,qBAAqB,EAAE,yBAAyB,EAAE,KAAK,IAAI,CAAC;IACvF,2BAA2B,EAAE,MAAM;QAClC,gBAAgB,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,yBAAyB,CAAA;SAAE,EAAE,CAAC;QACxE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;KACxC,CAAC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,2BACZ,YAAW,oBAAoB,EAAE,4BAA4B;IAgBjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAdxC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAQ5B;gBAE2B,UAAU,CAAC,kCAAsB;IAE9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6D;IAC5F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAEvD,qBAAqB,CAAC,GAAG,qBAAqB,EAAE,yBAAyB,EAAE,GAAG,IAAI;IAczF,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAwC/B,2BAA2B,IAAI;QACrC,gBAAgB,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,yBAAyB,CAAA;SAAE,EAAE,CAAC;QACxE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;KACxC;CAQD;AAgBD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,4BAA4B,GAAG,SAAS,EAChD,MAAM,CAAC,EAAE,MAAM,GACb,KAAK,GAAG,SAAS,CAuBnB"}
@@ -0,0 +1,111 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { isNonEmptyArray } from "./nonEmptyArrayType.js";
6
+ /**
7
+ * This class tracks events. It allows specifying expected events, which will be looked for in order.
8
+ * It also tracks all unexpected errors.
9
+ * At any point you call reportAndClearTrackedEvents which will provide all unexpected errors, and
10
+ * any expected events that have not occurred.
11
+ * @internal
12
+ */
13
+ export class EventAndErrorTrackingLogger {
14
+ constructor(baseLogger) {
15
+ this.baseLogger = baseLogger;
16
+ /**
17
+ * Even if these error events are logged, tests should still be allowed to pass
18
+ * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
19
+ */
20
+ this.allowedErrors = [
21
+ // This log was removed in current version as unnecessary, but it's still present in previous versions
22
+ {
23
+ eventName: "fluid:telemetry:Container:NoRealStorageInDetachedContainer",
24
+ downgrade: true,
25
+ },
26
+ // This log's category changes depending on the op latency. test results shouldn't be affected but if we see lots we'd like an alert from the logs.
27
+ { eventName: "fluid:telemetry:OpRoundtripTime" },
28
+ ];
29
+ this.expectedEvents = [];
30
+ this.unexpectedErrors = [];
31
+ }
32
+ registerExpectedEvent(...orderedExpectedEvents) {
33
+ if (this.expectedEvents.length !== 0) {
34
+ // we don't have to error here. just no reason not to. given the events must be
35
+ // ordered it could be tricky to figure out problems around multiple registrations.
36
+ throw new Error("Expected events already registered.\n" +
37
+ "Call reportAndClearTrackedEvents to clear them before registering more");
38
+ }
39
+ this.expectedEvents.push(...orderedExpectedEvents.map((event, index) => ({ index, event })));
40
+ }
41
+ send(event) {
42
+ if (isNonEmptyArray(this.expectedEvents)) {
43
+ const ee = this.expectedEvents[0].event;
44
+ if (ee.eventName === event.eventName) {
45
+ let matches = true;
46
+ for (const key of Object.keys(ee)) {
47
+ if (ee[key] !== event[key]) {
48
+ matches = false;
49
+ break;
50
+ }
51
+ }
52
+ if (matches) {
53
+ // we found an expected event
54
+ // so remove it from the list of expected events
55
+ // and if it is an error, change it to generic
56
+ // this helps keep our telemetry clear of
57
+ // expected errors.
58
+ this.expectedEvents.shift();
59
+ if (event.category === "error") {
60
+ event.category = "generic";
61
+ }
62
+ }
63
+ }
64
+ }
65
+ if (event.category === "error") {
66
+ // Check to see if this error is allowed and if its category should be downgraded
67
+ const allowedError = this.allowedErrors.find(({ eventName }) => eventName === event.eventName);
68
+ if (allowedError === undefined) {
69
+ this.unexpectedErrors.push(event);
70
+ }
71
+ else if (allowedError.downgrade) {
72
+ event.category = "generic";
73
+ }
74
+ }
75
+ this.baseLogger?.send(event);
76
+ }
77
+ reportAndClearTrackedEvents() {
78
+ const expectedNotFound = this.expectedEvents.splice(0, this.expectedEvents.length);
79
+ const unexpectedErrors = this.unexpectedErrors.splice(0, this.unexpectedErrors.length);
80
+ return {
81
+ expectedNotFound,
82
+ unexpectedErrors,
83
+ };
84
+ }
85
+ }
86
+ /** Summarize the event with just the primary properties, for succinct output in case of test failure */
87
+ const primaryEventProps = ({ category, eventName, error, errorType, }) => ({
88
+ category,
89
+ eventName,
90
+ error,
91
+ errorType,
92
+ ["..."]: "*** Additional properties not shown, see full log for details ***",
93
+ });
94
+ /**
95
+ * Retrieves unexpected errors from a logger and returns them as an exception.
96
+ *
97
+ * @internal
98
+ */
99
+ export function getUnexpectedLogErrorException(logger, prefix) {
100
+ if (logger === undefined) {
101
+ return;
102
+ }
103
+ const results = logger.reportAndClearTrackedEvents();
104
+ if (results.unexpectedErrors.length > 0) {
105
+ return new Error(`${prefix ?? ""}Unexpected Errors in Logs:\n${JSON.stringify(results.unexpectedErrors.map(primaryEventProps), undefined, 2)}`);
106
+ }
107
+ if (results.expectedNotFound.length > 0) {
108
+ return new Error(`${prefix ?? ""}Expected Events not found:\n${JSON.stringify(results.expectedNotFound, undefined, 2)}`);
109
+ }
110
+ }
111
+ //# sourceMappingURL=eventAndErrorLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventAndErrorLogger.js","sourceRoot":"","sources":["../src/eventAndErrorLogger.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 type {\n\tITelemetryBaseEvent,\n\tITelemetryBaseLogger,\n} from \"@fluidframework/core-interfaces\";\nimport type { ITelemetryGenericEventExt } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { isNonEmptyArray } from \"./nonEmptyArrayType.js\";\n\n/** @internal */\nexport interface IEventAndErrorTrackingLogger {\n\tregisterExpectedEvent: (...orderedExpectedEvents: ITelemetryGenericEventExt[]) => void;\n\treportAndClearTrackedEvents: () => {\n\t\texpectedNotFound: { index: number; event: ITelemetryGenericEventExt }[];\n\t\tunexpectedErrors: ITelemetryBaseEvent[];\n\t};\n}\n\n/**\n * This class tracks events. It allows specifying expected events, which will be looked for in order.\n * It also tracks all unexpected errors.\n * At any point you call reportAndClearTrackedEvents which will provide all unexpected errors, and\n * any expected events that have not occurred.\n * @internal\n */\nexport class EventAndErrorTrackingLogger\n\timplements ITelemetryBaseLogger, IEventAndErrorTrackingLogger\n{\n\t/**\n\t * Even if these error events are logged, tests should still be allowed to pass\n\t * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)\n\t */\n\tprivate readonly allowedErrors: { eventName: string; downgrade?: true }[] = [\n\t\t// This log was removed in current version as unnecessary, but it's still present in previous versions\n\t\t{\n\t\t\teventName: \"fluid:telemetry:Container:NoRealStorageInDetachedContainer\",\n\t\t\tdowngrade: true,\n\t\t},\n\t\t// This log's category changes depending on the op latency. test results shouldn't be affected but if we see lots we'd like an alert from the logs.\n\t\t{ eventName: \"fluid:telemetry:OpRoundtripTime\" },\n\t];\n\n\tconstructor(private readonly baseLogger?: ITelemetryBaseLogger) {}\n\n\tprivate readonly expectedEvents: { index: number; event: ITelemetryGenericEventExt }[] = [];\n\tprivate readonly unexpectedErrors: ITelemetryBaseEvent[] = [];\n\n\tpublic registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]): void {\n\t\tif (this.expectedEvents.length !== 0) {\n\t\t\t// we don't have to error here. just no reason not to. given the events must be\n\t\t\t// ordered it could be tricky to figure out problems around multiple registrations.\n\t\t\tthrow new Error(\n\t\t\t\t\"Expected events already registered.\\n\" +\n\t\t\t\t\t\"Call reportAndClearTrackedEvents to clear them before registering more\",\n\t\t\t);\n\t\t}\n\t\tthis.expectedEvents.push(\n\t\t\t...orderedExpectedEvents.map((event, index) => ({ index, event })),\n\t\t);\n\t}\n\n\tsend(event: ITelemetryBaseEvent): void {\n\t\tif (isNonEmptyArray(this.expectedEvents)) {\n\t\t\tconst ee = this.expectedEvents[0].event;\n\t\t\tif (ee.eventName === event.eventName) {\n\t\t\t\tlet matches = true;\n\t\t\t\tfor (const key of Object.keys(ee)) {\n\t\t\t\t\tif (ee[key] !== event[key]) {\n\t\t\t\t\t\tmatches = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (matches) {\n\t\t\t\t\t// we found an expected event\n\t\t\t\t\t// so remove it from the list of expected events\n\t\t\t\t\t// and if it is an error, change it to generic\n\t\t\t\t\t// this helps keep our telemetry clear of\n\t\t\t\t\t// expected errors.\n\t\t\t\t\tthis.expectedEvents.shift();\n\t\t\t\t\tif (event.category === \"error\") {\n\t\t\t\t\t\tevent.category = \"generic\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (event.category === \"error\") {\n\t\t\t// Check to see if this error is allowed and if its category should be downgraded\n\t\t\tconst allowedError = this.allowedErrors.find(\n\t\t\t\t({ eventName }) => eventName === event.eventName,\n\t\t\t);\n\n\t\t\tif (allowedError === undefined) {\n\t\t\t\tthis.unexpectedErrors.push(event);\n\t\t\t} else if (allowedError.downgrade) {\n\t\t\t\tevent.category = \"generic\";\n\t\t\t}\n\t\t}\n\n\t\tthis.baseLogger?.send(event);\n\t}\n\n\tpublic reportAndClearTrackedEvents(): {\n\t\texpectedNotFound: { index: number; event: ITelemetryGenericEventExt }[];\n\t\tunexpectedErrors: ITelemetryBaseEvent[];\n\t} {\n\t\tconst expectedNotFound = this.expectedEvents.splice(0, this.expectedEvents.length);\n\t\tconst unexpectedErrors = this.unexpectedErrors.splice(0, this.unexpectedErrors.length);\n\t\treturn {\n\t\t\texpectedNotFound,\n\t\t\tunexpectedErrors,\n\t\t};\n\t}\n}\n\n/** Summarize the event with just the primary properties, for succinct output in case of test failure */\nconst primaryEventProps = ({\n\tcategory,\n\teventName,\n\terror,\n\terrorType,\n}: ITelemetryBaseEvent): Partial<ITelemetryBaseEvent> => ({\n\tcategory,\n\teventName,\n\terror,\n\terrorType,\n\t[\"...\"]: \"*** Additional properties not shown, see full log for details ***\",\n});\n\n/**\n * Retrieves unexpected errors from a logger and returns them as an exception.\n *\n * @internal\n */\nexport function getUnexpectedLogErrorException(\n\tlogger: IEventAndErrorTrackingLogger | undefined,\n\tprefix?: string,\n): Error | undefined {\n\tif (logger === undefined) {\n\t\treturn;\n\t}\n\tconst results = logger.reportAndClearTrackedEvents();\n\tif (results.unexpectedErrors.length > 0) {\n\t\treturn new Error(\n\t\t\t`${prefix ?? \"\"}Unexpected Errors in Logs:\\n${JSON.stringify(\n\t\t\t\tresults.unexpectedErrors.map(primaryEventProps),\n\t\t\t\tundefined,\n\t\t\t\t2,\n\t\t\t)}`,\n\t\t);\n\t}\n\tif (results.expectedNotFound.length > 0) {\n\t\treturn new Error(\n\t\t\t`${prefix ?? \"\"}Expected Events not found:\\n${JSON.stringify(\n\t\t\t\tresults.expectedNotFound,\n\t\t\t\tundefined,\n\t\t\t\t2,\n\t\t\t)}`,\n\t\t);\n\t}\n}\n"]}
package/lib/index.d.ts CHANGED
@@ -2,16 +2,20 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
+ export type { IEventAndErrorTrackingLogger } from "./eventAndErrorLogger.js";
6
+ export { EventAndErrorTrackingLogger, getUnexpectedLogErrorException, } from "./eventAndErrorLogger.js";
5
7
  export { IProvideTestFluidObject, ITestFluidObject } from "./interfaces.js";
6
- export { LoaderContainerTracker } from "./loaderContainerTracker.js";
7
8
  export { fluidEntryPoint, LocalCodeLoader, SupportedExportInterfaces, Factory, createDataStoreFactory, } from "./localCodeLoader.js";
8
9
  export { createAndAttachContainer, createLoader, createLoaderProps, createAndAttachContainerUsingProps, } from "./localLoader.js";
9
10
  export { retryWithEventualValue } from "./retry.js";
10
11
  export { createTestConfigProvider, ITestConfigProvider } from "./TestConfigs.js";
11
12
  export { createTestContainerRuntimeFactory, TestContainerRuntimeFactory, } from "./testContainerRuntimeFactory.js";
12
13
  export { ChannelFactoryRegistry, TestFluidObject, TestFluidObjectFactory, TestDataObjectKind, } from "./testFluidObject.js";
13
- export { createDocumentId, DataObjectFactoryType, EventAndErrorTrackingLogger, type IEventAndErrorTrackingLogger, getUnexpectedLogErrorException, IDocumentIdStrategy, IOpProcessingController, ITestContainerConfig, ITestObjectProvider, TestObjectProvider, TestObjectProviderWithVersionedLoad, } from "./testObjectProvider.js";
14
- export { createSummarizer, createSummarizerCore, createSummarizerFromFactory, summarizeNow, SummaryInfo, } from "./TestSummaryUtils.js";
14
+ export { LoaderContainerTracker } from "./loaderContainerTracker.js";
15
+ export type { IDocumentIdStrategy, IOpProcessingController, ITestContainerConfig, ITestObjectProvider, } from "./testObjectProvider.js";
16
+ export { createDocumentId, DataObjectFactoryType, TestObjectProvider, TestObjectProviderWithVersionedLoad, } from "./testObjectProvider.js";
17
+ export type { SummaryInfo } from "./TestSummaryUtils.js";
18
+ export { createSummarizer, createSummarizerCore, createSummarizerFromFactory, summarizeNow, } from "./TestSummaryUtils.js";
15
19
  export { timeoutAwait, timeoutPromise, type TimeoutDurationOption, type TimeoutWithError, type TimeoutWithValue, } from "./timeoutUtils.js";
16
20
  export { toIDeltaManagerFull, waitForContainerConnection, getContainerEntryPointBackCompat, getDataStoreEntryPointBackCompat, } from "./containerUtils.js";
17
21
  export { type ContainerRuntimeFactoryWithDefaultDataStoreConstructor, type ContainerRuntimeFactoryWithDefaultDataStoreProps, createContainerRuntimeFactoryWithDefaultDataStore, } from "./testContainerRuntimeFactoryWithDefaultDataStore.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACN,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,OAAO,EACP,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,EACZ,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,YAAY,EACZ,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,KAAK,sDAAsD,EAC3D,KAAK,gDAAgD,EACrD,iDAAiD,GACjD,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EACN,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,OAAO,EACP,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAClB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EACX,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mCAAmC,GACnC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,YAAY,EACZ,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,GAChC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACN,KAAK,sDAAsD,EAC3D,KAAK,gDAAgD,EACrD,iDAAiD,GACjD,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}
package/lib/index.js CHANGED
@@ -2,17 +2,26 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- export { LoaderContainerTracker } from "./loaderContainerTracker.js";
5
+ export { EventAndErrorTrackingLogger, getUnexpectedLogErrorException, } from "./eventAndErrorLogger.js";
6
6
  export { LocalCodeLoader, createDataStoreFactory, } from "./localCodeLoader.js";
7
7
  export { createAndAttachContainer, createLoader, createLoaderProps, createAndAttachContainerUsingProps, } from "./localLoader.js";
8
8
  export { retryWithEventualValue } from "./retry.js";
9
9
  export { createTestConfigProvider } from "./TestConfigs.js";
10
10
  export { createTestContainerRuntimeFactory, TestContainerRuntimeFactory, } from "./testContainerRuntimeFactory.js";
11
11
  export { TestFluidObject, TestFluidObjectFactory, } from "./testFluidObject.js";
12
- export { createDocumentId, DataObjectFactoryType, EventAndErrorTrackingLogger, getUnexpectedLogErrorException, TestObjectProvider, TestObjectProviderWithVersionedLoad, } from "./testObjectProvider.js";
12
+ // #region Exports with load side-effect
13
+ // The below runtime (not "type") exports transitively or directly import
14
+ // timeoutUtils.ts, which always executes on import and may patch Mocha's timeout
15
+ // handling. That patching only takes effect when consumers use
16
+ // @fluid-internal/mocha-test-setup that sets globalThis.getMochaModule.
17
+ // @fluid-internal/mocha-test-setup is pervasive in our tests and thus patch
18
+ // is usually in effect (when this package is used).
19
+ export { LoaderContainerTracker } from "./loaderContainerTracker.js";
20
+ export { createDocumentId, DataObjectFactoryType, TestObjectProvider, TestObjectProviderWithVersionedLoad, } from "./testObjectProvider.js";
13
21
  export { createSummarizer, createSummarizerCore, createSummarizerFromFactory, summarizeNow, } from "./TestSummaryUtils.js";
14
22
  export { timeoutAwait, timeoutPromise, } from "./timeoutUtils.js";
15
23
  export { toIDeltaManagerFull, waitForContainerConnection, getContainerEntryPointBackCompat, getDataStoreEntryPointBackCompat, } from "./containerUtils.js";
24
+ // #endregion
16
25
  export { createContainerRuntimeFactoryWithDefaultDataStore, } from "./testContainerRuntimeFactoryWithDefaultDataStore.js";
17
26
  export { TestFluidObjectInternal } from "./testFluidObjectInternal.js";
18
27
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAEN,eAAe,EAGf,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAuB,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEN,eAAe,EACf,sBAAsB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAE3B,8BAA8B,EAK9B,kBAAkB,EAClB,mCAAmC,GACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,GAEZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,YAAY,EACZ,cAAc,GAId,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGN,iDAAiD,GACjD,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { IProvideTestFluidObject, ITestFluidObject } from \"./interfaces.js\";\nexport { LoaderContainerTracker } from \"./loaderContainerTracker.js\";\nexport {\n\tfluidEntryPoint,\n\tLocalCodeLoader,\n\tSupportedExportInterfaces,\n\tFactory,\n\tcreateDataStoreFactory,\n} from \"./localCodeLoader.js\";\nexport {\n\tcreateAndAttachContainer,\n\tcreateLoader,\n\tcreateLoaderProps,\n\tcreateAndAttachContainerUsingProps,\n} from \"./localLoader.js\";\nexport { retryWithEventualValue } from \"./retry.js\";\nexport { createTestConfigProvider, ITestConfigProvider } from \"./TestConfigs.js\";\nexport {\n\tcreateTestContainerRuntimeFactory,\n\tTestContainerRuntimeFactory,\n} from \"./testContainerRuntimeFactory.js\";\nexport {\n\tChannelFactoryRegistry,\n\tTestFluidObject,\n\tTestFluidObjectFactory,\n\tTestDataObjectKind,\n} from \"./testFluidObject.js\";\nexport {\n\tcreateDocumentId,\n\tDataObjectFactoryType,\n\tEventAndErrorTrackingLogger,\n\ttype IEventAndErrorTrackingLogger,\n\tgetUnexpectedLogErrorException,\n\tIDocumentIdStrategy,\n\tIOpProcessingController,\n\tITestContainerConfig,\n\tITestObjectProvider,\n\tTestObjectProvider,\n\tTestObjectProviderWithVersionedLoad,\n} from \"./testObjectProvider.js\";\nexport {\n\tcreateSummarizer,\n\tcreateSummarizerCore,\n\tcreateSummarizerFromFactory,\n\tsummarizeNow,\n\tSummaryInfo,\n} from \"./TestSummaryUtils.js\";\nexport {\n\ttimeoutAwait,\n\ttimeoutPromise,\n\ttype TimeoutDurationOption,\n\ttype TimeoutWithError,\n\ttype TimeoutWithValue,\n} from \"./timeoutUtils.js\";\nexport {\n\ttoIDeltaManagerFull,\n\twaitForContainerConnection,\n\tgetContainerEntryPointBackCompat,\n\tgetDataStoreEntryPointBackCompat,\n} from \"./containerUtils.js\";\nexport {\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreConstructor,\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreProps,\n\tcreateContainerRuntimeFactoryWithDefaultDataStore,\n} from \"./testContainerRuntimeFactoryWithDefaultDataStore.js\";\n\nexport { TestFluidObjectInternal } from \"./testFluidObjectInternal.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,GAC9B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEN,eAAe,EAGf,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAuB,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEN,eAAe,EACf,sBAAsB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,wCAAwC;AACxC,yEAAyE;AACzE,iFAAiF;AACjF,+DAA+D;AAC/D,wEAAwE;AACxE,4EAA4E;AAC5E,oDAAoD;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAOrE,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mCAAmC,GACnC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,YAAY,EACZ,cAAc,GAId,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,GAChC,MAAM,qBAAqB,CAAC;AAC7B,aAAa;AAEb,OAAO,EAGN,iDAAiD,GACjD,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type { IEventAndErrorTrackingLogger } from \"./eventAndErrorLogger.js\";\nexport {\n\tEventAndErrorTrackingLogger,\n\tgetUnexpectedLogErrorException,\n} from \"./eventAndErrorLogger.js\";\nexport { IProvideTestFluidObject, ITestFluidObject } from \"./interfaces.js\";\nexport {\n\tfluidEntryPoint,\n\tLocalCodeLoader,\n\tSupportedExportInterfaces,\n\tFactory,\n\tcreateDataStoreFactory,\n} from \"./localCodeLoader.js\";\nexport {\n\tcreateAndAttachContainer,\n\tcreateLoader,\n\tcreateLoaderProps,\n\tcreateAndAttachContainerUsingProps,\n} from \"./localLoader.js\";\nexport { retryWithEventualValue } from \"./retry.js\";\nexport { createTestConfigProvider, ITestConfigProvider } from \"./TestConfigs.js\";\nexport {\n\tcreateTestContainerRuntimeFactory,\n\tTestContainerRuntimeFactory,\n} from \"./testContainerRuntimeFactory.js\";\nexport {\n\tChannelFactoryRegistry,\n\tTestFluidObject,\n\tTestFluidObjectFactory,\n\tTestDataObjectKind,\n} from \"./testFluidObject.js\";\n\n// #region Exports with load side-effect\n// The below runtime (not \"type\") exports transitively or directly import\n// timeoutUtils.ts, which always executes on import and may patch Mocha's timeout\n// handling. That patching only takes effect when consumers use\n// @fluid-internal/mocha-test-setup that sets globalThis.getMochaModule.\n// @fluid-internal/mocha-test-setup is pervasive in our tests and thus patch\n// is usually in effect (when this package is used).\nexport { LoaderContainerTracker } from \"./loaderContainerTracker.js\";\nexport type {\n\tIDocumentIdStrategy,\n\tIOpProcessingController,\n\tITestContainerConfig,\n\tITestObjectProvider,\n} from \"./testObjectProvider.js\";\nexport {\n\tcreateDocumentId,\n\tDataObjectFactoryType,\n\tTestObjectProvider,\n\tTestObjectProviderWithVersionedLoad,\n} from \"./testObjectProvider.js\";\nexport type { SummaryInfo } from \"./TestSummaryUtils.js\";\nexport {\n\tcreateSummarizer,\n\tcreateSummarizerCore,\n\tcreateSummarizerFromFactory,\n\tsummarizeNow,\n} from \"./TestSummaryUtils.js\";\nexport {\n\ttimeoutAwait,\n\ttimeoutPromise,\n\ttype TimeoutDurationOption,\n\ttype TimeoutWithError,\n\ttype TimeoutWithValue,\n} from \"./timeoutUtils.js\";\nexport {\n\ttoIDeltaManagerFull,\n\twaitForContainerConnection,\n\tgetContainerEntryPointBackCompat,\n\tgetDataStoreEntryPointBackCompat,\n} from \"./containerUtils.js\";\n// #endregion\n\nexport {\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreConstructor,\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreProps,\n\tcreateContainerRuntimeFactoryWithDefaultDataStore,\n} from \"./testContainerRuntimeFactoryWithDefaultDataStore.js\";\n\nexport { TestFluidObjectInternal } from \"./testFluidObjectInternal.js\";\n"]}
package/lib/legacy.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  /*
7
7
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
8
- * Generated by "flub generate entrypoints" in @fluid-tools/build-cli.
8
+ * Generated by "flub generate entrypoints --outFileLegacyBeta legacy --outDir ./lib --node10TypeCompat" in @fluid-tools/build-cli.
9
9
  */
10
10
 
11
11
  export {
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/test-utils";
8
- export declare const pkgVersion = "2.90.0";
8
+ export declare const pkgVersion = "2.92.0";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export const pkgName = "@fluidframework/test-utils";
8
- export const pkgVersion = "2.90.0";
8
+ export const pkgVersion = "2.92.0";
9
9
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,4BAA4B,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/test-utils\";\nexport const pkgVersion = \"2.90.0\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,4BAA4B,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/test-utils\";\nexport const pkgVersion = \"2.92.0\";\n"]}
package/lib/public.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  /*
7
7
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
8
- * Generated by "flub generate entrypoints" in @fluid-tools/build-cli.
8
+ * Generated by "flub generate entrypoints --outFileLegacyBeta legacy --outDir ./lib --node10TypeCompat" in @fluid-tools/build-cli.
9
9
  */
10
10
 
11
11
  export {}
@@ -6,10 +6,12 @@ import { ITestDriver } from "@fluid-internal/test-driver-definitions";
6
6
  import { IContainer, IFluidCodeDetails, IHostLoader } from "@fluidframework/container-definitions/internal";
7
7
  import { ILoaderProps, Loader } from "@fluidframework/container-loader/internal";
8
8
  import type { IContainerRuntimeOptionsInternal } from "@fluidframework/container-runtime/internal";
9
- import { IRequestHeader, ITelemetryBaseEvent, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
9
+ import { IRequestHeader, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
10
10
  import { IDocumentServiceFactory, IResolvedUrl, IUrlResolver } from "@fluidframework/driver-definitions/internal";
11
11
  import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
12
- import { type ITelemetryGenericEventExt, type ITelemetryLoggerPropertyBags } from "@fluidframework/telemetry-utils/internal";
12
+ import { type ITelemetryLoggerPropertyBags } from "@fluidframework/telemetry-utils/internal";
13
+ import type { IEventAndErrorTrackingLogger } from "./eventAndErrorLogger.js";
14
+ import { EventAndErrorTrackingLogger } from "./eventAndErrorLogger.js";
13
15
  import { fluidEntryPoint } from "./localCodeLoader.js";
14
16
  import { ChannelFactoryRegistry } from "./testFluidObject.js";
15
17
  /**
@@ -207,44 +209,6 @@ export interface IDocumentIdStrategy {
207
209
  */
208
210
  reset(): void;
209
211
  }
210
- /** @internal */
211
- export interface IEventAndErrorTrackingLogger {
212
- registerExpectedEvent: (...orderedExpectedEvents: ITelemetryGenericEventExt[]) => void;
213
- reportAndClearTrackedEvents: () => {
214
- expectedNotFound: {
215
- index: number;
216
- event: ITelemetryGenericEventExt;
217
- }[];
218
- unexpectedErrors: ITelemetryBaseEvent[];
219
- };
220
- }
221
- /**
222
- * This class tracks events. It allows specifying expected events, which will be looked for in order.
223
- * It also tracks all unexpected errors.
224
- * At any point you call reportAndClearTrackedEvents which will provide all unexpected errors, and
225
- * any expected events that have not occurred.
226
- * @internal
227
- */
228
- export declare class EventAndErrorTrackingLogger implements ITelemetryBaseLogger, IEventAndErrorTrackingLogger {
229
- private readonly baseLogger?;
230
- /**
231
- * Even if these error events are logged, tests should still be allowed to pass
232
- * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
233
- */
234
- private readonly allowedErrors;
235
- constructor(baseLogger?: ITelemetryBaseLogger | undefined);
236
- private readonly expectedEvents;
237
- private readonly unexpectedErrors;
238
- registerExpectedEvent(...orderedExpectedEvents: ITelemetryGenericEventExt[]): void;
239
- send(event: ITelemetryBaseEvent): void;
240
- reportAndClearTrackedEvents(): {
241
- expectedNotFound: {
242
- index: number;
243
- event: ITelemetryGenericEventExt;
244
- }[];
245
- unexpectedErrors: ITelemetryBaseEvent[];
246
- };
247
- }
248
212
  /**
249
213
  * Shared base class for test object provider. Contain code for loader and container creation and loading
250
214
  * @internal
@@ -478,10 +442,4 @@ export declare class TestObjectProviderWithVersionedLoad implements ITestObjectP
478
442
  */
479
443
  resetLoaderContainerTracker(syncSummarizerClients?: boolean): void;
480
444
  }
481
- /**
482
- * Retrieves unexpected errors from a logger and returns them as an exception.
483
- *
484
- * @internal
485
- */
486
- export declare function getUnexpectedLogErrorException(logger: IEventAndErrorTrackingLogger | undefined, prefix?: string): Error | undefined;
487
445
  //# sourceMappingURL=testObjectProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testObjectProvider.d.ts","sourceRoot":"","sources":["../src/testObjectProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testObjectProvider.d.ts","sourceRoot":"","sources":["../src/testObjectProvider.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,10 @@ import { assert } from "@fluidframework/core-utils/internal";
7
7
  import { isOdspResolvedUrl } from "@fluidframework/odsp-driver/internal";
8
8
  import { createChildLogger, createMultiSinkLogger, TelemetryDataTag, tagData, } from "@fluidframework/telemetry-utils/internal";
9
9
  import { v4 as uuid } from "uuid";
10
+ import { EventAndErrorTrackingLogger, getUnexpectedLogErrorException, } from "./eventAndErrorLogger.js";
10
11
  import { LoaderContainerTracker } from "./loaderContainerTracker.js";
11
12
  import { LocalCodeLoader } from "./localCodeLoader.js";
12
13
  import { createAndAttachContainer } from "./localLoader.js";
13
- import { isNonEmptyArray } from "./nonEmptyArrayType.js";
14
14
  const defaultCodeDetails = {
15
15
  package: "defaultTestPackage",
16
16
  config: {},
@@ -57,86 +57,6 @@ function getDocumentIdStrategy(type) {
57
57
  };
58
58
  }
59
59
  }
60
- /**
61
- * This class tracks events. It allows specifying expected events, which will be looked for in order.
62
- * It also tracks all unexpected errors.
63
- * At any point you call reportAndClearTrackedEvents which will provide all unexpected errors, and
64
- * any expected events that have not occurred.
65
- * @internal
66
- */
67
- export class EventAndErrorTrackingLogger {
68
- constructor(baseLogger) {
69
- this.baseLogger = baseLogger;
70
- /**
71
- * Even if these error events are logged, tests should still be allowed to pass
72
- * Additionally, if downgrade is true, then log as generic (e.g. to avoid polluting the e2e test logs)
73
- */
74
- this.allowedErrors = [
75
- // This log was removed in current version as unnecessary, but it's still present in previous versions
76
- {
77
- eventName: "fluid:telemetry:Container:NoRealStorageInDetachedContainer",
78
- downgrade: true,
79
- },
80
- // This log's category changes depending on the op latency. test results shouldn't be affected but if we see lots we'd like an alert from the logs.
81
- { eventName: "fluid:telemetry:OpRoundtripTime" },
82
- ];
83
- this.expectedEvents = [];
84
- this.unexpectedErrors = [];
85
- }
86
- registerExpectedEvent(...orderedExpectedEvents) {
87
- if (this.expectedEvents.length !== 0) {
88
- // we don't have to error here. just no reason not to. given the events must be
89
- // ordered it could be tricky to figure out problems around multiple registrations.
90
- throw new Error("Expected events already registered.\n" +
91
- "Call reportAndClearTrackedEvents to clear them before registering more");
92
- }
93
- this.expectedEvents.push(...orderedExpectedEvents.map((event, index) => ({ index, event })));
94
- }
95
- send(event) {
96
- if (isNonEmptyArray(this.expectedEvents)) {
97
- const ee = this.expectedEvents[0].event;
98
- if (ee.eventName === event.eventName) {
99
- let matches = true;
100
- for (const key of Object.keys(ee)) {
101
- if (ee[key] !== event[key]) {
102
- matches = false;
103
- break;
104
- }
105
- }
106
- if (matches) {
107
- // we found an expected event
108
- // so remove it from the list of expected events
109
- // and if it is an error, change it to generic
110
- // this helps keep our telemetry clear of
111
- // expected errors.
112
- this.expectedEvents.shift();
113
- if (event.category === "error") {
114
- event.category = "generic";
115
- }
116
- }
117
- }
118
- }
119
- if (event.category === "error") {
120
- // Check to see if this error is allowed and if its category should be downgraded
121
- const allowedError = this.allowedErrors.find(({ eventName }) => eventName === event.eventName);
122
- if (allowedError === undefined) {
123
- this.unexpectedErrors.push(event);
124
- }
125
- else if (allowedError.downgrade) {
126
- event.category = "generic";
127
- }
128
- }
129
- this.baseLogger?.send(event);
130
- }
131
- reportAndClearTrackedEvents() {
132
- const expectedNotFound = this.expectedEvents.splice(0, this.expectedEvents.length);
133
- const unexpectedErrors = this.unexpectedErrors.splice(0, this.unexpectedErrors.length);
134
- return {
135
- expectedNotFound,
136
- unexpectedErrors,
137
- };
138
- }
139
- }
140
60
  /**
141
61
  * Shared base class for test object provider. Contain code for loader and container creation and loading
142
62
  * @internal
@@ -678,29 +598,4 @@ function getUrlTelemetryProps(resolvedUrl) {
678
598
  }
679
599
  return tagData(TelemetryDataTag.UserData, props);
680
600
  }
681
- /** Summarize the event with just the primary properties, for succinct output in case of test failure */
682
- const primaryEventProps = ({ category, eventName, error, errorType, }) => ({
683
- category,
684
- eventName,
685
- error,
686
- errorType,
687
- ["..."]: "*** Additional properties not shown, see full log for details ***",
688
- });
689
- /**
690
- * Retrieves unexpected errors from a logger and returns them as an exception.
691
- *
692
- * @internal
693
- */
694
- export function getUnexpectedLogErrorException(logger, prefix) {
695
- if (logger === undefined) {
696
- return;
697
- }
698
- const results = logger.reportAndClearTrackedEvents();
699
- if (results.unexpectedErrors.length > 0) {
700
- return new Error(`${prefix ?? ""}Unexpected Errors in Logs:\n${JSON.stringify(results.unexpectedErrors.map(primaryEventProps), undefined, 2)}`);
701
- }
702
- if (results.expectedNotFound.length > 0) {
703
- return new Error(`${prefix ?? ""}Expected Events not found:\n${JSON.stringify(results.expectedNotFound, undefined, 2)}`);
704
- }
705
- }
706
601
  //# sourceMappingURL=testObjectProvider.js.map