@rockcarver/frodo-lib 0.16.2-2 → 0.16.2-4
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/CHANGELOG.md +9 -1
- package/cjs/api/AgentApi.js +221 -0
- package/cjs/api/AgentApi.js.map +1 -0
- package/cjs/api/AgentApi.test.js.map +1 -0
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/BaseApi.js +17 -13
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js +47 -0
- package/cjs/ext/axios-curlirize/curlirize.js.map +1 -0
- package/cjs/ext/axios-curlirize/lib/CurlHelper.js +74 -0
- package/cjs/ext/axios-curlirize/lib/CurlHelper.js.map +1 -0
- package/cjs/index.js +5 -1
- package/cjs/index.js.map +1 -1
- package/cjs/ops/AgentOps.js +805 -0
- package/cjs/ops/AgentOps.js.map +1 -0
- package/cjs/ops/AgentOps.test.js.map +1 -0
- package/cjs/ops/AuthenticateOps.js +8 -8
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/cjs/test/mocks/AgentApi/findAgentById/ajays_client.json +19 -0
- package/cjs/test/mocks/AgentApi/findAgentById/apacheagent.json +142 -0
- package/cjs/test/mocks/AgentApi/findAgentById/api_client.json +19 -0
- package/cjs/test/mocks/AgentApi/findAgentById/ig_chico.json +19 -0
- package/cjs/test/mocks/AgentApi/findAgentById/ig_mytestrun_com.json +29 -0
- package/cjs/test/mocks/AgentApi/findAgentById/javaAgent.json +190 -0
- package/cjs/test/mocks/AgentApi/findAgentById/tomcatagent.json +191 -0
- package/cjs/test/mocks/AgentApi/findAgentById/webserver.json +144 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +23 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +33 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/javaAgent.json +193 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/tomcatagent.json +195 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/apacheagent.json +145 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/webserver.json +148 -0
- package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/not_found.json +8 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/cjs/test/mocks/AgentApi/getAgentTypes/agentTypes.json +54 -0
- package/cjs/test/mocks/AgentApi/getAgents/agents.json +3862 -0
- package/cjs/test/mocks/AgentApi/getAgentsByType/IdentityGatewayAgents.json +73 -0
- package/cjs/test/mocks/AgentApi/getAgentsByType/J2EEAgents.json +379 -0
- package/cjs/test/mocks/AgentApi/getAgentsByType/WebAgents.json +284 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +147 -20
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/esm/api/AgentApi.mjs +164 -0
- package/esm/api/AgentApi.test.mjs +267 -0
- package/esm/api/BaseApi.mjs +17 -5
- package/esm/ext/axios-curlirize/curlirize.mjs +38 -0
- package/esm/ext/axios-curlirize/lib/CurlHelper.mjs +67 -0
- package/esm/index.mjs +2 -0
- package/esm/ops/AgentOps.mjs +576 -0
- package/esm/ops/AgentOps.test.mjs +1212 -0
- package/esm/ops/AuthenticateOps.mjs +8 -8
- package/esm/ops/JourneyOps.test.mjs +4 -8
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/esm/test/mocks/AgentApi/findAgentById/ajays_client.json +19 -0
- package/esm/test/mocks/AgentApi/findAgentById/apacheagent.json +142 -0
- package/esm/test/mocks/AgentApi/findAgentById/api_client.json +19 -0
- package/esm/test/mocks/AgentApi/findAgentById/ig_chico.json +19 -0
- package/esm/test/mocks/AgentApi/findAgentById/ig_mytestrun_com.json +29 -0
- package/esm/test/mocks/AgentApi/findAgentById/javaAgent.json +190 -0
- package/esm/test/mocks/AgentApi/findAgentById/tomcatagent.json +191 -0
- package/esm/test/mocks/AgentApi/findAgentById/webserver.json +144 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +23 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +33 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/javaAgent.json +193 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/tomcatagent.json +195 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/apacheagent.json +145 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/webserver.json +148 -0
- package/esm/test/mocks/AgentApi/findAgentByTypeAndId/not_found.json +8 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
- package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json +455 -0
- package/esm/test/mocks/AgentApi/getAgentTypes/agentTypes.json +54 -0
- package/esm/test/mocks/AgentApi/getAgents/agents.json +3862 -0
- package/esm/test/mocks/AgentApi/getAgentsByType/IdentityGatewayAgents.json +73 -0
- package/esm/test/mocks/AgentApi/getAgentsByType/J2EEAgents.json +379 -0
- package/esm/test/mocks/AgentApi/getAgentsByType/WebAgents.json +284 -0
- package/esm/test/mocks/ForgeRockApiMockEngine.mjs +136 -20
- package/package.json +3 -4
- package/types/api/AgentApi.d.ts +51 -0
- package/types/api/AgentApi.d.ts.map +1 -0
- package/types/api/ApiTypes.d.ts +3 -0
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/ext/axios-curlirize/curlirize.d.ts +3 -0
- package/types/ext/axios-curlirize/curlirize.d.ts.map +1 -0
- package/types/ext/axios-curlirize/lib/CurlHelper.d.ts +11 -0
- package/types/ext/axios-curlirize/lib/CurlHelper.d.ts.map +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +210 -0
- package/types/ops/AgentOps.d.ts.map +1 -0
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +5 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts +35 -2
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeRockApiMockEngine.js","names":["__dirname","path","dirname","fileURLToPath","readJsonFile","file","json","JSON","parse","fs","readFileSync","resolve","getTrees","treeObjects","mockGetTrees","mock","onGet","reply","mockStatus","mockResponse","expect","toBeTruthy","getTree","treeId","treeObject","mockGetTree","config","elements","url","split","length","_id","toBe","mockPutTree","callback","onPut","mockTreeObj","data","mockGetNode","nodeType","nodeId","mockPutNode","mockNodeObj","getScript","scriptId","mockGetScript","mockPutScript","mockScriptObj","getScriptByName","scriptName","getSaml2Providers","mockGetSaml2Providers","mockFindSaml2Providers","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","getCirclesOfTrust","mockGetCirclesOfTrust","mockCreateCircleOfTrust","onPost","mockCotObj","cotId","mockUpdateCircleOfTrust","mockGetSaml2ProviderByLocationAndId","location","providerId","mockCreateSaml2Provider","parseUrl","pathname","mockSaml2ProviderLocation","mockSaml2ProviderObj","mockSaml2ProviderId64","metaDataXml","decode","standardMetadata","encode","match","mockUpdateSaml2Provider","mockGetSaml2ProviderMetadata","parsed","realm","searchParam","entityId","getSocialProviders","mockGetSocialProviders","mockPutSocialProviderByTypeAndId","mockSocialProviderType","mockSocialProviderId","mockSocialProviderObj","mockListAllConfigEntities","mockGetConfigEntity","variation","substring","indexOf","mockPutConfigEntity","mockGetConfigEntitiesByType","console","log","entityType"],"sources":["test/mocks/ForgeRockApiMockEngine.ts"],"sourcesContent":["import MockAdapter from 'axios-mock-adapter';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { encode, decode } from '../../api/utils/Base64';\nimport { parseUrl } from '../../api/utils/ApiUtils';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function readJsonFile(file: string) {\n const json = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, `${file}`), 'utf8')\n );\n return json;\n}\n\n/**\n * AM Mocks and Utils\n */\n\nexport function getTrees() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetTrees(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getTrees();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTree(treeId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./TreeApi/getTree/${treeId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetTree(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getTree(treeId);\n expect(mockResponse._id).toBe(treeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutTree(\n mock: MockAdapter,\n callback: (mockTreeId: string, mockTreeObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockTreeObj = JSON.parse(config.data);\n callback(treeId, mockTreeObj);\n return [mockStatus, mockTreeObj];\n });\n}\n\nexport function mockGetNode(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeType = elements[elements?.length - 2];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./NodeApi/getNode/${nodeType}/${nodeId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(nodeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutNode(\n mock: MockAdapter,\n callback: (mockNodeId: string, mockNodeObj) => void\n) {\n mock\n .onPut(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockNodeObj = JSON.parse(config.data);\n callback(nodeId, mockNodeObj);\n return [mockStatus, mockNodeObj];\n });\n}\n\nexport function getScript(scriptId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScript/${scriptId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetScript(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getScript(scriptId);\n expect(mockResponse._id).toBe(scriptId);\n return [mockStatus, mockResponse];\n });\n}\n\n// mockPutScript(mock);\nexport function mockPutScript(\n mock: MockAdapter,\n callback: (mockScriptId: string, mockScriptObj) => void\n) {\n mock\n .onPut(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockScriptObj = JSON.parse(config.data);\n callback(scriptId, mockScriptObj);\n return [mockStatus, mockScriptObj];\n });\n}\n\nexport function getScriptByName(scriptName: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScriptByName/${scriptName}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\n// export function mockGetScriptByName(mock: MockAdapter) {\n// mock\n// .onGet(\n// /\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\?_queryFilter=name\\+eq\\+'.+'/\n// )\n// .reply(function (config) {\n// const elements = config.url ? config.url.split('/') : [];\n// const scriptId = elements[elements?.length - 1];\n// const mockStatus = 200;\n// const mockResponse = getScript(scriptId);\n// expect(mockResponse._id).toBe(scriptId);\n// return [mockStatus, mockResponse];\n// });\n// }\n\nexport function getSaml2Providers() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './Saml2Api/getProviders/providers.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSaml2Providers();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=.+?&_fields=.+/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'EXACT',\n totalPagedResults: 1,\n remainingPagedResults: -1,\n };\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getCirclesOfTrust() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './CirclesOfTrustApi/getCirclesOfTrust/cots.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetCirclesOfTrust(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getCirclesOfTrust();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/\\?_action=create/\n )\n .reply(function (config) {\n const mockCotObj = JSON.parse(config.data);\n const cotId = mockCotObj._id;\n const mockStatus = 200;\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockUpdateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const cotId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockCotObj = JSON.parse(config.data);\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockGetSaml2ProviderByLocationAndId(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const location = elements[elements?.length - 2];\n const providerId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderByLocationAndId/${location}/${providerId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(providerId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/\\?_action=(create|importEntity)/\n )\n .reply(function (config) {\n const elements = config.url\n ? parseUrl(config.url).pathname.split('/')\n : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n let mockSaml2ProviderId64 = '';\n if (mockSaml2ProviderObj._id) {\n mockSaml2ProviderId64 = mockSaml2ProviderObj._id;\n } else {\n const metaDataXml = decode(mockSaml2ProviderObj.standardMetadata);\n mockSaml2ProviderId64 = encode(\n metaDataXml.match(/entityID=\"(.+?)\"/)[1],\n false\n );\n }\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockUpdateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderId64 = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockGetSaml2ProviderMetadata(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/saml2\\/jsp\\/exportmetadata.jsp\\?entityid=.+?&realm=.+/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const realm = parsed.searchParam['realm'];\n const entityId = parsed.searchParam['entityid'];\n const mockStatus = 200;\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderMetadata/${realm}/${encode(\n entityId,\n false\n )}.xml`\n ),\n 'utf8'\n );\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getSocialProviders() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './SocialIdentityProvidersApi/getSocialIdentityProviders/socialIdentityProviders.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSocialProviders(mock: MockAdapter) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSocialProviders();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutSocialProviderByTypeAndId(\n mock: MockAdapter,\n callback: (\n mockSocialProviderId: string,\n mockSocialProviderType: string,\n mockSocialProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSocialProviderType = elements[elements?.length - 2];\n const mockSocialProviderId = elements[elements?.length - 1];\n const mockSocialProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSocialProviderId,\n mockSocialProviderType,\n mockSocialProviderObj\n );\n return [mockStatus, mockSocialProviderObj];\n });\n}\n\n/**\n * IDM Mocks and Utils\n */\n\nexport function mockListAllConfigEntities(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config$/).reply(function () {\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getAllConfigEntities/entities.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntity(\n mock: MockAdapter,\n variation: string = null\n) {\n mock.onGet(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntity/${\n variation ? entityId + '-' + variation : entityId\n }.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(entityId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutConfigEntity(\n mock: MockAdapter,\n callback: (mockEntityId: string, mockEntityObj) => void\n) {\n mock.onPut(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(config.data);\n callback(entityId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntitiesByType(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'.+?'/)\n .reply(function (config) {\n console.log('config.url=' + config.url);\n const entityType = config.url\n ? config.url.match(\n /.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'(.+?)'/\n )[1]\n : '';\n const mockStatus = 200;\n console.log('entityType=' + entityType);\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntitiesByType/${entityType}.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ForgeRockApiMockEngine.js","names":["__dirname","path","dirname","fileURLToPath","readJsonFile","file","json","JSON","parse","fs","readFileSync","resolve","getTrees","treeObjects","mockGetTrees","mock","onGet","reply","mockStatus","mockResponse","expect","toBeTruthy","getTree","treeId","treeObject","mockGetTree","config","elements","url","split","length","_id","toBe","mockPutTree","callback","onPut","mockTreeObj","data","mockGetNode","nodeType","nodeId","mockPutNode","mockNodeObj","getScript","scriptId","mockGetScript","mockPutScript","mockScriptObj","getScriptByName","scriptName","getSaml2Providers","mockGetSaml2Providers","mockFindSaml2Providers","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","getCirclesOfTrust","mockGetCirclesOfTrust","mockCreateCircleOfTrust","onPost","mockCotObj","cotId","mockUpdateCircleOfTrust","mockGetSaml2ProviderByLocationAndId","location","providerId","mockCreateSaml2Provider","parseUrl","pathname","mockSaml2ProviderLocation","mockSaml2ProviderObj","mockSaml2ProviderId64","metaDataXml","decode","standardMetadata","encode","match","mockUpdateSaml2Provider","mockGetSaml2ProviderMetadata","parsed","realm","searchParam","entityId","getSocialProviders","objects","mockGetSocialProviders","mockPutSocialProviderByTypeAndId","mockSocialProviderType","mockSocialProviderId","mockSocialProviderObj","getAgentTypes","getAgents","getAgent","agentType","agentId","mockGetAgentTypes","mockGetAgentsByType","mockGetAgents","mockFindAgentById","filter","mockFindAgentByTypeAndId","error","mockGetAgentByTypeAndId","mockPutAgentByTypeAndId","mockAgentObj","mockDeleteAgentByTypeAndId","onDelete","mockListAllConfigEntities","mockGetConfigEntity","variation","substring","indexOf","mockPutConfigEntity","mockGetConfigEntitiesByType","console","log","entityType"],"sources":["test/mocks/ForgeRockApiMockEngine.ts"],"sourcesContent":["import MockAdapter from 'axios-mock-adapter';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { encode, decode } from '../../api/utils/Base64';\nimport { parseUrl } from '../../api/utils/ApiUtils';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function readJsonFile(file: string) {\n const json = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, `${file}`), 'utf8')\n );\n return json;\n}\n\n/****\n **\n ** AM Mocks and Utils\n **\n **/\n\n/**\n * Tree Mocks\n */\n\nexport function getTrees() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetTrees(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getTrees();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTree(treeId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./TreeApi/getTree/${treeId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetTree(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getTree(treeId);\n expect(mockResponse._id).toBe(treeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutTree(\n mock: MockAdapter,\n callback: (mockTreeId: string, mockTreeObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockTreeObj = JSON.parse(config.data);\n callback(treeId, mockTreeObj);\n return [mockStatus, mockTreeObj];\n });\n}\n\n/**\n * Node Mocks\n */\n\nexport function mockGetNode(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeType = elements[elements?.length - 2];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./NodeApi/getNode/${nodeType}/${nodeId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(nodeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutNode(\n mock: MockAdapter,\n callback: (mockNodeId: string, mockNodeObj) => void\n) {\n mock\n .onPut(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockNodeObj = JSON.parse(config.data);\n callback(nodeId, mockNodeObj);\n return [mockStatus, mockNodeObj];\n });\n}\n\n/**\n * Script Mocks\n */\n\nexport function getScript(scriptId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScript/${scriptId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetScript(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getScript(scriptId);\n expect(mockResponse._id).toBe(scriptId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutScript(\n mock: MockAdapter,\n callback: (mockScriptId: string, mockScriptObj) => void\n) {\n mock\n .onPut(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockScriptObj = JSON.parse(config.data);\n callback(scriptId, mockScriptObj);\n return [mockStatus, mockScriptObj];\n });\n}\n\nexport function getScriptByName(scriptName: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScriptByName/${scriptName}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\n/**\n * SAML Mocks\n */\n\nexport function getSaml2Providers() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './Saml2Api/getProviders/providers.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSaml2Providers();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=.+?&_fields=.+/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'EXACT',\n totalPagedResults: 1,\n remainingPagedResults: -1,\n };\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getCirclesOfTrust() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './CirclesOfTrustApi/getCirclesOfTrust/cots.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetCirclesOfTrust(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getCirclesOfTrust();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/\\?_action=create/\n )\n .reply(function (config) {\n const mockCotObj = JSON.parse(config.data);\n const cotId = mockCotObj._id;\n const mockStatus = 200;\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockUpdateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const cotId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockCotObj = JSON.parse(config.data);\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockGetSaml2ProviderByLocationAndId(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const location = elements[elements?.length - 2];\n const providerId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderByLocationAndId/${location}/${providerId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(providerId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/\\?_action=(create|importEntity)/\n )\n .reply(function (config) {\n const elements = config.url\n ? parseUrl(config.url).pathname.split('/')\n : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n let mockSaml2ProviderId64 = '';\n if (mockSaml2ProviderObj._id) {\n mockSaml2ProviderId64 = mockSaml2ProviderObj._id;\n } else {\n const metaDataXml = decode(mockSaml2ProviderObj.standardMetadata);\n mockSaml2ProviderId64 = encode(\n metaDataXml.match(/entityID=\"(.+?)\"/)[1],\n false\n );\n }\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockUpdateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderId64 = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockGetSaml2ProviderMetadata(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/saml2\\/jsp\\/exportmetadata.jsp\\?entityid=.+?&realm=.+/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const realm = parsed.searchParam['realm'];\n const entityId = parsed.searchParam['entityid'];\n const mockStatus = 200;\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderMetadata/${realm}/${encode(\n entityId,\n false\n )}.xml`\n ),\n 'utf8'\n );\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\n/**\n * Social Identity Provider Mocks\n */\n\nexport function getSocialProviders() {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './SocialIdentityProvidersApi/getSocialIdentityProviders/socialIdentityProviders.json'\n ),\n 'utf8'\n )\n );\n return objects;\n}\n\nexport function mockGetSocialProviders(mock: MockAdapter) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSocialProviders();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutSocialProviderByTypeAndId(\n mock: MockAdapter,\n callback: (\n mockSocialProviderId: string,\n mockSocialProviderType: string,\n mockSocialProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSocialProviderType = elements[elements?.length - 2];\n const mockSocialProviderId = elements[elements?.length - 1];\n const mockSocialProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSocialProviderId,\n mockSocialProviderType,\n mockSocialProviderObj\n );\n return [mockStatus, mockSocialProviderObj];\n });\n}\n\n/**\n * Agent mocks and utils\n */\n\nexport function getAgentTypes() {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './AgentApi/getAgentTypes/agentTypes.json'),\n 'utf8'\n )\n );\n return objects;\n}\n\nexport function getAgents() {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './AgentApi/getAgents/agents.json'),\n 'utf8'\n )\n );\n return objects;\n}\n\nexport function getAgent(agentType, agentId) {\n const objects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/getAgentByTypeAndId/${agentType}/${agentId}.json`\n ),\n 'utf8'\n )\n );\n return objects;\n}\n\nexport function mockGetAgentTypes(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\?_action=getAllTypes/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getAgentTypes();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetAgentsByType(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\/.+?\\?_queryFilter=true/\n )\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const elements = parsed.pathname ? parsed.pathname.split('/') : [];\n const agentType = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/getAgentsByType/${agentType}s.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetAgents(mock: MockAdapter) {\n mock\n .onPost(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getAgents();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindAgentById(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\?_queryFilter=_id\\+eq\\+'.+?'/\n )\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const filter = parsed.searchParam['_queryFilter'];\n const agentId = filter.match(/_id\\+eq\\+'(.+?)'/)[1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./AgentApi/findAgentById/${agentId}.json`),\n 'utf8'\n )\n );\n expect(mockResponse.result[0]._id).toBe(agentId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindAgentByTypeAndId(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\/.+?\\?_queryFilter=_id\\+eq\\+'.+?'/\n )\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const elements = parsed.pathname ? parsed.pathname.split('/') : [];\n const agentType = elements[elements?.length - 1];\n const filter = parsed.searchParam['_queryFilter'];\n const agentId = filter.match(/_id\\+eq\\+'(.+?)'/)[1];\n const mockStatus = 200;\n let mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/findAgentByTypeAndId/not_found.json`\n ),\n 'utf8'\n )\n );\n try {\n mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/findAgentByTypeAndId/${agentType}/${agentId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse.result[0]._id).toBe(agentId);\n } catch (error) {\n // ignore errors\n }\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetAgentByTypeAndId(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\/[a-zA-Z0-9/_-]+$/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const agentType = elements[elements?.length - 2];\n const agentId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./AgentApi/getAgentByTypeAndId/${agentType}/${agentId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(agentId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutAgentByTypeAndId(\n mock: MockAdapter,\n callback: (mockAgentType: string, mockAgentId: string, mockAgentObj) => void\n) {\n mock\n .onPut(/\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const agentType = elements[elements?.length - 2];\n const agentId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockAgentObj = JSON.parse(config.data);\n callback(agentType, agentId, mockAgentObj);\n return [mockStatus, mockAgentObj];\n });\n}\n\nexport function mockDeleteAgentByTypeAndId(\n mock: MockAdapter,\n callback: (mockAgentType: string, mockAgentId: string, mockAgentObj) => void\n) {\n mock\n .onDelete(/\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/agents\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const agentType = elements[elements?.length - 2];\n const agentId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockAgentObj = getAgent(agentType, agentId);\n callback(agentType, agentId, mockAgentObj);\n return [mockStatus, mockAgentObj];\n });\n}\n\n/****\n **\n ** IDM Mocks and Utils\n **\n **/\n\nexport function mockListAllConfigEntities(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config$/).reply(function () {\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getAllConfigEntities/entities.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntity(\n mock: MockAdapter,\n variation: string = null\n) {\n mock.onGet(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntity/${\n variation ? entityId + '-' + variation : entityId\n }.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(entityId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutConfigEntity(\n mock: MockAdapter,\n callback: (mockEntityId: string, mockEntityObj) => void\n) {\n mock.onPut(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(config.data);\n callback(entityId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntitiesByType(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'.+?'/)\n .reply(function (config) {\n console.log('config.url=' + config.url);\n const entityType = config.url\n ? config.url.match(\n /.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'(.+?)'/\n )[1]\n : '';\n const mockStatus = 200;\n console.log('entityType=' + entityType);\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntitiesByType/${entityType}.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AAAoD;AAEpD,IAAMA,QAAS,GAAGC,aAAI,CAACC,OAAO,CAAC,IAAAC,kBAAa,sDAAiB,CAAC;AAEvD,SAASC,YAAY,CAACC,IAAY,EAAE;EACzC,IAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CACrBC,WAAE,CAACC,YAAY,CAACT,aAAI,CAACU,OAAO,CAACX,QAAS,YAAKK,IAAI,EAAG,EAAE,MAAM,CAAC,CAC5D;EACD,OAAOC,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,SAASM,QAAQ,GAAG;EACzB,IAAMC,WAAW,GAAGN,IAAI,CAACC,KAAK,CAC5BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,EAAE,+BAA+B,CAAC,EACxD,MAAM,CACP,CACF;EACD,OAAOa,WAAW;AACpB;AAEO,SAASC,YAAY,CAACC,IAAiB,EAAE;EAC9CA,IAAI,CACDC,KAAK,CACJ,qHAAqH,CACtH,CACAC,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGP,QAAQ,EAAE;IAC/BQ,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASG,OAAO,CAACC,MAAc,EAAE;EACtC,IAAMC,UAAU,GAAGjB,IAAI,CAACC,KAAK,CAC3BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,8BAAuBuB,MAAM,WAAQ,EAC3D,MAAM,CACP,CACF;EACD,OAAOC,UAAU;AACnB;AAEO,SAASC,WAAW,CAACV,IAAiB,EAAE;EAC7CA,IAAI,CACDC,KAAK,CACJ,sGAAsG,CACvG,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMN,MAAM,GAAGI,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC7C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGG,OAAO,CAACC,MAAM,CAAC;IACpCH,MAAM,CAACD,YAAY,CAACY,GAAG,CAAC,CAACC,IAAI,CAACT,MAAM,CAAC;IACrC,OAAO,CAACL,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASc,WAAW,CACzBlB,IAAiB,EACjBmB,QAAmD,EACnD;EACAnB,IAAI,CACDoB,KAAK,CACJ,sGAAsG,CACvG,CACAlB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMN,MAAM,GAAGI,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC7C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMkB,WAAW,GAAG7B,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC3CH,QAAQ,CAACX,MAAM,EAAEa,WAAW,CAAC;IAC7B,OAAO,CAAClB,UAAU,EAAEkB,WAAW,CAAC;EAClC,CAAC,CAAC;AACN;;AAEA;AACA;AACA;;AAEO,SAASE,WAAW,CAACvB,IAAiB,EAAE;EAC7CA,IAAI,CACDC,KAAK,CACJ,mGAAmG,CACpG,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMU,QAAQ,GAAGZ,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC/C,IAAMU,MAAM,GAAGb,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC7C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,8BACYuC,QAAQ,cAAIC,MAAM,WACxC,EACD,MAAM,CACP,CACF;IACDpB,MAAM,CAACD,YAAY,CAACY,GAAG,CAAC,CAACC,IAAI,CAACQ,MAAM,CAAC;IACrC,OAAO,CAACtB,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASsB,WAAW,CACzB1B,IAAiB,EACjBmB,QAAmD,EACnD;EACAnB,IAAI,CACDoB,KAAK,CACJ,mGAAmG,CACpG,CACAlB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMW,MAAM,GAAGb,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC7C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMwB,WAAW,GAAGnC,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC3CH,QAAQ,CAACM,MAAM,EAAEE,WAAW,CAAC;IAC7B,OAAO,CAACxB,UAAU,EAAEwB,WAAW,CAAC;EAClC,CAAC,CAAC;AACN;;AAEA;AACA;AACA;;AAEO,SAASC,SAAS,CAACC,QAAgB,EAAE;EAC1C,IAAMpB,UAAU,GAAGjB,IAAI,CAACC,KAAK,CAC3BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,kCAA2B4C,QAAQ,WAAQ,EACjE,MAAM,CACP,CACF;EACD,OAAOpB,UAAU;AACnB;AAEO,SAASqB,aAAa,CAAC9B,IAAiB,EAAE;EAC/CA,IAAI,CACDC,KAAK,CAAC,qDAAqD,CAAC,CAC5DC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMe,QAAQ,GAAGjB,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC/C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGwB,SAAS,CAACC,QAAQ,CAAC;IACxCxB,MAAM,CAACD,YAAY,CAACY,GAAG,CAAC,CAACC,IAAI,CAACY,QAAQ,CAAC;IACvC,OAAO,CAAC1B,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAAS2B,aAAa,CAC3B/B,IAAiB,EACjBmB,QAAuD,EACvD;EACAnB,IAAI,CACDoB,KAAK,CAAC,qDAAqD,CAAC,CAC5DlB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMe,QAAQ,GAAGjB,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC/C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAM6B,aAAa,GAAGxC,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC7CH,QAAQ,CAACU,QAAQ,EAAEG,aAAa,CAAC;IACjC,OAAO,CAAC7B,UAAU,EAAE6B,aAAa,CAAC;EACpC,CAAC,CAAC;AACN;AAEO,SAASC,eAAe,CAACC,UAAkB,EAAE;EAClD,IAAMzB,UAAU,GAAGjB,IAAI,CAACC,KAAK,CAC3BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,wCAAiCiD,UAAU,WAAQ,EACzE,MAAM,CACP,CACF;EACD,OAAOzB,UAAU;AACnB;;AAEA;AACA;AACA;;AAEO,SAAS0B,iBAAiB,GAAG;EAClC,IAAMrC,WAAW,GAAGN,IAAI,CAACC,KAAK,CAC5BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,EAAE,wCAAwC,CAAC,EACjE,MAAM,CACP,CACF;EACD,OAAOa,WAAW;AACpB;AAEO,SAASsC,qBAAqB,CAACpC,IAAiB,EAAE;EACvDA,IAAI,CACDC,KAAK,CACJ,gFAAgF,CACjF,CACAC,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAG+B,iBAAiB,EAAE;IACxC9B,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASiC,sBAAsB,CAACrC,IAAiB,EAAE;EACxDA,IAAI,CACDC,KAAK,CACJ,0FAA0F,CAC3F,CACAC,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAG;MACnBkC,MAAM,EAAE,EAAE;MACVC,WAAW,EAAE,CAAC;MACdC,kBAAkB,EAAE,IAAI;MACxBC,uBAAuB,EAAE,OAAO;MAChCC,iBAAiB,EAAE,CAAC;MACpBC,qBAAqB,EAAE,CAAC;IAC1B,CAAC;IACDtC,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASwC,iBAAiB,GAAG;EAClC,IAAM9C,WAAW,GAAGN,IAAI,CAACC,KAAK,CAC5BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,EACT,iDAAiD,CAClD,EACD,MAAM,CACP,CACF;EACD,OAAOa,WAAW;AACpB;AAEO,SAAS+C,qBAAqB,CAAC7C,IAAiB,EAAE;EACvDA,IAAI,CACDC,KAAK,CACJ,qGAAqG,CACtG,CACAC,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGwC,iBAAiB,EAAE;IACxCvC,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAAS0C,uBAAuB,CACrC9C,IAAiB,EACjBmB,QAAiD,EACjD;EACAnB,IAAI,CACD+C,MAAM,CACL,oGAAoG,CACrG,CACA7C,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMqC,UAAU,GAAGxD,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC1C,IAAM2B,KAAK,GAAGD,UAAU,CAAChC,GAAG;IAC5B,IAAMb,UAAU,GAAG,GAAG;IACtBgB,QAAQ,CAAC8B,KAAK,EAAED,UAAU,CAAC;IAC3B,OAAO,CAAC7C,UAAU,EAAE6C,UAAU,CAAC;EACjC,CAAC,CAAC;AACN;AAEO,SAASE,uBAAuB,CACrClD,IAAiB,EACjBmB,QAAiD,EACjD;EACAnB,IAAI,CACDoB,KAAK,CACJ,sFAAsF,CACvF,CACAlB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMmC,KAAK,GAAGrC,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC5C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAM6C,UAAU,GAAGxD,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC1CH,QAAQ,CAAC8B,KAAK,EAAED,UAAU,CAAC;IAC3B,OAAO,CAAC7C,UAAU,EAAE6C,UAAU,CAAC;EACjC,CAAC,CAAC;AACN;AAEO,SAASG,mCAAmC,CAACnD,IAAiB,EAAE;EACrEA,IAAI,CACDC,KAAK,CACJ,sEAAsE,CACvE,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMsC,QAAQ,GAAGxC,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC/C,IAAMsC,UAAU,GAAGzC,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IACjD,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,kDACgCmE,QAAQ,cAAIC,UAAU,WAChE,EACD,MAAM,CACP,CACF;IACDhD,MAAM,CAACD,YAAY,CAACY,GAAG,CAAC,CAACC,IAAI,CAACoC,UAAU,CAAC;IACzC,OAAO,CAAClD,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASkD,uBAAuB,CACrCtD,IAAiB,EACjBmB,QAIS,EACT;EACAnB,IAAI,CACD+C,MAAM,CACL,+GAA+G,CAChH,CACA7C,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GACvB,IAAA0C,kBAAQ,EAAC5C,MAAM,CAACE,GAAG,CAAC,CAAC2C,QAAQ,CAAC1C,KAAK,CAAC,GAAG,CAAC,GACxC,EAAE;IACN,IAAM2C,yBAAyB,GAAG7C,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChE,IAAM2C,oBAAoB,GAAGlE,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IACpD,IAAIqC,qBAAqB,GAAG,EAAE;IAC9B,IAAID,oBAAoB,CAAC1C,GAAG,EAAE;MAC5B2C,qBAAqB,GAAGD,oBAAoB,CAAC1C,GAAG;IAClD,CAAC,MAAM;MACL,IAAM4C,WAAW,GAAG,IAAAC,YAAM,EAACH,oBAAoB,CAACI,gBAAgB,CAAC;MACjEH,qBAAqB,GAAG,IAAAI,YAAM,EAC5BH,WAAW,CAACI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACxC,KAAK,CACN;IACH;IACA,IAAM7D,UAAU,GAAG,GAAG;IACtBgB,QAAQ,CACNwC,qBAAqB,EACrBF,yBAAyB,EACzBC,oBAAoB,CACrB;IACD,OAAO,CAACvD,UAAU,EAAEuD,oBAAoB,CAAC;EAC3C,CAAC,CAAC;AACN;AAEO,SAASO,uBAAuB,CACrCjE,IAAiB,EACjBmB,QAIS,EACT;EACAnB,IAAI,CACDoB,KAAK,CACJ,kFAAkF,CACnF,CACAlB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAM2C,yBAAyB,GAAG7C,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChE,IAAM4C,qBAAqB,GAAG/C,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC5D,IAAM2C,oBAAoB,GAAGlE,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IACpD,IAAMnB,UAAU,GAAG,GAAG;IACtBgB,QAAQ,CACNwC,qBAAqB,EACrBF,yBAAyB,EACzBC,oBAAoB,CACrB;IACD,OAAO,CAACvD,UAAU,EAAEuD,oBAAoB,CAAC;EAC3C,CAAC,CAAC;AACN;AAEO,SAASQ,4BAA4B,CAAClE,IAAiB,EAAE;EAC9DA,IAAI,CACDC,KAAK,CAAC,4DAA4D,CAAC,CACnEC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMwD,MAAM,GAAG,IAAAZ,kBAAQ,EAAC5C,MAAM,CAACE,GAAG,CAAC;IACnC,IAAMuD,KAAK,GAAGD,MAAM,CAACE,WAAW,CAAC,OAAO,CAAC;IACzC,IAAMC,QAAQ,GAAGH,MAAM,CAACE,WAAW,CAAC,UAAU,CAAC;IAC/C,IAAMlE,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGV,WAAE,CAACC,YAAY,CAClCT,aAAI,CAACU,OAAO,CACVX,QAAS,2CACyBmF,KAAK,cAAI,IAAAL,YAAM,EAC/CO,QAAQ,EACR,KAAK,CACN,UACF,EACD,MAAM,CACP;IACDjE,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;;AAEA;AACA;AACA;;AAEO,SAASmE,kBAAkB,GAAG;EACnC,IAAMC,OAAO,GAAGhF,IAAI,CAACC,KAAK,CACxBC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,EACT,sFAAsF,CACvF,EACD,MAAM,CACP,CACF;EACD,OAAOuF,OAAO;AAChB;AAEO,SAASC,sBAAsB,CAACzE,IAAiB,EAAE;EACxDA,IAAI,CACD+C,MAAM,CACL,kHAAkH,CACnH,CACA7C,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGmE,kBAAkB,EAAE;IACzClE,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASsE,gCAAgC,CAC9C1E,IAAiB,EACjBmB,QAIS,EACT;EACAnB,IAAI,CACDoB,KAAK,CACJ,kGAAkG,CACnG,CACAlB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAM6D,sBAAsB,GAAG/D,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC7D,IAAM6D,oBAAoB,GAAGhE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC3D,IAAM8D,qBAAqB,GAAGrF,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IACrD,IAAMnB,UAAU,GAAG,GAAG;IACtBgB,QAAQ,CACNyD,oBAAoB,EACpBD,sBAAsB,EACtBE,qBAAqB,CACtB;IACD,OAAO,CAAC1E,UAAU,EAAE0E,qBAAqB,CAAC;EAC5C,CAAC,CAAC;AACN;;AAEA;AACA;AACA;;AAEO,SAASC,aAAa,GAAG;EAC9B,IAAMN,OAAO,GAAGhF,IAAI,CAACC,KAAK,CACxBC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,EAAE,0CAA0C,CAAC,EACnE,MAAM,CACP,CACF;EACD,OAAOuF,OAAO;AAChB;AAEO,SAASO,SAAS,GAAG;EAC1B,IAAMP,OAAO,GAAGhF,IAAI,CAACC,KAAK,CACxBC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,EAAE,kCAAkC,CAAC,EAC3D,MAAM,CACP,CACF;EACD,OAAOuF,OAAO;AAChB;AAEO,SAASQ,QAAQ,CAACC,SAAS,EAAEC,OAAO,EAAE;EAC3C,IAAMV,OAAO,GAAGhF,IAAI,CAACC,KAAK,CACxBC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,2CACyBgG,SAAS,cAAIC,OAAO,WACvD,EACD,MAAM,CACP,CACF;EACD,OAAOV,OAAO;AAChB;AAEO,SAASW,iBAAiB,CAACnF,IAAiB,EAAE;EACnDA,IAAI,CACDC,KAAK,CACJ,gFAAgF,CACjF,CACAC,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAG0E,aAAa,EAAE;IACpCzE,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASgF,mBAAmB,CAACpF,IAAiB,EAAE;EACrDA,IAAI,CACDC,KAAK,CACJ,mFAAmF,CACpF,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMwD,MAAM,GAAG,IAAAZ,kBAAQ,EAAC5C,MAAM,CAACE,GAAG,CAAC;IACnC,IAAMD,QAAQ,GAAGuD,MAAM,CAACX,QAAQ,GAAGW,MAAM,CAACX,QAAQ,CAAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IAClE,IAAMmE,SAAS,GAAGrE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChD,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,uCACqBgG,SAAS,YACxC,EACD,MAAM,CACP,CACF;IACD5E,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASiF,aAAa,CAACrF,IAAiB,EAAE;EAC/CA,IAAI,CACD+C,MAAM,CACL,oFAAoF,CACrF,CACA7C,KAAK,CAAC,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAG2E,SAAS,EAAE;IAChC1E,MAAM,CAACD,YAAY,CAAC,CAACE,UAAU,EAAE;IACjC,OAAO,CAACH,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASkF,iBAAiB,CAACtF,IAAiB,EAAE;EACnDA,IAAI,CACDC,KAAK,CACJ,wFAAwF,CACzF,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMwD,MAAM,GAAG,IAAAZ,kBAAQ,EAAC5C,MAAM,CAACE,GAAG,CAAC;IACnC,IAAM0E,MAAM,GAAGpB,MAAM,CAACE,WAAW,CAAC,cAAc,CAAC;IACjD,IAAMa,OAAO,GAAGK,MAAM,CAACvB,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnD,IAAM7D,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CAACX,QAAS,qCAA8BiG,OAAO,WAAQ,EACnE,MAAM,CACP,CACF;IACD7E,MAAM,CAACD,YAAY,CAACkC,MAAM,CAAC,CAAC,CAAC,CAACtB,GAAG,CAAC,CAACC,IAAI,CAACiE,OAAO,CAAC;IAChD,OAAO,CAAC/E,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASoF,wBAAwB,CAACxF,IAAiB,EAAE;EAC1DA,IAAI,CACDC,KAAK,CACJ,6FAA6F,CAC9F,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMwD,MAAM,GAAG,IAAAZ,kBAAQ,EAAC5C,MAAM,CAACE,GAAG,CAAC;IACnC,IAAMD,QAAQ,GAAGuD,MAAM,CAACX,QAAQ,GAAGW,MAAM,CAACX,QAAQ,CAAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IAClE,IAAMmE,SAAS,GAAGrE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChD,IAAMwE,MAAM,GAAGpB,MAAM,CAACE,WAAW,CAAC,cAAc,CAAC;IACjD,IAAMa,OAAO,GAAGK,MAAM,CAACvB,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnD,IAAM7D,UAAU,GAAG,GAAG;IACtB,IAAIC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC3BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,mDAEV,EACD,MAAM,CACP,CACF;IACD,IAAI;MACFmB,YAAY,GAAGZ,IAAI,CAACC,KAAK,CACvBC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,4CAC0BgG,SAAS,cAAIC,OAAO,WACxD,EACD,MAAM,CACP,CACF;MACD7E,MAAM,CAACD,YAAY,CAACkC,MAAM,CAAC,CAAC,CAAC,CAACtB,GAAG,CAAC,CAACC,IAAI,CAACiE,OAAO,CAAC;IAClD,CAAC,CAAC,OAAOO,KAAK,EAAE;MACd;IACF;IACA,OAAO,CAACtF,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASsF,uBAAuB,CAAC1F,IAAiB,EAAE;EACzDA,IAAI,CACDC,KAAK,CACJ,6EAA6E,CAC9E,CACAC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMmE,SAAS,GAAGrE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChD,IAAMmE,OAAO,GAAGtE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC9C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,2CACyBgG,SAAS,cAAIC,OAAO,WACvD,EACD,MAAM,CACP,CACF;IACD7E,MAAM,CAACD,YAAY,CAACY,GAAG,CAAC,CAACC,IAAI,CAACiE,OAAO,CAAC;IACtC,OAAO,CAAC/E,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASuF,uBAAuB,CACrC3F,IAAiB,EACjBmB,QAA4E,EAC5E;EACAnB,IAAI,CACDoB,KAAK,CAAC,+DAA+D,CAAC,CACtElB,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMmE,SAAS,GAAGrE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChD,IAAMmE,OAAO,GAAGtE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC9C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMyF,YAAY,GAAGpG,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC5CH,QAAQ,CAAC8D,SAAS,EAAEC,OAAO,EAAEU,YAAY,CAAC;IAC1C,OAAO,CAACzF,UAAU,EAAEyF,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;AAEO,SAASC,0BAA0B,CACxC7F,IAAiB,EACjBmB,QAA4E,EAC5E;EACAnB,IAAI,CACD8F,QAAQ,CAAC,+DAA+D,CAAC,CACzE5F,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAG,GAAGF,MAAM,CAACE,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;IACxD,IAAMmE,SAAS,GAAGrE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAChD,IAAMmE,OAAO,GAAGtE,QAAQ,CAAC,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,IAAG,CAAC,CAAC;IAC9C,IAAMZ,UAAU,GAAG,GAAG;IACtB,IAAMyF,YAAY,GAAGZ,QAAQ,CAACC,SAAS,EAAEC,OAAO,CAAC;IACjD/D,QAAQ,CAAC8D,SAAS,EAAEC,OAAO,EAAEU,YAAY,CAAC;IAC1C,OAAO,CAACzF,UAAU,EAAEyF,YAAY,CAAC;EACnC,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEO,SAASG,yBAAyB,CAAC/F,IAAiB,EAAE;EAC3DA,IAAI,CAACC,KAAK,CAAC,uBAAuB,CAAC,CAACC,KAAK,CAAC,YAAY;IACpD,IAAMC,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,sDAEV,EACD,MAAM,CACP,CACF;IACD,OAAO,CAACkB,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACJ;AAEO,SAAS4F,mBAAmB,CACjChG,IAAiB,EAEjB;EAAA,IADAiG,SAAiB,uEAAG,IAAI;EAExBjG,IAAI,CAACC,KAAK,CAAC,0BAA0B,CAAC,CAACC,KAAK,CAAC,UAAUS,MAAM,EAAE;IAC7D,IAAM2D,QAAQ,GAAG3D,MAAM,CAACE,GAAG,GACvBF,MAAM,CAACE,GAAG,CAACqF,SAAS,CAACvF,MAAM,CAACE,GAAG,CAACsF,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GACxD,EAAE;IACN,IAAMhG,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,2CAEPgH,SAAS,GAAG3B,QAAQ,GAAG,GAAG,GAAG2B,SAAS,GAAG3B,QAAQ,WAEpD,EACD,MAAM,CACP,CACF;IACDjE,MAAM,CAACD,YAAY,CAACY,GAAG,CAAC,CAACC,IAAI,CAACqD,QAAQ,CAAC;IACvC,OAAO,CAACnE,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACJ;AAEO,SAASgG,mBAAmB,CACjCpG,IAAiB,EACjBmB,QAAuD,EACvD;EACAnB,IAAI,CAACoB,KAAK,CAAC,0BAA0B,CAAC,CAAClB,KAAK,CAAC,UAAUS,MAAM,EAAE;IAC7D,IAAM2D,QAAQ,GAAG3D,MAAM,CAACE,GAAG,GACvBF,MAAM,CAACE,GAAG,CAACqF,SAAS,CAACvF,MAAM,CAACE,GAAG,CAACsF,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GACxD,EAAE;IACN,IAAMhG,UAAU,GAAG,GAAG;IACtB,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAACkB,MAAM,CAACW,IAAI,CAAC;IAC5CH,QAAQ,CAACmD,QAAQ,EAAElE,YAAY,CAAC;IAChC,OAAO,CAACD,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACJ;AAEO,SAASiG,2BAA2B,CAACrG,IAAiB,EAAE;EAC7DA,IAAI,CACDC,KAAK,CAAC,qDAAqD,CAAC,CAC5DC,KAAK,CAAC,UAAUS,MAAM,EAAE;IACvB2F,OAAO,CAACC,GAAG,CAAC,aAAa,GAAG5F,MAAM,CAACE,GAAG,CAAC;IACvC,IAAM2F,UAAU,GAAG7F,MAAM,CAACE,GAAG,GACzBF,MAAM,CAACE,GAAG,CAACmD,KAAK,CACd,uDAAuD,CACxD,CAAC,CAAC,CAAC,GACJ,EAAE;IACN,IAAM7D,UAAU,GAAG,GAAG;IACtBmG,OAAO,CAACC,GAAG,CAAC,aAAa,GAAGC,UAAU,CAAC;IACvC,IAAMpG,YAAY,GAAGZ,IAAI,CAACC,KAAK,CAC7BC,WAAE,CAACC,YAAY,CACbT,aAAI,CAACU,OAAO,CACVX,QAAS,mDACiCuH,UAAU,WACrD,EACD,MAAM,CACP,CACF;IACD,OAAO,CAACrG,UAAU,EAAEC,YAAY,CAAC;EACnC,CAAC,CAAC;AACN"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import util from 'util';
|
|
2
|
+
import { generateAmApi } from './BaseApi';
|
|
3
|
+
import { deleteDeepByKey, getCurrentRealmPath } from './utils/ApiUtils';
|
|
4
|
+
import storage from '../storage/SessionStorage';
|
|
5
|
+
import { debugMessage } from '../ops/utils/Console';
|
|
6
|
+
const getAgentTypesURLTemplate = '%s/json%s/realm-config/agents?_action=getAllTypes';
|
|
7
|
+
const getAllAgentsURLTemplate = '%s/json%s/realm-config/agents?_action=nextdescendents';
|
|
8
|
+
const queryAgentURLTemplate = "%s/json%s/realm-config/agents?_queryFilter=_id+eq+'%s'";
|
|
9
|
+
const queryAgentByTypeURLTemplate = "%s/json%s/realm-config/agents/%s?_queryFilter=_id+eq+'%s'";
|
|
10
|
+
const agentURLTemplate = '%s/json%s/realm-config/agents/%s/%s';
|
|
11
|
+
const agentListURLTemplate = '%s/json%s/realm-config/agents/%s?_queryFilter=true';
|
|
12
|
+
const apiVersion = 'protocol=2.1,resource=1.0';
|
|
13
|
+
const getApiConfig = () => {
|
|
14
|
+
const configPath = getCurrentRealmPath();
|
|
15
|
+
return {
|
|
16
|
+
path: `${configPath}/realm-config/agents`,
|
|
17
|
+
apiVersion
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get agent types
|
|
23
|
+
* @returns {Promise} a promise that resolves to an object containing an array of agent types
|
|
24
|
+
*/
|
|
25
|
+
export async function getAgentTypes() {
|
|
26
|
+
debugMessage(`AgentApi.getAgentTypes: start`);
|
|
27
|
+
const urlString = util.format(getAgentTypesURLTemplate, storage.session.getTenant(), getCurrentRealmPath());
|
|
28
|
+
const {
|
|
29
|
+
data
|
|
30
|
+
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
31
|
+
withCredentials: true
|
|
32
|
+
});
|
|
33
|
+
debugMessage(`AgentApi.getAgentTypes: end`);
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Get agents
|
|
39
|
+
* @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent)
|
|
40
|
+
* @returns {Promise} a promise that resolves to an object containing an array of agent objects of the specified type
|
|
41
|
+
*/
|
|
42
|
+
export async function getAgentsByType(agentType) {
|
|
43
|
+
debugMessage(`AgentApi.getAgentsByType: start`);
|
|
44
|
+
const urlString = util.format(agentListURLTemplate, storage.session.getTenant(), getCurrentRealmPath(), agentType);
|
|
45
|
+
const {
|
|
46
|
+
data
|
|
47
|
+
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
48
|
+
withCredentials: true
|
|
49
|
+
});
|
|
50
|
+
debugMessage(`AgentApi.getAgentsByType: end`);
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Get all agents
|
|
56
|
+
* @returns {Promise} a promise that resolves to an object containing an array of agent objects
|
|
57
|
+
*/
|
|
58
|
+
export async function getAgents() {
|
|
59
|
+
debugMessage(`AgentApi.getAgents: start`);
|
|
60
|
+
const urlString = util.format(getAllAgentsURLTemplate, storage.session.getTenant(), getCurrentRealmPath());
|
|
61
|
+
const {
|
|
62
|
+
data
|
|
63
|
+
} = await generateAmApi(getApiConfig()).post(urlString, {}, {
|
|
64
|
+
withCredentials: true
|
|
65
|
+
});
|
|
66
|
+
debugMessage(`AgentApi.getAgents: end`);
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Find agent by id
|
|
72
|
+
* @param {string} agentId agent id
|
|
73
|
+
* @returns {Promise} a promise that resolves to an array with one or zero agent objects
|
|
74
|
+
*/
|
|
75
|
+
export async function findAgentById(agentId) {
|
|
76
|
+
debugMessage(`AgentApi.findAgentById: start`);
|
|
77
|
+
const urlString = util.format(queryAgentURLTemplate, storage.session.getTenant(), getCurrentRealmPath(), agentId);
|
|
78
|
+
const {
|
|
79
|
+
data
|
|
80
|
+
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
81
|
+
withCredentials: true
|
|
82
|
+
});
|
|
83
|
+
debugMessage(`AgentApi.findAgentById: end`);
|
|
84
|
+
return data.result;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Find agent by id
|
|
89
|
+
* @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent)
|
|
90
|
+
* @param {string} agentId agent id
|
|
91
|
+
* @returns {Promise} a promise that resolves to an array with one or zero agent objects
|
|
92
|
+
*/
|
|
93
|
+
export async function findAgentByTypeAndId(agentType, agentId) {
|
|
94
|
+
debugMessage(`AgentApi.findAgentById: start`);
|
|
95
|
+
const urlString = util.format(queryAgentByTypeURLTemplate, storage.session.getTenant(), getCurrentRealmPath(), agentType, agentId);
|
|
96
|
+
const {
|
|
97
|
+
data
|
|
98
|
+
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
99
|
+
withCredentials: true
|
|
100
|
+
});
|
|
101
|
+
debugMessage(`AgentApi.findAgentById: end`);
|
|
102
|
+
return data.result;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get agent
|
|
107
|
+
* @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent)
|
|
108
|
+
* @param {string} agentId agent id
|
|
109
|
+
* @returns {Promise} a promise that resolves to an object containing an agent object of the specified type
|
|
110
|
+
*/
|
|
111
|
+
export async function getAgentByTypeAndId(agentType, agentId) {
|
|
112
|
+
debugMessage(`AgentApi.getAgentByTypeAndId: start`);
|
|
113
|
+
const urlString = util.format(agentURLTemplate, storage.session.getTenant(), getCurrentRealmPath(), agentType, agentId);
|
|
114
|
+
const {
|
|
115
|
+
data
|
|
116
|
+
} = await generateAmApi(getApiConfig()).get(urlString, {
|
|
117
|
+
withCredentials: true
|
|
118
|
+
});
|
|
119
|
+
debugMessage(`AgentApi.getAgentByTypeAndId: end`);
|
|
120
|
+
return data;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Put agent
|
|
125
|
+
* @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent)
|
|
126
|
+
* @param {string} agentId agent id
|
|
127
|
+
* @param {Object} agentData agent object
|
|
128
|
+
* @returns {Promise} a promise that resolves to an object containing an agent object
|
|
129
|
+
*/
|
|
130
|
+
export async function putAgentByTypeAndId(agentType, agentId, agentData) {
|
|
131
|
+
debugMessage(`AgentApi.putAgentByTypeAndId: start`);
|
|
132
|
+
// until we figure out a way to use transport keys in Frodo,
|
|
133
|
+
// we'll have to drop those encrypted attributes.
|
|
134
|
+
const agent = deleteDeepByKey(agentData, '-encrypted');
|
|
135
|
+
delete agent._provider;
|
|
136
|
+
delete agent._rev;
|
|
137
|
+
const urlString = util.format(agentURLTemplate, storage.session.getTenant(), getCurrentRealmPath(), agentType, agentId);
|
|
138
|
+
const {
|
|
139
|
+
data
|
|
140
|
+
} = await generateAmApi(getApiConfig()).put(urlString, agent, {
|
|
141
|
+
withCredentials: true
|
|
142
|
+
});
|
|
143
|
+
debugMessage(`AgentApi.putAgentByTypeAndId: end`);
|
|
144
|
+
return data;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Delete agent
|
|
149
|
+
* @param agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent)
|
|
150
|
+
* @param agentId agent id
|
|
151
|
+
* @returns a promise that resolves to an object containing an agent object
|
|
152
|
+
*/
|
|
153
|
+
export async function deleteAgentByTypeAndId(agentType, agentId) {
|
|
154
|
+
debugMessage(`AgentApi.deleteAgentByTypeAndId: start`);
|
|
155
|
+
const urlString = util.format(agentURLTemplate, storage.session.getTenant(), getCurrentRealmPath(), agentType, agentId);
|
|
156
|
+
const {
|
|
157
|
+
data
|
|
158
|
+
} = await generateAmApi(getApiConfig()).delete(urlString, {
|
|
159
|
+
withCredentials: true
|
|
160
|
+
});
|
|
161
|
+
debugMessage(`AgentApi.deleteAgentByTypeAndId: end`);
|
|
162
|
+
return data;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=AgentApi.js.map
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import MockAdapter from 'axios-mock-adapter';
|
|
3
|
+
import { AgentRaw, state } from '../index';
|
|
4
|
+
import * as global from '../storage/StaticStorage';
|
|
5
|
+
import { isEqualJson } from '../ops/utils/OpsUtils';
|
|
6
|
+
import { getAgent, mockDeleteAgentByTypeAndId, mockFindAgentById, mockFindAgentByTypeAndId, mockGetAgentByTypeAndId, mockPutAgentByTypeAndId } from '../test/mocks/ForgeRockApiMockEngine';
|
|
7
|
+
import { mockGetAgentTypes, mockGetAgentsByType, mockGetAgents } from '../test/mocks/ForgeRockApiMockEngine';
|
|
8
|
+
const mock = new MockAdapter(axios);
|
|
9
|
+
state.default.session.setTenant('https://openam-frodo-dev.forgeblocks.com/am');
|
|
10
|
+
state.default.session.setRealm('alpha');
|
|
11
|
+
state.default.session.setCookieName('cookieName');
|
|
12
|
+
state.default.session.setCookieValue('cookieValue');
|
|
13
|
+
state.default.session.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);
|
|
14
|
+
describe('AgentApi - getAgentTypes()', () => {
|
|
15
|
+
test('getAgentTypes() 0: Method is implemented', async () => {
|
|
16
|
+
expect(AgentRaw.getAgentTypes).toBeDefined();
|
|
17
|
+
});
|
|
18
|
+
test('getAgentTypes() 1: Get all agent types', async () => {
|
|
19
|
+
var _agentTypes$result;
|
|
20
|
+
mockGetAgentTypes(mock);
|
|
21
|
+
const agentTypes = await AgentRaw.getAgentTypes();
|
|
22
|
+
expect(agentTypes).toBeTruthy();
|
|
23
|
+
expect((_agentTypes$result = agentTypes.result) === null || _agentTypes$result === void 0 ? void 0 : _agentTypes$result.length).toBe(10);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe('AgentApi - getAgentsByType()', () => {
|
|
27
|
+
test('getAgentsByType() 0: Method is implemented', async () => {
|
|
28
|
+
expect(AgentRaw.getAgentsByType).toBeDefined();
|
|
29
|
+
});
|
|
30
|
+
test('getAgentsByType() 1: Get all gateway agents', async () => {
|
|
31
|
+
var _agents$result;
|
|
32
|
+
mockGetAgentsByType(mock);
|
|
33
|
+
const agentType = 'IdentityGatewayAgent';
|
|
34
|
+
expect.assertions(7);
|
|
35
|
+
const agents = await AgentRaw.getAgentsByType(agentType);
|
|
36
|
+
expect(agents).toBeTruthy();
|
|
37
|
+
expect((_agents$result = agents.result) === null || _agents$result === void 0 ? void 0 : _agents$result.length).toBe(4);
|
|
38
|
+
for (const agent of agents.result) {
|
|
39
|
+
expect(agent._type._id).toBe(agentType);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
test('getAgentsByType() 2: Get all java agents', async () => {
|
|
43
|
+
var _agents$result2;
|
|
44
|
+
mockGetAgentsByType(mock);
|
|
45
|
+
const agentType = 'J2EEAgent';
|
|
46
|
+
expect.assertions(5);
|
|
47
|
+
const agents = await AgentRaw.getAgentsByType(agentType);
|
|
48
|
+
expect(agents).toBeTruthy();
|
|
49
|
+
expect((_agents$result2 = agents.result) === null || _agents$result2 === void 0 ? void 0 : _agents$result2.length).toBe(2);
|
|
50
|
+
for (const agent of agents.result) {
|
|
51
|
+
expect(agent._type._id).toBe(agentType);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
test('getAgentsByType() 3: Get all web agents', async () => {
|
|
55
|
+
var _agents$result3;
|
|
56
|
+
mockGetAgentsByType(mock);
|
|
57
|
+
const agentType = 'WebAgent';
|
|
58
|
+
expect.assertions(5);
|
|
59
|
+
const agents = await AgentRaw.getAgentsByType(agentType);
|
|
60
|
+
expect(agents).toBeTruthy();
|
|
61
|
+
expect((_agents$result3 = agents.result) === null || _agents$result3 === void 0 ? void 0 : _agents$result3.length).toBe(2);
|
|
62
|
+
for (const agent of agents.result) {
|
|
63
|
+
expect(agent._type._id).toBe(agentType);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('AgentApi - getAgents()', () => {
|
|
68
|
+
test('getAgents() 0: Method is implemented', async () => {
|
|
69
|
+
expect(AgentRaw.getAgents).toBeDefined();
|
|
70
|
+
});
|
|
71
|
+
test('getAgents() 1: Get all agents', async () => {
|
|
72
|
+
var _agents$result4;
|
|
73
|
+
mockGetAgents(mock);
|
|
74
|
+
expect.assertions(3);
|
|
75
|
+
const agents = await AgentRaw.getAgents();
|
|
76
|
+
expect(agents).toBeTruthy();
|
|
77
|
+
expect((_agents$result4 = agents.result) === null || _agents$result4 === void 0 ? void 0 : _agents$result4.length).toBe(39);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('AgentApi - findAgentById()', () => {
|
|
81
|
+
test('findAgentById() 0: Method is implemented', async () => {
|
|
82
|
+
expect(AgentRaw.findAgentById).toBeDefined();
|
|
83
|
+
});
|
|
84
|
+
test('findAgentById() 1: Find agent "ig_mytestrun_com"', async () => {
|
|
85
|
+
mockFindAgentById(mock);
|
|
86
|
+
expect.assertions(3);
|
|
87
|
+
const agentId = 'ig_mytestrun_com';
|
|
88
|
+
const agents = await AgentRaw.findAgentById(agentId);
|
|
89
|
+
expect(agents).toBeTruthy();
|
|
90
|
+
expect(agents.length).toBe(1);
|
|
91
|
+
});
|
|
92
|
+
test('findAgentById() 2: Find agent "tomcatagent"', async () => {
|
|
93
|
+
mockFindAgentById(mock);
|
|
94
|
+
expect.assertions(3);
|
|
95
|
+
const agentId = 'tomcatagent';
|
|
96
|
+
const agents = await AgentRaw.findAgentById(agentId);
|
|
97
|
+
expect(agents).toBeTruthy();
|
|
98
|
+
expect(agents.length).toBe(1);
|
|
99
|
+
});
|
|
100
|
+
test('findAgentById() 3: Find agent "apacheagent"', async () => {
|
|
101
|
+
mockFindAgentById(mock);
|
|
102
|
+
expect.assertions(3);
|
|
103
|
+
const agentId = 'apacheagent';
|
|
104
|
+
const agents = await AgentRaw.findAgentById(agentId);
|
|
105
|
+
expect(agents).toBeTruthy();
|
|
106
|
+
expect(agents.length).toBe(1);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe('AgentApi - findAgentByTypeAndId()', () => {
|
|
110
|
+
test('findAgentByTypeAndId() 0: Method is implemented', async () => {
|
|
111
|
+
expect(AgentRaw.findAgentByTypeAndId).toBeDefined();
|
|
112
|
+
});
|
|
113
|
+
test('findAgentByTypeAndId() 1: Find gateway agent "ig_mytestrun_com"', async () => {
|
|
114
|
+
mockFindAgentByTypeAndId(mock);
|
|
115
|
+
expect.assertions(3);
|
|
116
|
+
const agentType = 'IdentityGatewayAgent';
|
|
117
|
+
const agentId = 'ig_mytestrun_com';
|
|
118
|
+
const agents = await AgentRaw.findAgentByTypeAndId(agentType, agentId);
|
|
119
|
+
expect(agents).toBeTruthy();
|
|
120
|
+
expect(agents.length).toBe(1);
|
|
121
|
+
});
|
|
122
|
+
test('findAgentByTypeAndId() 2: Find java agent "tomcatagent"', async () => {
|
|
123
|
+
mockFindAgentByTypeAndId(mock);
|
|
124
|
+
expect.assertions(3);
|
|
125
|
+
const agentType = 'J2EEAgent';
|
|
126
|
+
const agentId = 'tomcatagent';
|
|
127
|
+
const agents = await AgentRaw.findAgentByTypeAndId(agentType, agentId);
|
|
128
|
+
expect(agents).toBeTruthy();
|
|
129
|
+
expect(agents.length).toBe(1);
|
|
130
|
+
});
|
|
131
|
+
test('findAgentByTypeAndId() 3: Find web agent "apacheagent"', async () => {
|
|
132
|
+
mockFindAgentByTypeAndId(mock);
|
|
133
|
+
expect.assertions(3);
|
|
134
|
+
const agentType = 'WebAgent';
|
|
135
|
+
const agentId = 'apacheagent';
|
|
136
|
+
const agents = await AgentRaw.findAgentByTypeAndId(agentType, agentId);
|
|
137
|
+
expect(agents).toBeTruthy();
|
|
138
|
+
expect(agents.length).toBe(1);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe('AgentApi - getAgentByTypeAndId()', () => {
|
|
142
|
+
test('getAgentByTypeAndId() 0: Method is implemented', async () => {
|
|
143
|
+
expect(AgentRaw.getAgentByTypeAndId).toBeDefined();
|
|
144
|
+
});
|
|
145
|
+
test('getAgentByTypeAndId() 1: Get gateway agent "ig_mytestrun_com"', async () => {
|
|
146
|
+
mockGetAgentByTypeAndId(mock);
|
|
147
|
+
expect.assertions(3);
|
|
148
|
+
const agentType = 'IdentityGatewayAgent';
|
|
149
|
+
const agentId = 'ig_mytestrun_com';
|
|
150
|
+
const agent = await AgentRaw.getAgentByTypeAndId(agentType, agentId);
|
|
151
|
+
expect(agent).toBeTruthy();
|
|
152
|
+
expect(agent._id).toBe(agentId);
|
|
153
|
+
});
|
|
154
|
+
test('getAgentByTypeAndId() 2: Get java agent "tomcatagent"', async () => {
|
|
155
|
+
mockGetAgentByTypeAndId(mock);
|
|
156
|
+
expect.assertions(3);
|
|
157
|
+
const agentType = 'J2EEAgent';
|
|
158
|
+
const agentId = 'tomcatagent';
|
|
159
|
+
const agent = await AgentRaw.getAgentByTypeAndId(agentType, agentId);
|
|
160
|
+
expect(agent).toBeTruthy();
|
|
161
|
+
expect(agent._id).toBe(agentId);
|
|
162
|
+
});
|
|
163
|
+
test('getAgentByTypeAndId() 3: Get web agent "apacheagent"', async () => {
|
|
164
|
+
mockGetAgentByTypeAndId(mock);
|
|
165
|
+
expect.assertions(3);
|
|
166
|
+
const agentType = 'WebAgent';
|
|
167
|
+
const agentId = 'apacheagent';
|
|
168
|
+
const agent = await AgentRaw.getAgentByTypeAndId(agentType, agentId);
|
|
169
|
+
expect(agent).toBeTruthy();
|
|
170
|
+
expect(agent._id).toBe(agentId);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe('AgentApi - putAgentByTypeAndId()', () => {
|
|
174
|
+
test('putAgentByTypeAndId() 0: Method is implemented', async () => {
|
|
175
|
+
expect(AgentRaw.putAgentByTypeAndId).toBeDefined();
|
|
176
|
+
});
|
|
177
|
+
test('putAgentByTypeAndId() 1: Put gateway agent "ig_mytestrun_com"', async () => {
|
|
178
|
+
const agentType = 'IdentityGatewayAgent';
|
|
179
|
+
const agentId = 'ig_mytestrun_com';
|
|
180
|
+
const agentData = getAgent(agentType, agentId);
|
|
181
|
+
mockPutAgentByTypeAndId(mock, (mockAgentType, mockAgentId, mockAgentObj) => {
|
|
182
|
+
expect(agentType).toBe(mockAgentType);
|
|
183
|
+
expect(agentId).toBe(mockAgentId);
|
|
184
|
+
expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();
|
|
185
|
+
});
|
|
186
|
+
expect.assertions(5);
|
|
187
|
+
const agent = await AgentRaw.putAgentByTypeAndId(agentType, agentId, agentData);
|
|
188
|
+
expect(agent).toBeTruthy();
|
|
189
|
+
expect(agent._id).toBe(agentId);
|
|
190
|
+
});
|
|
191
|
+
test('putAgentByTypeAndId() 2: Put java agent "tomcatagent"', async () => {
|
|
192
|
+
const agentType = 'J2EEAgent';
|
|
193
|
+
const agentId = 'tomcatagent';
|
|
194
|
+
const agentData = getAgent(agentType, agentId);
|
|
195
|
+
mockPutAgentByTypeAndId(mock, (mockAgentType, mockAgentId, mockAgentObj) => {
|
|
196
|
+
expect(agentType).toBe(mockAgentType);
|
|
197
|
+
expect(agentId).toBe(mockAgentId);
|
|
198
|
+
expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();
|
|
199
|
+
});
|
|
200
|
+
expect.assertions(5);
|
|
201
|
+
const agent = await AgentRaw.putAgentByTypeAndId(agentType, agentId, agentData);
|
|
202
|
+
expect(agent).toBeTruthy();
|
|
203
|
+
expect(agent._id).toBe(agentId);
|
|
204
|
+
});
|
|
205
|
+
test('putAgentByTypeAndId() 3: Put web agent "apacheagent"', async () => {
|
|
206
|
+
const agentType = 'WebAgent';
|
|
207
|
+
const agentId = 'apacheagent';
|
|
208
|
+
const agentData = getAgent(agentType, agentId);
|
|
209
|
+
mockPutAgentByTypeAndId(mock, (mockAgentType, mockAgentId, mockAgentObj) => {
|
|
210
|
+
expect(agentType).toBe(mockAgentType);
|
|
211
|
+
expect(agentId).toBe(mockAgentId);
|
|
212
|
+
expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();
|
|
213
|
+
});
|
|
214
|
+
expect.assertions(5);
|
|
215
|
+
const agent = await AgentRaw.putAgentByTypeAndId(agentType, agentId, agentData);
|
|
216
|
+
expect(agent).toBeTruthy();
|
|
217
|
+
expect(agent._id).toBe(agentId);
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
describe('AgentApi - deleteAgentByTypeAndId()', () => {
|
|
221
|
+
test('deleteAgentByTypeAndId() 0: Method is implemented', async () => {
|
|
222
|
+
expect(AgentRaw.deleteAgentByTypeAndId).toBeDefined();
|
|
223
|
+
});
|
|
224
|
+
test('deleteAgentByTypeAndId() 1: Delete gateway agent "ig_mytestrun_com"', async () => {
|
|
225
|
+
const agentType = 'IdentityGatewayAgent';
|
|
226
|
+
const agentId = 'ig_mytestrun_com';
|
|
227
|
+
const agentData = getAgent(agentType, agentId);
|
|
228
|
+
mockDeleteAgentByTypeAndId(mock, (mockAgentType, mockAgentId, mockAgentObj) => {
|
|
229
|
+
expect(agentType).toBe(mockAgentType);
|
|
230
|
+
expect(agentId).toBe(mockAgentId);
|
|
231
|
+
expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();
|
|
232
|
+
});
|
|
233
|
+
expect.assertions(5);
|
|
234
|
+
const agent = await AgentRaw.deleteAgentByTypeAndId(agentType, agentId);
|
|
235
|
+
expect(agent).toBeTruthy();
|
|
236
|
+
expect(agent._id).toBe(agentId);
|
|
237
|
+
});
|
|
238
|
+
test('deleteAgentByTypeAndId() 2: Delete java agent "tomcatagent"', async () => {
|
|
239
|
+
const agentType = 'J2EEAgent';
|
|
240
|
+
const agentId = 'tomcatagent';
|
|
241
|
+
const agentData = getAgent(agentType, agentId);
|
|
242
|
+
mockDeleteAgentByTypeAndId(mock, (mockAgentType, mockAgentId, mockAgentObj) => {
|
|
243
|
+
expect(agentType).toBe(mockAgentType);
|
|
244
|
+
expect(agentId).toBe(mockAgentId);
|
|
245
|
+
expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();
|
|
246
|
+
});
|
|
247
|
+
expect.assertions(5);
|
|
248
|
+
const agent = await AgentRaw.deleteAgentByTypeAndId(agentType, agentId);
|
|
249
|
+
expect(agent).toBeTruthy();
|
|
250
|
+
expect(agent._id).toBe(agentId);
|
|
251
|
+
});
|
|
252
|
+
test('deleteAgentByTypeAndId() 3: Delete web agent "apacheagent"', async () => {
|
|
253
|
+
const agentType = 'WebAgent';
|
|
254
|
+
const agentId = 'apacheagent';
|
|
255
|
+
const agentData = getAgent(agentType, agentId);
|
|
256
|
+
mockDeleteAgentByTypeAndId(mock, (mockAgentType, mockAgentId, mockAgentObj) => {
|
|
257
|
+
expect(agentType).toBe(mockAgentType);
|
|
258
|
+
expect(agentId).toBe(mockAgentId);
|
|
259
|
+
expect(isEqualJson(mockAgentObj, agentData, ['_rev'])).toBeTruthy();
|
|
260
|
+
});
|
|
261
|
+
expect.assertions(5);
|
|
262
|
+
const agent = await AgentRaw.deleteAgentByTypeAndId(agentType, agentId);
|
|
263
|
+
expect(agent).toBeTruthy();
|
|
264
|
+
expect(agent._id).toBe(agentId);
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
//# sourceMappingURL=AgentApi.test.js.map
|