@fluidframework/aqueduct 0.59.2001 → 0.59.3000
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/dist/container-runtime-factories/baseContainerRuntimeFactory.js +1 -1
- package/dist/container-runtime-factories/baseContainerRuntimeFactory.js.map +1 -1
- package/dist/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.js +1 -1
- package/dist/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
- package/dist/container-services/containerServices.js +3 -3
- package/dist/container-services/containerServices.js.map +1 -1
- package/dist/data-object-factories/dataObjectFactory.d.ts.map +1 -1
- package/dist/data-object-factories/dataObjectFactory.js.map +1 -1
- package/dist/data-object-factories/pureDataObjectFactory.d.ts.map +1 -1
- package/dist/data-object-factories/pureDataObjectFactory.js +1 -1
- package/dist/data-object-factories/pureDataObjectFactory.js.map +1 -1
- package/dist/data-objects/dataObject.d.ts.map +1 -1
- package/dist/data-objects/dataObject.js +1 -1
- package/dist/data-objects/dataObject.js.map +1 -1
- package/dist/data-objects/pureDataObject.js +5 -5
- package/dist/data-objects/pureDataObject.js.map +1 -1
- package/dist/request-handlers/requestHandlers.js +2 -2
- package/dist/request-handlers/requestHandlers.js.map +1 -1
- package/dist/test/containerServices.spec.js +31 -31
- package/dist/test/containerServices.spec.js.map +1 -1
- package/dist/test/defaultRoute.spec.js +9 -9
- package/dist/test/defaultRoute.spec.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +1 -4917
- package/dist/test/types/validateAqueductPrevious.js.map +1 -1
- package/lib/data-object-factories/dataObjectFactory.js.map +1 -1
- package/lib/data-object-factories/pureDataObjectFactory.js.map +1 -1
- package/lib/data-objects/dataObject.js.map +1 -1
- package/lib/data-objects/pureDataObject.js.map +1 -1
- package/lib/request-handlers/requestHandlers.js.map +1 -1
- package/package.json +18 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerServices.spec.js","sourceRoot":"","sources":["../../src/test/containerServices.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;AACH,kEAAkE;;AAElE,mCAA0C;AAG1C,iEAA8D;AAC9D,8DAI+B;AAE/B,MAAM,oBAAqB,SAAQ,yCAAoB;IAAvD;;QACW,UAAK,GAAW,EAAE,CAAC;IAU9B,CAAC;IARU,KAAK,CAAC,OAAO,CAAC,OAAiB;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;QACzB,OAAO;YACH,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;CACJ;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACrD,EAAE,CAAC,cAAc,yCAAoB,wBAAwB,EAAE,KAAK,IAAI,EAAE;gBACtE,MAAM,cAAc,GAAG,4DAAuC,CAAC,EAAE,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,EAAE,EAAE,CAAC,CAAC;gBAEhF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;gBAChE,MAAM,cAAc,GAAG,4DAAuC,CAAC,EAAE,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;gBAC7D,MAAM,cAAc,GAAG,4DAAuC,CAAC;oBAC3D,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;iBACpD,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;gBACzE,MAAM,cAAc,GAAG,4DAAuC,CAAC;oBAC3D,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;iBACvC,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,eAAe,EAAE,CAAC,CAAC;gBAE7F,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACpE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAuB,CAAC,CAAC;gBACnE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,cAAc,GAAG,4DAAuC,CAAC,UAAU,CAAC,CAAC;gBAC3E,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBAC7D,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,MAAK,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;gBAClE,MAAM,cAAc,GAAG,4DAAuC,CAAC;oBAC3D,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;iBACpD,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAC/E,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE/E,eAAM,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,OAAK,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,EAAE,6BAA6B,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAuB,CAAC,CAAC;gBACnE,MAAM,cAAc,GAAG,4DAAuC,CAAC;oBAC3D,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;iBACjC,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBAC7D,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,MAAK,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;gBAChG,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAuB,CAAC,CAAC;gBACnE,MAAM,cAAc,GAAG,4DAAuC,CAAC;oBAC3D,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACjD,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;iBACjC,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBAC7D,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,MAAK,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAuB,CAAC,CAAC;gBACnE,MAAM,cAAc,GAAG,4DAAuC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjG,MAAM,aAAa,GAAG,6BAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,yCAAoB,WAAW,EAAE,CAAC,CAAC;gBAEzF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,EAAuB,CAAC,CAAC;gBAE9E,eAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;gBACtC,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBAC7D,eAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,MAAK,QAAQ,EAAE,2BAA2B,CAAC,CAAC;gBAClE,eAAM,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAA8B,CAAA,CAAC,KAAK,KAAK,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC/F,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* eslint-disable @typescript-eslint/consistent-type-assertions */\n\nimport { strict as assert } from \"assert\";\nimport { IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { RequestParser } from \"@fluidframework/runtime-utils\";\nimport {\n BaseContainerService,\n generateContainerServicesRequestHandler,\n serviceRoutePathRoot,\n} from \"../container-services\";\n\nclass ContainerServiceMock extends BaseContainerService {\n public route: string = \"\";\n\n public async request(request: IRequest): Promise<IResponse> {\n this.route = request.url;\n return {\n status: 200,\n mimeType: \"fluid/object\",\n value: this,\n };\n }\n}\n\ndescribe(\"Routerlicious\", () => {\n describe(\"Aqueduct\", () => {\n describe(\"generateContainerServicesRequestHandler\", () => {\n it(`Request to ${serviceRoutePathRoot} and no id should fail`, async () => {\n const requestHandler = generateContainerServicesRequestHandler([]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 400, \"Returned 400 Status Code\");\n });\n\n it(\"Unknown service should return 404 with no services\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 404, \"Returned 404 Status Code\");\n });\n\n it(\"Unknown service should return 404 with services\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id2` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 404, \"Returned 404 Status Code\");\n });\n\n it(\"Request to non-routeable service with sub-route should fail\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => { return {}; }],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1/subroute` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 400, \"Returned 400 Status Code\");\n });\n\n it(\"Correct service should be returned with single service\", async () => {\n const service1 = new ContainerServiceMock({} as IContainerRuntime);\n const serviceMap = new Map();\n serviceMap.set(\"id1\", async (r) => service1);\n const requestHandler = generateContainerServicesRequestHandler(serviceMap);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service1, \"Returned expected service\");\n });\n\n it(\"Same service should be returned twice with two calls\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response1 = await requestHandler(requestParser, {} as IContainerRuntime);\n const response2 = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response1?.value === response2?.value, \"Returned same service twice\");\n });\n\n it(\"Correct service should be returned with multiple services\", async () => {\n const service2 = new ContainerServiceMock({} as IContainerRuntime);\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id2\", async (r) => service2],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id2` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service2, \"Returned expected service\");\n });\n\n it(\"Last registered service should be returned with multiple services of the same name\", async () => {\n const service1 = new ContainerServiceMock({} as IContainerRuntime);\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => service1],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service1, \"Returned expected service\");\n });\n\n it(\"Sub-route should be persisted through\", async () => {\n const service1 = new ContainerServiceMock({} as IContainerRuntime);\n const requestHandler = generateContainerServicesRequestHandler([[\"id1\", async (r) => service1]]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1/sub1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service1, \"Returned expected service\");\n assert((response?.value as ContainerServiceMock).route === \"/sub1\", \"sub-route persisted\");\n });\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"containerServices.spec.js","sourceRoot":"","sources":["../../src/test/containerServices.spec.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/* eslint-disable @typescript-eslint/consistent-type-assertions */\n\nimport { strict as assert } from \"assert\";\nimport { IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { RequestParser } from \"@fluidframework/runtime-utils\";\nimport {\n BaseContainerService,\n generateContainerServicesRequestHandler,\n serviceRoutePathRoot,\n} from \"../container-services\";\n\nclass ContainerServiceMock extends BaseContainerService {\n public route: string = \"\";\n\n public async request(request: IRequest): Promise<IResponse> {\n this.route = request.url;\n return {\n status: 200,\n mimeType: \"fluid/object\",\n value: this,\n };\n }\n}\n\ndescribe(\"Routerlicious\", () => {\n describe(\"Aqueduct\", () => {\n describe(\"generateContainerServicesRequestHandler\", () => {\n it(`Request to ${serviceRoutePathRoot} and no id should fail`, async () => {\n const requestHandler = generateContainerServicesRequestHandler([]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 400, \"Returned 400 Status Code\");\n });\n\n it(\"Unknown service should return 404 with no services\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 404, \"Returned 404 Status Code\");\n });\n\n it(\"Unknown service should return 404 with services\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id2` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 404, \"Returned 404 Status Code\");\n });\n\n it(\"Request to non-routeable service with sub-route should fail\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => { return {}; }],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1/subroute` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 400, \"Returned 400 Status Code\");\n });\n\n it(\"Correct service should be returned with single service\", async () => {\n const service1 = new ContainerServiceMock({} as IContainerRuntime);\n const serviceMap = new Map();\n serviceMap.set(\"id1\", async (r) => service1);\n const requestHandler = generateContainerServicesRequestHandler(serviceMap);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service1, \"Returned expected service\");\n });\n\n it(\"Same service should be returned twice with two calls\", async () => {\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response1 = await requestHandler(requestParser, {} as IContainerRuntime);\n const response2 = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response1?.value === response2?.value, \"Returned same service twice\");\n });\n\n it(\"Correct service should be returned with multiple services\", async () => {\n const service2 = new ContainerServiceMock({} as IContainerRuntime);\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id2\", async (r) => service2],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id2` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service2, \"Returned expected service\");\n });\n\n it(\"Last registered service should be returned with multiple services of the same name\", async () => {\n const service1 = new ContainerServiceMock({} as IContainerRuntime);\n const requestHandler = generateContainerServicesRequestHandler([\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => new ContainerServiceMock(r)],\n [\"id1\", async (r) => service1],\n ]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service1, \"Returned expected service\");\n });\n\n it(\"Sub-route should be persisted through\", async () => {\n const service1 = new ContainerServiceMock({} as IContainerRuntime);\n const requestHandler = generateContainerServicesRequestHandler([[\"id1\", async (r) => service1]]);\n const requestParser = RequestParser.create({ url: `/${serviceRoutePathRoot}/id1/sub1` });\n\n const response = await requestHandler(requestParser, {} as IContainerRuntime);\n\n assert(response, \"Response returned\");\n assert(response?.status === 200, \"Returned 200 Status Code\");\n assert(response?.value === service1, \"Returned expected service\");\n assert((response?.value as ContainerServiceMock).route === \"/sub1\", \"sub-route persisted\");\n });\n });\n });\n});\n"]}
|
|
@@ -16,13 +16,13 @@ class MockRuntime {
|
|
|
16
16
|
return {
|
|
17
17
|
request: async (r) => {
|
|
18
18
|
if (r.url === "/" || r.url === "/route") {
|
|
19
|
-
return request_handler_1.createFluidObjectResponse({ route: r.url });
|
|
19
|
+
return (0, request_handler_1.createFluidObjectResponse)({ route: r.url });
|
|
20
20
|
}
|
|
21
|
-
return runtime_utils_1.create404Response(r);
|
|
21
|
+
return (0, runtime_utils_1.create404Response)(r);
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
assert_1.strict(wait !== true);
|
|
25
|
+
(0, assert_1.strict)(wait !== true);
|
|
26
26
|
throw new Error("No data store");
|
|
27
27
|
}
|
|
28
28
|
async resolveHandle(request) {
|
|
@@ -34,33 +34,33 @@ class MockRuntime {
|
|
|
34
34
|
const subRequest = requestParser.createSubRequest(1);
|
|
35
35
|
return dataStore.request(subRequest);
|
|
36
36
|
}
|
|
37
|
-
return runtime_utils_1.create404Response(request);
|
|
37
|
+
return (0, runtime_utils_1.create404Response)(request);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
async function assertRejected(p) {
|
|
41
41
|
try {
|
|
42
42
|
const res = await p;
|
|
43
|
-
assert_1.strict(res === undefined || res.status === 404, "not rejected");
|
|
43
|
+
(0, assert_1.strict)(res === undefined || res.status === 404, "not rejected");
|
|
44
44
|
}
|
|
45
45
|
catch (err) { }
|
|
46
46
|
}
|
|
47
47
|
describe("defaultRouteRequestHandler", () => {
|
|
48
48
|
const runtime = new MockRuntime();
|
|
49
49
|
it("Data store request with default ID", async () => {
|
|
50
|
-
const handler = request_handlers_1.defaultRouteRequestHandler("objectId");
|
|
50
|
+
const handler = (0, request_handlers_1.defaultRouteRequestHandler)("objectId");
|
|
51
51
|
const requestParser = runtime_utils_1.RequestParser.create({ url: "", headers: {} });
|
|
52
52
|
const response = await handler(requestParser, runtime);
|
|
53
|
-
assert_1.strict(response);
|
|
53
|
+
(0, assert_1.strict)(response);
|
|
54
54
|
assert_1.strict.equal(response.status, 200);
|
|
55
55
|
assert_1.strict.equal(response.value.route, "/");
|
|
56
56
|
const requestParser2 = runtime_utils_1.RequestParser.create({ url: "/", headers: {} });
|
|
57
57
|
const response2 = await handler(requestParser2, runtime);
|
|
58
|
-
assert_1.strict(response2);
|
|
58
|
+
(0, assert_1.strict)(response2);
|
|
59
59
|
assert_1.strict.equal(response2.status, 200);
|
|
60
60
|
assert_1.strict.equal(response.value.route, "/");
|
|
61
61
|
});
|
|
62
62
|
it("Data store request with non-existing default ID", async () => {
|
|
63
|
-
const handler = request_handlers_1.defaultRouteRequestHandler("foobar");
|
|
63
|
+
const handler = (0, request_handlers_1.defaultRouteRequestHandler)("foobar");
|
|
64
64
|
const requestParser = runtime_utils_1.RequestParser.create({ url: "", headers: { wait: true } });
|
|
65
65
|
const responseP = handler(requestParser, runtime);
|
|
66
66
|
await assertRejected(responseP);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultRoute.spec.js","sourceRoot":"","sources":["../../src/test/defaultRoute.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;AACH,kEAAkE;;AAElE,mCAA0C;AAC1C,iEAAiF;AAQjF,qEAA4E;AAC5E,0DAAiE;AAEjE,MAAM,WAAW;IACb,IAAW,mBAAmB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1C,KAAK,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI;QAClC,IAAI,EAAE,KAAK,UAAU,EAAE;YACnB,OAAO;gBACH,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;oBACjB,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;wBACrC,OAAO,2CAAyB,
|
|
1
|
+
{"version":3,"file":"defaultRoute.spec.js","sourceRoot":"","sources":["../../src/test/defaultRoute.spec.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/* eslint-disable @typescript-eslint/consistent-type-assertions */\n\nimport { strict as assert } from \"assert\";\nimport { RequestParser, create404Response } from \"@fluidframework/runtime-utils\";\nimport { IContainerRuntime } from \"@fluidframework/container-runtime-definitions\";\nimport { IFluidDataStoreChannel } from \"@fluidframework/runtime-definitions\";\nimport {\n IRequest,\n IResponse,\n IFluidRouter,\n} from \"@fluidframework/core-interfaces\";\nimport { createFluidObjectResponse } from \"@fluidframework/request-handler\";\nimport { defaultRouteRequestHandler } from \"../request-handlers\";\n\nclass MockRuntime {\n public get IFluidHandleContext() { return this; }\n\n public async getRootDataStore(id, wait): Promise<IFluidRouter> {\n if (id === \"objectId\") {\n return {\n request: async (r) => {\n if (r.url === \"/\" || r.url === \"/route\") {\n return createFluidObjectResponse({ route: r.url });\n }\n return create404Response(r);\n },\n } as IFluidDataStoreChannel;\n }\n\n assert(wait !== true);\n throw new Error(\"No data store\");\n }\n\n protected async resolveHandle(request: IRequest) {\n const requestParser = RequestParser.create(request);\n\n if (requestParser.pathParts.length > 0) {\n const wait =\n typeof request.headers?.wait === \"boolean\" ? request.headers.wait : undefined;\n\n const dataStore = await this.getRootDataStore(requestParser.pathParts[0], wait);\n const subRequest = requestParser.createSubRequest(1);\n return dataStore.request(subRequest);\n }\n return create404Response(request);\n }\n}\n\nasync function assertRejected(p: Promise<IResponse | undefined>) {\n try {\n const res = await p;\n assert(res === undefined || res.status === 404, \"not rejected\");\n } catch (err) { }\n}\n\ndescribe(\"defaultRouteRequestHandler\", () => {\n const runtime = new MockRuntime() as any as IContainerRuntime;\n\n it(\"Data store request with default ID\", async () => {\n const handler = defaultRouteRequestHandler(\"objectId\");\n\n const requestParser = RequestParser.create({ url: \"\", headers: {} });\n const response = await handler(requestParser, runtime);\n assert(response);\n assert.equal(response.status, 200);\n assert.equal(response.value.route, \"/\");\n\n const requestParser2 = RequestParser.create({ url: \"/\", headers: {} });\n const response2 = await handler(requestParser2, runtime);\n assert(response2);\n assert.equal(response2.status, 200);\n assert.equal(response.value.route, \"/\");\n });\n\n it(\"Data store request with non-existing default ID\", async () => {\n const handler = defaultRouteRequestHandler(\"foobar\");\n\n const requestParser = RequestParser.create({ url: \"\", headers: { wait: true } });\n const responseP = handler(requestParser, runtime);\n await assertRejected(responseP);\n\n const requestParser2 = RequestParser.create({ url: \"/\", headers: { wait: true } });\n const responseP2 = handler(requestParser2, runtime);\n await assertRejected(responseP2);\n });\n});\n"]}
|