diff --git a/packages/framework/client-logger/fluid-telemetry/package.json b/packages/framework/client-logger/fluid-telemetry/package.json index 4116c06d0490..dc672595450a 100644 --- a/packages/framework/client-logger/fluid-telemetry/package.json +++ b/packages/framework/client-logger/fluid-telemetry/package.json @@ -87,6 +87,7 @@ "test:mocha:esm:unit": "mocha --recursive \"lib/test/**/*.spec.js\"", "test:realsvc": "npm run test:realsvc:tinylicious", "test:realsvc:tinylicious": "start-server-and-test start:tinylicious:test 7070 test:realsvc:tinylicious:run", + "test:realsvc:tinylicious:report": "npm run test:realsvc:tinylicious", "test:realsvc:tinylicious:run": "npm run test:mocha:end-to-end", "tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../../common/build/build-common/src/cjs/package.json ./dist", "typetests:gen": "flub generate typetests --dir . -v", diff --git a/packages/service-clients/azure-client/package.json b/packages/service-clients/azure-client/package.json index 83a9ca81b659..7efbdb7eea27 100644 --- a/packages/service-clients/azure-client/package.json +++ b/packages/service-clients/azure-client/package.json @@ -85,8 +85,9 @@ "start:tinylicious:test": "npx @fluidframework/azure-local-service > tinylicious.log 2>&1", "test": "npm run test:realsvc", "test:realsvc": "npm run test:realsvc:tinylicious", - "test:realsvc:local:run": "mocha --recursive \"lib/test/**/*.spec.*js\" --timeout 10000", - "test:realsvc:tinylicious": "start-server-and-test start:tinylicious:test 7070 test:realsvc:local:run", + "test:realsvc:tinylicious": "start-server-and-test start:tinylicious:test 7070 test:realsvc:tinylicious:run", + "test:realsvc:tinylicious:report": "npm run test:realsvc:tinylicious", + "test:realsvc:tinylicious:run": "mocha --recursive \"lib/test/**/*.spec.*js\" --exit", "tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist", "typetests:gen": "flub generate typetests --dir . -v", "typetests:prepare": "flub typetests --dir . --reset --previous --normalize" diff --git a/packages/service-clients/tinylicious-client/package.json b/packages/service-clients/tinylicious-client/package.json index 9a0cd002b6fa..5d443fa0198f 100644 --- a/packages/service-clients/tinylicious-client/package.json +++ b/packages/service-clients/tinylicious-client/package.json @@ -79,6 +79,7 @@ "test": "npm run test:realsvc", "test:realsvc": "npm run test:realsvc:tinylicious", "test:realsvc:tinylicious": "start-server-and-test start:tinylicious:test 7070 test:realsvc:tinylicious:run", + "test:realsvc:tinylicious:report": "npm run test:realsvc:tinylicious", "test:realsvc:tinylicious:run": "mocha --recursive \"lib/test/**/*.spec.*js\" --exit", "tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist", "typetests:gen": "flub generate typetests --dir . -v", diff --git a/packages/service-clients/tinylicious-client/src/test/TinyliciousClient.spec.ts b/packages/service-clients/tinylicious-client/src/test/TinyliciousClient.spec.ts index 0a518c2d6d2f..52436fcce456 100644 --- a/packages/service-clients/tinylicious-client/src/test/TinyliciousClient.spec.ts +++ b/packages/service-clients/tinylicious-client/src/test/TinyliciousClient.spec.ts @@ -5,8 +5,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ - /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ @@ -30,14 +28,9 @@ import { TinyliciousClient } from "../index.js"; import { TestDataObject } from "./TestDataObject.js"; -const corruptedAliasOp = async ( - runtime: IContainerRuntime, - alias: string, -): Promise => - new Promise((resolve, reject) => { - runtime.once("dispose", () => reject(new Error("Runtime disposed"))); - (runtime as any).submit(ContainerMessageType.Alias, { id: alias }, resolve); - }).catch((error) => new Error(error.message)); +const corruptedAliasOp = (runtime: IContainerRuntime, alias: string): void => { + (runtime as any).submit({ type: ContainerMessageType.Alias, contents: { id: alias } }); +}; const runtimeOf = (dataObject: TestDataObject): IContainerRuntime => (dataObject as any).context.containerRuntime as IContainerRuntime; @@ -45,17 +38,16 @@ const runtimeOf = (dataObject: TestDataObject): IContainerRuntime => const connectionModeOf = (container: IFluidContainer): ConnectionMode => (container as any).container.connectionMode as ConnectionMode; -const allDataCorruption = async (containers: IFluidContainer[]): Promise => - Promise.all( - containers.map( - async (c) => - new Promise((resolve) => - c.once("disposed", (error) => { - resolve(error?.errorType === ContainerErrorTypes.dataCorruptionError); - }), - ), - ), - ).then((all) => !all.includes(false)); +const waitForDataCorruption = async (container: IFluidContainer): Promise => + new Promise((resolve, reject) => + container.once("disposed", (error) => { + if (error?.errorType === ContainerErrorTypes.dataCorruptionError) { + resolve(); + } else { + reject(error); + } + }), + ); for (const compatibilityMode of ["1", "2"] as const) { describe(`TinyliciousClient (compatibilityMode: ${compatibilityMode})`, function () { @@ -362,9 +354,11 @@ for (const compatibilityMode of ["1", "2"] as const) { }); const do1 = createFluidContainer.initialObjects.do1; - const dataCorruption = allDataCorruption([createFluidContainer]); - await corruptedAliasOp(runtimeOf(do1), "alias"); - assert(await dataCorruption); + const dataCorruptionP = waitForDataCorruption(createFluidContainer); + corruptedAliasOp(runtimeOf(do1), "alias"); + // dataCorruptionP resolves if the container disposes with the expected error, rejects + // if it disposes with any other error. + await dataCorruptionP; }); /**