@rockcarver/frodo-lib 2.0.0-77 → 2.0.0-79
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/build.zip +0 -0
- package/cjs/ops/AgentOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +1 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.test.js +1 -0
- package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
- package/cjs/ops/FrodoError.js +1 -1
- package/cjs/ops/FrodoError.js.map +1 -1
- package/cjs/ops/JourneyOps.js +22 -6
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/ServiceOps.js +11 -5
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.test.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.test.js +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/cjs/ops/cloud/VariablesOps.test.js.map +1 -1
- package/docs/classes/FrodoError.html +2 -2
- package/docs/index.html +2 -2
- package/docs/interfaces/Reference.AdminFederationExportInterface.html +2 -2
- package/docs/interfaces/Reference.AgentExportInterface.html +2 -2
- package/docs/interfaces/Reference.ApplicationExportInterface.html +9 -9
- package/docs/interfaces/Reference.AuthenticationSettingsExportInterface.html +2 -2
- package/docs/interfaces/Reference.CirclesOfTrustExportInterface.html +2 -2
- package/docs/interfaces/Reference.ConfigEntityExportInterface.html +2 -2
- package/docs/interfaces/Reference.ConfigEntityImportOptions.html +3 -3
- package/docs/interfaces/Reference.ConnectionProfileInterface.html +2 -2
- package/docs/interfaces/Reference.ConnectionsFileInterface.html +1 -1
- package/docs/interfaces/Reference.ConnectorExportInterface.html +2 -2
- package/docs/interfaces/Reference.ConnectorExportOptions.html +4 -4
- package/docs/interfaces/Reference.ConnectorImportOptions.html +3 -3
- package/docs/interfaces/Reference.ConnectorServerStatusInterface.html +2 -2
- package/docs/interfaces/Reference.EmailTemplateExportInterface.html +2 -2
- package/docs/interfaces/Reference.EnvInfoInterface.html +2 -2
- package/docs/interfaces/Reference.ExportMetaData.html +2 -2
- package/docs/interfaces/Reference.FeatureInterface.html +2 -2
- package/docs/interfaces/Reference.FullExportInterface.html +2 -2
- package/docs/interfaces/Reference.FullExportOptions.html +6 -6
- package/docs/interfaces/Reference.FullImportOptions.html +8 -8
- package/docs/interfaces/Reference.FullService.html +2 -2
- package/docs/interfaces/Reference.IdObjectSkeletonInterface.html +2 -2
- package/docs/interfaces/Reference.InnerNodeRefSkeletonInterface.html +2 -2
- package/docs/interfaces/Reference.JwkInterface.html +2 -2
- package/docs/interfaces/Reference.JwksInterface.html +2 -2
- package/docs/interfaces/Reference.ManagedObjectPatchOperationInterface.html +3 -3
- package/docs/interfaces/Reference.MappingExportInterface.html +2 -2
- package/docs/interfaces/Reference.MappingImportOptions.html +3 -3
- package/docs/interfaces/Reference.MultiTreeExportInterface.html +2 -2
- package/docs/interfaces/Reference.NoIdObjectSkeletonInterface.html +2 -2
- package/docs/interfaces/Reference.NodeRefSkeletonInterface.html +2 -2
- package/docs/interfaces/Reference.OAuth2ClientExportInterface.html +2 -2
- package/docs/interfaces/Reference.OAuth2ClientExportOptions.html +4 -4
- package/docs/interfaces/Reference.OAuth2ClientImportOptions.html +3 -3
- package/docs/interfaces/Reference.OAuth2TrustedJwtIssuerExportInterface.html +2 -2
- package/docs/interfaces/Reference.OAuth2TrustedJwtIssuerExportOptions.html +4 -4
- package/docs/interfaces/Reference.OAuth2TrustedJwtIssuerImportOptions.html +3 -3
- package/docs/interfaces/Reference.PlatformInfoInterface.html +2 -2
- package/docs/interfaces/Reference.PolicyExportInterface.html +2 -2
- package/docs/interfaces/Reference.PolicyExportOptions.html +5 -5
- package/docs/interfaces/Reference.PolicyImportOptions.html +5 -5
- package/docs/interfaces/Reference.PolicySetExportInterface.html +2 -2
- package/docs/interfaces/Reference.PolicySetExportOptions.html +5 -5
- package/docs/interfaces/Reference.PolicySetImportOptions.html +4 -4
- package/docs/interfaces/Reference.ResourceTypeExportInterface.html +2 -2
- package/docs/interfaces/Reference.Saml2EntitiesExportOptions.html +2 -2
- package/docs/interfaces/Reference.Saml2EntitiesImportOptions.html +2 -2
- package/docs/interfaces/Reference.Saml2ExportInterface.html +2 -2
- package/docs/interfaces/Reference.ScriptExportInterface.html +2 -2
- package/docs/interfaces/Reference.ScriptImportOptions.html +4 -4
- package/docs/interfaces/Reference.SecretsExportInterface.html +2 -2
- package/docs/interfaces/Reference.SecureConnectionProfileInterface.html +2 -2
- package/docs/interfaces/Reference.ServiceExportInterface.html +2 -2
- package/docs/interfaces/Reference.ServiceImportOptions.html +5 -5
- package/docs/interfaces/Reference.ServiceListItem.html +4 -4
- package/docs/interfaces/Reference.ServiceNextDescendent.html +1 -1
- package/docs/interfaces/Reference.SingleTreeExportInterface.html +2 -2
- package/docs/interfaces/Reference.SocialIdentityProviderExportOptions.html +4 -4
- package/docs/interfaces/Reference.SocialIdentityProviderImportOptions.html +3 -3
- package/docs/interfaces/Reference.SocialProviderExportInterface.html +2 -2
- package/docs/interfaces/Reference.StateInterface.html +2 -2
- package/docs/interfaces/Reference.SystemObjectPatchOperationInterface.html +2 -2
- package/docs/interfaces/Reference.SystemStatusInterface.html +2 -2
- package/docs/interfaces/Reference.ThemeExportInterface.html +2 -2
- package/docs/interfaces/Reference.TokenCacheInterface.html +1 -1
- package/docs/interfaces/Reference.TreeDependencyMapInterface.html +1 -1
- package/docs/interfaces/Reference.TreeExportOptions.html +5 -5
- package/docs/interfaces/Reference.TreeExportResolverInterface.html +1 -1
- package/docs/interfaces/Reference.TreeImportOptions.html +4 -4
- package/docs/interfaces/Reference.UiConfigInterface.html +2 -2
- package/docs/interfaces/Reference.Updates.html +4 -4
- package/docs/interfaces/Reference.VariablesExportInterface.html +2 -2
- package/docs/modules/Reference.html +2 -2
- package/docs/modules.html +2 -2
- package/docs/types/Reference.AccessTokenMetaType.html +1 -1
- package/docs/types/Reference.AccessTokenResponseType.html +1 -1
- package/docs/types/Reference.Admin.html +13 -13
- package/docs/types/Reference.AdminFederation.html +15 -15
- package/docs/types/Reference.AdminFederationConfigSkeleton.html +1 -1
- package/docs/types/Reference.Agent.html +53 -53
- package/docs/types/Reference.AgentSkeleton.html +1 -1
- package/docs/types/Reference.AgentType.html +1 -1
- package/docs/types/Reference.AmServiceSkeleton.html +1 -1
- package/docs/types/Reference.AmServiceType.html +1 -1
- package/docs/types/Reference.Application.html +19 -19
- package/docs/types/Reference.ApplicationExportOptions.html +2 -2
- package/docs/types/Reference.ApplicationImportOptions.html +2 -2
- package/docs/types/Reference.ApplicationSkeleton.html +1 -1
- package/docs/types/Reference.Authenticate.html +3 -3
- package/docs/types/Reference.AuthenticationSettings.html +5 -5
- package/docs/types/Reference.AuthenticationSettingsSkeleton.html +1 -1
- package/docs/types/Reference.Base64.html +1 -1
- package/docs/types/Reference.Callback.html +1 -1
- package/docs/types/Reference.CallbackHandler.html +1 -1
- package/docs/types/Reference.CallbackKeyValuePair.html +1 -1
- package/docs/types/Reference.CallbackType.html +1 -1
- package/docs/types/Reference.CircleOfTrustSkeleton.html +1 -1
- package/docs/types/Reference.CirclesOfTrust.html +15 -15
- package/docs/types/Reference.Config.html +3 -3
- package/docs/types/Reference.ConnectionProfile.html +9 -9
- package/docs/types/Reference.Connector.html +13 -13
- package/docs/types/Reference.ConnectorSkeleton.html +1 -1
- package/docs/types/Reference.Constants.html +1 -1
- package/docs/types/Reference.DeleteJourneyStatus.html +1 -1
- package/docs/types/Reference.DeleteJourneysStatus.html +1 -1
- package/docs/types/Reference.EmailTemplate.html +13 -13
- package/docs/types/Reference.EmailTemplateSkeleton.html +1 -1
- package/docs/types/Reference.ExportImport.html +7 -7
- package/docs/types/Reference.FRUtils.html +1 -1
- package/docs/types/Reference.Feature.html +3 -3
- package/docs/types/Reference.Frodo.html +4 -4
- package/docs/types/Reference.GatewayAgentType.html +1 -1
- package/docs/types/Reference.IdmConfig.html +19 -19
- package/docs/types/Reference.IdmConfigStub.html +1 -1
- package/docs/types/Reference.IdmSystem.html +14 -14
- package/docs/types/Reference.Idp.html +21 -21
- package/docs/types/Reference.Info.html +2 -2
- package/docs/types/Reference.JavaAgentType.html +1 -1
- package/docs/types/Reference.Jose.html +1 -1
- package/docs/types/Reference.Journey.html +28 -28
- package/docs/types/Reference.JourneyClassificationType.html +1 -1
- package/docs/types/Reference.Json.html +7 -7
- package/docs/types/Reference.JwkRsa.html +1 -1
- package/docs/types/Reference.JwkRsaPublic.html +1 -1
- package/docs/types/Reference.Log.html +13 -13
- package/docs/types/Reference.LogApiKey.html +1 -1
- package/docs/types/Reference.LogEventPayloadSkeleton.html +1 -1
- package/docs/types/Reference.LogEventSkeleton.html +1 -1
- package/docs/types/Reference.ManagedObject.html +13 -13
- package/docs/types/Reference.Mapping.html +15 -15
- package/docs/types/Reference.MappingPolicy.html +1 -1
- package/docs/types/Reference.MappingProperty.html +1 -1
- package/docs/types/Reference.MappingSkeleton.html +1 -1
- package/docs/types/Reference.Node.html +16 -16
- package/docs/types/Reference.NodeClassificationType.html +1 -1
- package/docs/types/Reference.NodeSkeleton.html +1 -1
- package/docs/types/Reference.OAuth2Client.html +16 -16
- package/docs/types/Reference.OAuth2ClientSkeleton.html +1 -1
- package/docs/types/Reference.OAuth2Oidc.html +1 -1
- package/docs/types/Reference.OAuth2Provider.html +6 -6
- package/docs/types/Reference.OAuth2ProviderSkeleton.html +1 -1
- package/docs/types/Reference.OAuth2TrustedJwtIssuer.html +16 -16
- package/docs/types/Reference.OAuth2TrustedJwtIssuerSkeleton.html +1 -1
- package/docs/types/Reference.ObjectPropertyFlag.html +1 -1
- package/docs/types/Reference.ObjectPropertyNativeType.html +1 -1
- package/docs/types/Reference.ObjectPropertySkeleton.html +1 -1
- package/docs/types/Reference.ObjectPropertyType.html +1 -1
- package/docs/types/Reference.ObjectTypeSkeleton.html +1 -1
- package/docs/types/Reference.Organization.html +4 -4
- package/docs/types/Reference.PagedResult.html +1 -1
- package/docs/types/Reference.PlatformInfo.html +1 -1
- package/docs/types/Reference.Policy.html +18 -18
- package/docs/types/Reference.PolicyCondition.html +1 -1
- package/docs/types/Reference.PolicyConditionType.html +1 -1
- package/docs/types/Reference.PolicySet.html +11 -11
- package/docs/types/Reference.PolicySetSkeleton.html +1 -1
- package/docs/types/Reference.PolicySkeleton.html +1 -1
- package/docs/types/Reference.ProgressIndicatorStatusType.html +1 -1
- package/docs/types/Reference.ProgressIndicatorType.html +1 -1
- package/docs/types/Reference.Readable.html +1 -1
- package/docs/types/Reference.Realm.html +13 -13
- package/docs/types/Reference.RealmSkeleton.html +1 -1
- package/docs/types/Reference.Recon.html +6 -6
- package/docs/types/Reference.ReconStatusType.html +1 -1
- package/docs/types/Reference.ReconType.html +1 -1
- package/docs/types/Reference.ResourceType.html +18 -18
- package/docs/types/Reference.ResourceTypeSkeleton.html +1 -1
- package/docs/types/Reference.Saml2.html +19 -19
- package/docs/types/Reference.Saml2ProiderLocation.html +1 -1
- package/docs/types/Reference.Saml2ProviderSkeleton.html +1 -1
- package/docs/types/Reference.Saml2ProviderStub.html +1 -1
- package/docs/types/Reference.Script.html +18 -18
- package/docs/types/Reference.ScriptContext.html +1 -1
- package/docs/types/Reference.ScriptLanguage.html +1 -1
- package/docs/types/Reference.ScriptSkeleton.html +1 -1
- package/docs/types/Reference.ScriptValidation.html +1 -1
- package/docs/types/Reference.Secret.html +22 -22
- package/docs/types/Reference.SecretEncodingType.html +2 -2
- package/docs/types/Reference.SecretSkeleton.html +2 -2
- package/docs/types/Reference.Service.html +9 -9
- package/docs/types/Reference.ServiceAccount.html +4 -4
- package/docs/types/Reference.ServiceAccountType.html +1 -1
- package/docs/types/Reference.Session.html +2 -2
- package/docs/types/Reference.SessionInfoType.html +1 -1
- package/docs/types/Reference.SocialIdpSkeleton.html +1 -1
- package/docs/types/Reference.Startup.html +3 -3
- package/docs/types/Reference.State.html +7 -7
- package/docs/types/Reference.Theme.html +20 -20
- package/docs/types/Reference.ThemeSkeleton.html +1 -1
- package/docs/types/Reference.TokenCache.html +16 -16
- package/docs/types/Reference.TokenInfoResponseType.html +1 -1
- package/docs/types/Reference.Tokens.html +1 -1
- package/docs/types/Reference.TreeSkeleton.html +1 -1
- package/docs/types/Reference.UserSessionMetaType.html +1 -1
- package/docs/types/Reference.Variable.html +13 -13
- package/docs/types/Reference.VariableExpressionType.html +2 -2
- package/docs/types/Reference.VariableSkeleton.html +2 -2
- package/docs/types/Reference.Version.html +1 -1
- package/docs/types/Reference.VersionOfSecretSkeleton.html +2 -2
- package/docs/types/Reference.VersionOfSecretStatus.html +1 -1
- package/docs/types/Reference.WebAgentType.html +1 -1
- package/docs/types/Reference.Writable.html +1 -1
- package/docs/types/Reference.tokenType.html +1 -1
- package/docs/variables/frodo.html +2 -2
- package/docs/variables/state.html +2 -2
- package/esm/ops/AgentOps.test.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +1 -1
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.test.js +1 -0
- package/esm/ops/EmailTemplateOps.test.js.map +1 -1
- package/esm/ops/FrodoError.js +1 -1
- package/esm/ops/FrodoError.js.map +1 -1
- package/esm/ops/JourneyOps.js +23 -7
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +11 -5
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/cloud/SecretsOps.test.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.test.js +1 -1
- package/esm/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/esm/ops/cloud/VariablesOps.test.js.map +1 -1
- package/package.json +10 -27
- package/types/ops/FrodoError.d.ts +1 -1
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts.map +1 -1
package/build.zip
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOps.test.js","names":["ctx","autoSetupPolly","stageAgent","_x","_stageAgent","apply","arguments","_asyncToGenerator","agent","create","length","undefined","AgentApi","getAgentByTypeAndId","agentType","type","agentId","id","state","deleteAgentByTypeAndId","error","putAgentByTypeAndId","agentData","getAgent","describe","gateway1","gateway2","gateway3","gateway4","gateway5","gateway6","gateway7","gateway8","gateway9","java1","java2","java3","java4","java5","java6","java7","java8","java9","web1","web2","web3","web4","web5","web6","web7","web8","web9","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","beforeEach","polly","server","any","on","_req","recording","filterRecording","FRODO_RECORD_PHASE","test","expect","AgentOps","createAgentExportTemplate","toBeDefined","response","toMatchSnapshot","meta","Object","readAgents","readAgent","concat","readAgentByTypeAndId","readIdentityGatewayAgents","readIdentityGatewayAgent","gatewayId","updateIdentityGatewayAgent","gatewayData","readJavaAgents","readJavaAgent","updateJavaAgent","readWebAgents","readWebAgent","updateWebAgent","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","agents","exportData","keys","importData","toBeTruthy","importIdentityGatewayAgents","assertions","name","toEqual","getCombinedMessage","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","deleteAgent","deleteIdentityGatewayAgent","deleteJavaAgent","deleteWebAgent","deleteIdentityGatewayAgents","deleteJavaAgents","deleteWebAgents","deleteAgents"],"sources":["../../src/ops/AgentOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 5 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * This step breaks down into 4 phases:\n *\n * Phase 1: Record Non-destructive tests\n * Phase 2: Record Group 1 of DESTRUCTIVE tests - Deletes by ID\n * Phase 3: Record Group 2 of DESTRUCTIVE tests - Deletes by type\n * Phase 4: Record Group 3 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record AgentOps\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE AGENTS!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record AgentOps\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record AgentOps\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record AgentOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you must manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update AgentOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only AgentOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as AgentApi from '../api/AgentApi';\nimport * as AgentOps from './AgentOps';\nimport { getAgent } from '../test/mocks/ForgeRockApiMockEngine';\nimport { autoSetupPolly, filterRecording } from '../utils/AutoSetupPolly';\nimport { FrodoError } from '../FrodoError';\n\nconst ctx = autoSetupPolly();\n\nasync function stageAgent(\n agent: { id: string; type: AgentApi.AgentType },\n create = true\n) {\n // delete if exists, then create\n try {\n await AgentApi.getAgentByTypeAndId({\n agentType: agent.type,\n agentId: agent.id,\n state,\n });\n await AgentApi.deleteAgentByTypeAndId({\n agentType: agent.type,\n agentId: agent.id,\n state,\n });\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await AgentApi.putAgentByTypeAndId({\n agentType: agent.type,\n agentId: agent.id,\n agentData: getAgent(agent.type, agent.id),\n state,\n });\n }\n }\n}\n\ntype agentStub = {\n id: string;\n type: AgentApi.AgentType;\n};\ndescribe('AgentOps', () => {\n const gateway1: agentStub = {\n id: 'FrodoOpsTestGatewayAgent1',\n type: 'IdentityGatewayAgent',\n };\n const gateway2: agentStub = {\n id: 'FrodoOpsTestGatewayAgent2',\n type: 'IdentityGatewayAgent',\n };\n const gateway3: agentStub = {\n id: 'FrodoOpsTestGatewayAgent3',\n type: 'IdentityGatewayAgent',\n };\n const gateway4: agentStub = {\n id: 'FrodoOpsTestGatewayAgent4',\n type: 'IdentityGatewayAgent',\n };\n const gateway5: agentStub = {\n id: 'FrodoOpsTestGatewayAgent5',\n type: 'IdentityGatewayAgent',\n };\n const gateway6: agentStub = {\n id: 'FrodoOpsTestGatewayAgent6',\n type: 'IdentityGatewayAgent',\n };\n const gateway7: agentStub = {\n id: 'FrodoOpsTestGatewayAgent7',\n type: 'IdentityGatewayAgent',\n };\n const gateway8: agentStub = {\n id: 'FrodoOpsTestGatewayAgent8',\n type: 'IdentityGatewayAgent',\n };\n const gateway9: agentStub = {\n id: 'FrodoOpsTestGatewayAgent9',\n type: 'IdentityGatewayAgent',\n };\n const java1: agentStub = {\n id: 'FrodoOpsTestJavaAgent1',\n type: 'J2EEAgent',\n };\n const java2: agentStub = {\n id: 'FrodoOpsTestJavaAgent2',\n type: 'J2EEAgent',\n };\n const java3: agentStub = {\n id: 'FrodoOpsTestJavaAgent3',\n type: 'J2EEAgent',\n };\n const java4: agentStub = {\n id: 'FrodoOpsTestJavaAgent4',\n type: 'J2EEAgent',\n };\n const java5: agentStub = {\n id: 'FrodoOpsTestJavaAgent5',\n type: 'J2EEAgent',\n };\n const java6: agentStub = {\n id: 'FrodoOpsTestJavaAgent6',\n type: 'J2EEAgent',\n };\n const java7: agentStub = {\n id: 'FrodoOpsTestJavaAgent7',\n type: 'J2EEAgent',\n };\n const java8: agentStub = {\n id: 'FrodoOpsTestJavaAgent8',\n type: 'J2EEAgent',\n };\n const java9: agentStub = {\n id: 'FrodoOpsTestJavaAgent9',\n type: 'J2EEAgent',\n };\n const web1: agentStub = {\n id: 'FrodoOpsTestWebAgent1',\n type: 'WebAgent',\n };\n const web2: agentStub = {\n id: 'FrodoOpsTestWebAgent2',\n type: 'WebAgent',\n };\n const web3: agentStub = {\n id: 'FrodoOpsTestWebAgent3',\n type: 'WebAgent',\n };\n const web4: agentStub = {\n id: 'FrodoOpsTestWebAgent4',\n type: 'WebAgent',\n };\n const web5: agentStub = {\n id: 'FrodoOpsTestWebAgent5',\n type: 'WebAgent',\n };\n const web6: agentStub = {\n id: 'FrodoOpsTestWebAgent6',\n type: 'WebAgent',\n };\n const web7: agentStub = {\n id: 'FrodoOpsTestWebAgent7',\n type: 'WebAgent',\n };\n const web8: agentStub = {\n id: 'FrodoOpsTestWebAgent8',\n type: 'WebAgent',\n };\n const web9: agentStub = {\n id: 'FrodoOpsTestWebAgent9',\n type: 'WebAgent',\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageAgent(gateway1);\n await stageAgent(gateway2, false);\n await stageAgent(gateway3, false);\n await stageAgent(gateway4, false);\n await stageAgent(gateway5, false);\n await stageAgent(gateway6, false);\n await stageAgent(gateway7);\n await stageAgent(gateway8);\n await stageAgent(gateway9);\n\n await stageAgent(java1);\n await stageAgent(java2, false);\n await stageAgent(java3, false);\n await stageAgent(java4, false);\n await stageAgent(java5, false);\n await stageAgent(java6, false);\n await stageAgent(java7);\n await stageAgent(java8);\n await stageAgent(java9);\n\n await stageAgent(web1);\n await stageAgent(web2, false);\n await stageAgent(web3, false);\n await stageAgent(web4, false);\n await stageAgent(web5, false);\n await stageAgent(web6, false);\n await stageAgent(web7);\n await stageAgent(web8);\n await stageAgent(web9);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageAgent(gateway1, false);\n await stageAgent(gateway2, false);\n await stageAgent(gateway3, false);\n await stageAgent(gateway4, false);\n await stageAgent(gateway5, false);\n await stageAgent(gateway6, false);\n await stageAgent(gateway7, false);\n await stageAgent(gateway8, false);\n await stageAgent(gateway9, false);\n\n await stageAgent(java1, false);\n await stageAgent(java2, false);\n await stageAgent(java3, false);\n await stageAgent(java4, false);\n await stageAgent(java5, false);\n await stageAgent(java6, false);\n await stageAgent(java7, false);\n await stageAgent(java8, false);\n await stageAgent(java9, false);\n\n await stageAgent(web1, false);\n await stageAgent(web2, false);\n await stageAgent(web3, false);\n await stageAgent(web4, false);\n await stageAgent(web5, false);\n await stageAgent(web6, false);\n await stageAgent(web7, false);\n await stageAgent(web8, false);\n await stageAgent(web9, false);\n }\n });\n beforeEach(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n ctx.polly.server.any().on('beforePersist', (_req, recording) => {\n filterRecording(recording);\n });\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createAgentExportTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.createAgentExportTemplate).toBeDefined();\n });\n\n test('1: Read all agent types', async () => {\n const response = AgentOps.createAgentExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('readAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readAgents).toBeDefined();\n });\n\n test('1: Read all agents', async () => {\n const response = await AgentOps.readAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readAgent).toBeDefined();\n });\n\n test(`1: Read agent '${gateway1.id}' (${gateway1.type})`, async () => {\n const response = await AgentOps.readAgent({\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Read agent '${java1.id}' (${java1.type})`, async () => {\n const response = await AgentOps.readAgent({ agentId: java1.id, state });\n expect(response).toMatchSnapshot();\n });\n\n test(`3: Read agent '${web1.id}' (${web1.type})`, async () => {\n const response = await AgentOps.readAgent({ agentId: web1.id, state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readAgentByTypeAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readAgentByTypeAndId).toBeDefined();\n });\n\n test(`1: Read agent by type '${gateway1.id}' (${gateway1.type})`, async () => {\n const response = await AgentOps.readAgentByTypeAndId({\n agentType: gateway1.type,\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Read agent by type '${java1.id}' (${java1.type})`, async () => {\n const response = await AgentOps.readAgentByTypeAndId({\n agentType: java1.type,\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`3: Read agent by type '${web1.id}' (${web1.type})`, async () => {\n const response = await AgentOps.readAgentByTypeAndId({\n agentType: web1.type,\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Read gateway agents', async () => {\n const response = await AgentOps.readIdentityGatewayAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Read ${gateway1.type} '${gateway1.id}'`, async () => {\n const response = await AgentOps.readIdentityGatewayAgent({\n gatewayId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('updateIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.updateIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Update ${gateway2.type} '${gateway2.id}'`, async () => {\n const response = await AgentOps.updateIdentityGatewayAgent({\n gatewayId: gateway2.id,\n gatewayData: getAgent(gateway2.type, gateway2.id),\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readJavaAgents).toBeDefined();\n });\n\n test('1: Read java agents', async () => {\n const response = await AgentOps.readJavaAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readJavaAgent).toBeDefined();\n });\n\n test(`1: Read ${java1.type} '${java1.id}'`, async () => {\n const response = await AgentOps.readJavaAgent({\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('uodateJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.updateJavaAgent).toBeDefined();\n });\n\n test(`1: Update ${java2.type} '${java2.id}'`, async () => {\n const response = await AgentOps.updateJavaAgent({\n agentId: java2.id,\n agentData: getAgent(java2.type, java2.id),\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readWebAgents).toBeDefined();\n });\n\n test('1: Read web agents', async () => {\n const response = await AgentOps.readWebAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readWebAgent).toBeDefined();\n });\n\n test(`1: Read ${web1.type} '${web1.id}'`, async () => {\n const response = await AgentOps.readWebAgent({\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('updateWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.updateWebAgent).toBeDefined();\n });\n\n test(`1: Update ${web2.type} '${web2.id}'`, async () => {\n const response = await AgentOps.updateWebAgent({\n agentId: web2.id,\n agentData: getAgent(web2.type, web2.id),\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportAgents).toBeDefined();\n });\n\n test('1: Export all agents', async () => {\n const response = await AgentOps.exportAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Export gateway agents', async () => {\n const response = await AgentOps.exportIdentityGatewayAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportJavaAgents).toBeDefined();\n });\n\n test('1: Export java agents', async () => {\n const response = await AgentOps.exportJavaAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportJavaAgents).toBeDefined();\n });\n\n test('1: Export web agents', async () => {\n const response = await AgentOps.exportWebAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportAgent).toBeDefined();\n });\n\n test(`1: Export agent '${gateway1.id}' (${gateway1.type})`, async () => {\n const response = await AgentOps.exportAgent({\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export agent '${java1.id}' (${java1.type})`, async () => {\n const response = await AgentOps.exportAgent({\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`3: Export agent '${web1.id}' (${web1.type})`, async () => {\n const response = await AgentOps.exportAgent({\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Export ${gateway1.type} '${gateway1.id}'`, async () => {\n const response = await AgentOps.exportIdentityGatewayAgent({\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportJavaAgent).toBeDefined();\n });\n\n test(`1: Export ${java1.type} '${java1.id}'`, async () => {\n const response = await AgentOps.exportJavaAgent({\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportWebAgent).toBeDefined();\n });\n\n test(`1: Export ${web1.type} '${web1.id}'`, async () => {\n const response = await AgentOps.exportWebAgent({\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importAgents).toBeDefined();\n });\n\n test('1: Import all agents', async () => {\n const agents = {\n [gateway3.id]: gateway3.type,\n [java3.id]: java3.type,\n [web3.id]: web3.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importAgents({ importData: exportData, state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('importIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Import all gateway agents', async () => {\n const agents = {\n [gateway4.id]: gateway4.type,\n [gateway5.id]: gateway5.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importIdentityGatewayAgents({\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import gateway agents with wrong type', async () => {\n const agents = {\n [java4.id]: java4.type,\n [web4.id]: web4.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n expect.assertions(2);\n try {\n await AgentOps.importIdentityGatewayAgents({\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importJavaAgents).toBeDefined();\n });\n\n test('1: Import all java agents', async () => {\n const agents = {\n [java4.id]: java4.type,\n [java5.id]: java5.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importJavaAgents({ importData: exportData, state });\n expect(true).toBeTruthy();\n });\n\n test('2: Import java agents with wrong type', async () => {\n const agents = {\n [web4.id]: web4.type,\n [gateway4.id]: gateway4.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n expect.assertions(2);\n try {\n await AgentOps.importJavaAgents({ importData: exportData, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importWebAgents).toBeDefined();\n });\n\n test('1: Import all web agents', async () => {\n const agents = {\n [web4.id]: web4.type,\n [web5.id]: web5.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importWebAgents({ importData: exportData, state });\n expect(true).toBeTruthy();\n });\n\n test('2: Import web agents with wrong type', async () => {\n const agents = {\n [gateway4.id]: gateway4.type,\n [java4.id]: java4.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n expect.assertions(2);\n try {\n await AgentOps.importWebAgents({ importData: exportData, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importAgent).toBeDefined();\n });\n\n test('1: Import gateway agent', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[gateway6.id] = getAgent(gateway6.type, gateway6.id);\n await AgentOps.importAgent({\n agentId: gateway6.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import java agent', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[java6.id] = getAgent(java6.type, java6.id);\n await AgentOps.importAgent({\n agentId: java6.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('3: Import web agent', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[web6.id] = getAgent(web6.type, web6.id);\n await AgentOps.importAgent({\n agentId: web6.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n });\n\n describe('importIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Import ${gateway7.type} '${gateway7.id}'`, async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[gateway7.id] = getAgent(gateway7.type, gateway7.id);\n await AgentOps.importIdentityGatewayAgent({\n agentId: gateway7.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import gateway agent with wrong type', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[java7.id] = getAgent(java7.type, java7.id);\n expect.assertions(2);\n try {\n await AgentOps.importIdentityGatewayAgent({\n agentId: java7.id,\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importJavaAgents).toBeDefined();\n });\n\n test(`1: Import ${java7.type} '${java7.id}'`, async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[java7.id] = getAgent(java7.type, java7.id);\n await AgentOps.importJavaAgent({\n agentId: java7.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import java agent with wrong type', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[web7.id] = getAgent(web7.type, web7.id);\n expect.assertions(2);\n try {\n await AgentOps.importJavaAgent({\n agentId: web7.id,\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importWebAgent).toBeDefined();\n });\n\n test(`1: Import ${web7.type} '${web7.id}'`, async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[web7.id] = getAgent(web7.type, web7.id);\n await AgentOps.importWebAgent({\n agentId: web7.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import web agent with wrong type', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[gateway7.id] = getAgent(gateway7.type, gateway7.id);\n expect.assertions(2);\n try {\n await AgentOps.importWebAgent({\n agentId: gateway7.id,\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('deleteAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteAgent).toBeDefined();\n });\n\n test(`1: Delete agent '${gateway8.id}' (${gateway8.type})`, async () => {\n await AgentOps.deleteAgent({ agentId: gateway8.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent '${java8.id}' (${java8.type})`, async () => {\n await AgentOps.deleteAgent({ agentId: java8.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`3: Delete agent '${web8.id}' (${web8.type})`, async () => {\n await AgentOps.deleteAgent({ agentId: web8.id, state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('deleteIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Delete ${gateway9.type} '${gateway9.id}'`, async () => {\n await AgentOps.deleteIdentityGatewayAgent({\n agentId: gateway9.id,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent of wrong type '${java9.id}' (${java9.type})`, async () => {\n expect.assertions(2);\n try {\n await AgentOps.deleteIdentityGatewayAgent({\n agentId: java9.id,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteJavaAgent).toBeDefined();\n });\n\n test(`1: Delete ${java9.type} '${java9.id}'`, async () => {\n await AgentOps.deleteJavaAgent({ agentId: java9.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent of wrong type '${web9.id}' (${web9.type})`, async () => {\n expect.assertions(2);\n try {\n await AgentOps.deleteJavaAgent({ agentId: web9.id, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteWebAgent()', () => {\n test('deleteWebAgent() 0: Method is implemented', async () => {\n expect(AgentOps.deleteWebAgent).toBeDefined();\n });\n\n test(`1: Delete ${web9.type} '${web9.id}'`, async () => {\n await AgentOps.deleteWebAgent({ agentId: web9.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent of wrong type '${gateway9.id}' (${gateway9.type})`, async () => {\n expect.assertions(2);\n try {\n await AgentOps.deleteWebAgent({ agentId: gateway9.id, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Delete all gateway agents', async () => {\n await AgentOps.deleteIdentityGatewayAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('deleteJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteJavaAgents).toBeDefined();\n });\n\n test('1: Delete all java agents', async () => {\n await AgentOps.deleteJavaAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('deleteWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteWebAgents).toBeDefined();\n });\n\n test('1: Delete all web agents', async () => {\n await AgentOps.deleteWebAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteAgents).toBeDefined();\n });\n\n test('1: Delete all agents', async () => {\n expect.assertions(1);\n await AgentOps.deleteAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n }\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentOps.test.js","names":["ctx","autoSetupPolly","stageAgent","_x","_stageAgent","apply","arguments","_asyncToGenerator","agent","create","length","undefined","AgentApi","getAgentByTypeAndId","agentType","type","agentId","id","state","deleteAgentByTypeAndId","error","putAgentByTypeAndId","agentData","getAgent","describe","gateway1","gateway2","gateway3","gateway4","gateway5","gateway6","gateway7","gateway8","gateway9","java1","java2","java3","java4","java5","java6","java7","java8","java9","web1","web2","web3","web4","web5","web6","web7","web8","web9","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","beforeEach","polly","server","any","on","_req","recording","filterRecording","FRODO_RECORD_PHASE","test","expect","AgentOps","createAgentExportTemplate","toBeDefined","response","toMatchSnapshot","meta","Object","readAgents","readAgent","concat","readAgentByTypeAndId","readIdentityGatewayAgents","readIdentityGatewayAgent","gatewayId","updateIdentityGatewayAgent","gatewayData","readJavaAgents","readJavaAgent","updateJavaAgent","readWebAgents","readWebAgent","updateWebAgent","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","agents","exportData","keys","importData","toBeTruthy","importIdentityGatewayAgents","assertions","name","toEqual","getCombinedMessage","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","deleteAgent","deleteIdentityGatewayAgent","deleteJavaAgent","deleteWebAgent","deleteIdentityGatewayAgents","deleteJavaAgents","deleteWebAgents","deleteAgents"],"sources":["../../src/ops/AgentOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 5 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * This step breaks down into 4 phases:\n *\n * Phase 1: Record Non-destructive tests\n * Phase 2: Record Group 1 of DESTRUCTIVE tests - Deletes by ID\n * Phase 3: Record Group 2 of DESTRUCTIVE tests - Deletes by type\n * Phase 4: Record Group 3 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record AgentOps\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE AGENTS!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record AgentOps\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record AgentOps\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record AgentOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you must manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update AgentOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only AgentOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as AgentApi from '../api/AgentApi';\nimport * as AgentOps from './AgentOps';\nimport { getAgent } from '../test/mocks/ForgeRockApiMockEngine';\nimport { autoSetupPolly, filterRecording } from '../utils/AutoSetupPolly';\nimport { FrodoError } from './FrodoError';\n\nconst ctx = autoSetupPolly();\n\nasync function stageAgent(\n agent: { id: string; type: AgentApi.AgentType },\n create = true\n) {\n // delete if exists, then create\n try {\n await AgentApi.getAgentByTypeAndId({\n agentType: agent.type,\n agentId: agent.id,\n state,\n });\n await AgentApi.deleteAgentByTypeAndId({\n agentType: agent.type,\n agentId: agent.id,\n state,\n });\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await AgentApi.putAgentByTypeAndId({\n agentType: agent.type,\n agentId: agent.id,\n agentData: getAgent(agent.type, agent.id),\n state,\n });\n }\n }\n}\n\ntype agentStub = {\n id: string;\n type: AgentApi.AgentType;\n};\ndescribe('AgentOps', () => {\n const gateway1: agentStub = {\n id: 'FrodoOpsTestGatewayAgent1',\n type: 'IdentityGatewayAgent',\n };\n const gateway2: agentStub = {\n id: 'FrodoOpsTestGatewayAgent2',\n type: 'IdentityGatewayAgent',\n };\n const gateway3: agentStub = {\n id: 'FrodoOpsTestGatewayAgent3',\n type: 'IdentityGatewayAgent',\n };\n const gateway4: agentStub = {\n id: 'FrodoOpsTestGatewayAgent4',\n type: 'IdentityGatewayAgent',\n };\n const gateway5: agentStub = {\n id: 'FrodoOpsTestGatewayAgent5',\n type: 'IdentityGatewayAgent',\n };\n const gateway6: agentStub = {\n id: 'FrodoOpsTestGatewayAgent6',\n type: 'IdentityGatewayAgent',\n };\n const gateway7: agentStub = {\n id: 'FrodoOpsTestGatewayAgent7',\n type: 'IdentityGatewayAgent',\n };\n const gateway8: agentStub = {\n id: 'FrodoOpsTestGatewayAgent8',\n type: 'IdentityGatewayAgent',\n };\n const gateway9: agentStub = {\n id: 'FrodoOpsTestGatewayAgent9',\n type: 'IdentityGatewayAgent',\n };\n const java1: agentStub = {\n id: 'FrodoOpsTestJavaAgent1',\n type: 'J2EEAgent',\n };\n const java2: agentStub = {\n id: 'FrodoOpsTestJavaAgent2',\n type: 'J2EEAgent',\n };\n const java3: agentStub = {\n id: 'FrodoOpsTestJavaAgent3',\n type: 'J2EEAgent',\n };\n const java4: agentStub = {\n id: 'FrodoOpsTestJavaAgent4',\n type: 'J2EEAgent',\n };\n const java5: agentStub = {\n id: 'FrodoOpsTestJavaAgent5',\n type: 'J2EEAgent',\n };\n const java6: agentStub = {\n id: 'FrodoOpsTestJavaAgent6',\n type: 'J2EEAgent',\n };\n const java7: agentStub = {\n id: 'FrodoOpsTestJavaAgent7',\n type: 'J2EEAgent',\n };\n const java8: agentStub = {\n id: 'FrodoOpsTestJavaAgent8',\n type: 'J2EEAgent',\n };\n const java9: agentStub = {\n id: 'FrodoOpsTestJavaAgent9',\n type: 'J2EEAgent',\n };\n const web1: agentStub = {\n id: 'FrodoOpsTestWebAgent1',\n type: 'WebAgent',\n };\n const web2: agentStub = {\n id: 'FrodoOpsTestWebAgent2',\n type: 'WebAgent',\n };\n const web3: agentStub = {\n id: 'FrodoOpsTestWebAgent3',\n type: 'WebAgent',\n };\n const web4: agentStub = {\n id: 'FrodoOpsTestWebAgent4',\n type: 'WebAgent',\n };\n const web5: agentStub = {\n id: 'FrodoOpsTestWebAgent5',\n type: 'WebAgent',\n };\n const web6: agentStub = {\n id: 'FrodoOpsTestWebAgent6',\n type: 'WebAgent',\n };\n const web7: agentStub = {\n id: 'FrodoOpsTestWebAgent7',\n type: 'WebAgent',\n };\n const web8: agentStub = {\n id: 'FrodoOpsTestWebAgent8',\n type: 'WebAgent',\n };\n const web9: agentStub = {\n id: 'FrodoOpsTestWebAgent9',\n type: 'WebAgent',\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageAgent(gateway1);\n await stageAgent(gateway2, false);\n await stageAgent(gateway3, false);\n await stageAgent(gateway4, false);\n await stageAgent(gateway5, false);\n await stageAgent(gateway6, false);\n await stageAgent(gateway7);\n await stageAgent(gateway8);\n await stageAgent(gateway9);\n\n await stageAgent(java1);\n await stageAgent(java2, false);\n await stageAgent(java3, false);\n await stageAgent(java4, false);\n await stageAgent(java5, false);\n await stageAgent(java6, false);\n await stageAgent(java7);\n await stageAgent(java8);\n await stageAgent(java9);\n\n await stageAgent(web1);\n await stageAgent(web2, false);\n await stageAgent(web3, false);\n await stageAgent(web4, false);\n await stageAgent(web5, false);\n await stageAgent(web6, false);\n await stageAgent(web7);\n await stageAgent(web8);\n await stageAgent(web9);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageAgent(gateway1, false);\n await stageAgent(gateway2, false);\n await stageAgent(gateway3, false);\n await stageAgent(gateway4, false);\n await stageAgent(gateway5, false);\n await stageAgent(gateway6, false);\n await stageAgent(gateway7, false);\n await stageAgent(gateway8, false);\n await stageAgent(gateway9, false);\n\n await stageAgent(java1, false);\n await stageAgent(java2, false);\n await stageAgent(java3, false);\n await stageAgent(java4, false);\n await stageAgent(java5, false);\n await stageAgent(java6, false);\n await stageAgent(java7, false);\n await stageAgent(java8, false);\n await stageAgent(java9, false);\n\n await stageAgent(web1, false);\n await stageAgent(web2, false);\n await stageAgent(web3, false);\n await stageAgent(web4, false);\n await stageAgent(web5, false);\n await stageAgent(web6, false);\n await stageAgent(web7, false);\n await stageAgent(web8, false);\n await stageAgent(web9, false);\n }\n });\n beforeEach(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n ctx.polly.server.any().on('beforePersist', (_req, recording) => {\n filterRecording(recording);\n });\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createAgentExportTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.createAgentExportTemplate).toBeDefined();\n });\n\n test('1: Read all agent types', async () => {\n const response = AgentOps.createAgentExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('readAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readAgents).toBeDefined();\n });\n\n test('1: Read all agents', async () => {\n const response = await AgentOps.readAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readAgent).toBeDefined();\n });\n\n test(`1: Read agent '${gateway1.id}' (${gateway1.type})`, async () => {\n const response = await AgentOps.readAgent({\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Read agent '${java1.id}' (${java1.type})`, async () => {\n const response = await AgentOps.readAgent({ agentId: java1.id, state });\n expect(response).toMatchSnapshot();\n });\n\n test(`3: Read agent '${web1.id}' (${web1.type})`, async () => {\n const response = await AgentOps.readAgent({ agentId: web1.id, state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readAgentByTypeAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readAgentByTypeAndId).toBeDefined();\n });\n\n test(`1: Read agent by type '${gateway1.id}' (${gateway1.type})`, async () => {\n const response = await AgentOps.readAgentByTypeAndId({\n agentType: gateway1.type,\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Read agent by type '${java1.id}' (${java1.type})`, async () => {\n const response = await AgentOps.readAgentByTypeAndId({\n agentType: java1.type,\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`3: Read agent by type '${web1.id}' (${web1.type})`, async () => {\n const response = await AgentOps.readAgentByTypeAndId({\n agentType: web1.type,\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Read gateway agents', async () => {\n const response = await AgentOps.readIdentityGatewayAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Read ${gateway1.type} '${gateway1.id}'`, async () => {\n const response = await AgentOps.readIdentityGatewayAgent({\n gatewayId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('updateIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.updateIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Update ${gateway2.type} '${gateway2.id}'`, async () => {\n const response = await AgentOps.updateIdentityGatewayAgent({\n gatewayId: gateway2.id,\n gatewayData: getAgent(gateway2.type, gateway2.id),\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readJavaAgents).toBeDefined();\n });\n\n test('1: Read java agents', async () => {\n const response = await AgentOps.readJavaAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readJavaAgent).toBeDefined();\n });\n\n test(`1: Read ${java1.type} '${java1.id}'`, async () => {\n const response = await AgentOps.readJavaAgent({\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('uodateJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.updateJavaAgent).toBeDefined();\n });\n\n test(`1: Update ${java2.type} '${java2.id}'`, async () => {\n const response = await AgentOps.updateJavaAgent({\n agentId: java2.id,\n agentData: getAgent(java2.type, java2.id),\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readWebAgents).toBeDefined();\n });\n\n test('1: Read web agents', async () => {\n const response = await AgentOps.readWebAgents({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.readWebAgent).toBeDefined();\n });\n\n test(`1: Read ${web1.type} '${web1.id}'`, async () => {\n const response = await AgentOps.readWebAgent({\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('updateWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.updateWebAgent).toBeDefined();\n });\n\n test(`1: Update ${web2.type} '${web2.id}'`, async () => {\n const response = await AgentOps.updateWebAgent({\n agentId: web2.id,\n agentData: getAgent(web2.type, web2.id),\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportAgents).toBeDefined();\n });\n\n test('1: Export all agents', async () => {\n const response = await AgentOps.exportAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Export gateway agents', async () => {\n const response = await AgentOps.exportIdentityGatewayAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportJavaAgents).toBeDefined();\n });\n\n test('1: Export java agents', async () => {\n const response = await AgentOps.exportJavaAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportJavaAgents).toBeDefined();\n });\n\n test('1: Export web agents', async () => {\n const response = await AgentOps.exportWebAgents({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportAgent).toBeDefined();\n });\n\n test(`1: Export agent '${gateway1.id}' (${gateway1.type})`, async () => {\n const response = await AgentOps.exportAgent({\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export agent '${java1.id}' (${java1.type})`, async () => {\n const response = await AgentOps.exportAgent({\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`3: Export agent '${web1.id}' (${web1.type})`, async () => {\n const response = await AgentOps.exportAgent({\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Export ${gateway1.type} '${gateway1.id}'`, async () => {\n const response = await AgentOps.exportIdentityGatewayAgent({\n agentId: gateway1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportJavaAgent).toBeDefined();\n });\n\n test(`1: Export ${java1.type} '${java1.id}'`, async () => {\n const response = await AgentOps.exportJavaAgent({\n agentId: java1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.exportWebAgent).toBeDefined();\n });\n\n test(`1: Export ${web1.type} '${web1.id}'`, async () => {\n const response = await AgentOps.exportWebAgent({\n agentId: web1.id,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importAgents).toBeDefined();\n });\n\n test('1: Import all agents', async () => {\n const agents = {\n [gateway3.id]: gateway3.type,\n [java3.id]: java3.type,\n [web3.id]: web3.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importAgents({ importData: exportData, state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('importIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Import all gateway agents', async () => {\n const agents = {\n [gateway4.id]: gateway4.type,\n [gateway5.id]: gateway5.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importIdentityGatewayAgents({\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import gateway agents with wrong type', async () => {\n const agents = {\n [java4.id]: java4.type,\n [web4.id]: web4.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n expect.assertions(2);\n try {\n await AgentOps.importIdentityGatewayAgents({\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importJavaAgents).toBeDefined();\n });\n\n test('1: Import all java agents', async () => {\n const agents = {\n [java4.id]: java4.type,\n [java5.id]: java5.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importJavaAgents({ importData: exportData, state });\n expect(true).toBeTruthy();\n });\n\n test('2: Import java agents with wrong type', async () => {\n const agents = {\n [web4.id]: web4.type,\n [gateway4.id]: gateway4.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n expect.assertions(2);\n try {\n await AgentOps.importJavaAgents({ importData: exportData, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importWebAgents).toBeDefined();\n });\n\n test('1: Import all web agents', async () => {\n const agents = {\n [web4.id]: web4.type,\n [web5.id]: web5.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n await AgentOps.importWebAgents({ importData: exportData, state });\n expect(true).toBeTruthy();\n });\n\n test('2: Import web agents with wrong type', async () => {\n const agents = {\n [gateway4.id]: gateway4.type,\n [java4.id]: java4.type,\n };\n const exportData = AgentOps.createAgentExportTemplate({ state });\n for (const agentId of Object.keys(agents)) {\n exportData.agents[agentId] = getAgent(agents[agentId], agentId);\n }\n expect.assertions(2);\n try {\n await AgentOps.importWebAgents({ importData: exportData, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importAgent).toBeDefined();\n });\n\n test('1: Import gateway agent', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[gateway6.id] = getAgent(gateway6.type, gateway6.id);\n await AgentOps.importAgent({\n agentId: gateway6.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import java agent', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[java6.id] = getAgent(java6.type, java6.id);\n await AgentOps.importAgent({\n agentId: java6.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('3: Import web agent', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[web6.id] = getAgent(web6.type, web6.id);\n await AgentOps.importAgent({\n agentId: web6.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n });\n\n describe('importIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Import ${gateway7.type} '${gateway7.id}'`, async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[gateway7.id] = getAgent(gateway7.type, gateway7.id);\n await AgentOps.importIdentityGatewayAgent({\n agentId: gateway7.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import gateway agent with wrong type', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[java7.id] = getAgent(java7.type, java7.id);\n expect.assertions(2);\n try {\n await AgentOps.importIdentityGatewayAgent({\n agentId: java7.id,\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importJavaAgents).toBeDefined();\n });\n\n test(`1: Import ${java7.type} '${java7.id}'`, async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[java7.id] = getAgent(java7.type, java7.id);\n await AgentOps.importJavaAgent({\n agentId: java7.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import java agent with wrong type', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[web7.id] = getAgent(web7.type, web7.id);\n expect.assertions(2);\n try {\n await AgentOps.importJavaAgent({\n agentId: web7.id,\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('importWebAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.importWebAgent).toBeDefined();\n });\n\n test(`1: Import ${web7.type} '${web7.id}'`, async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[web7.id] = getAgent(web7.type, web7.id);\n await AgentOps.importWebAgent({\n agentId: web7.id,\n importData: exportData,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test('2: Import web agent with wrong type', async () => {\n const exportData = AgentOps.createAgentExportTemplate({ state });\n exportData.agents[gateway7.id] = getAgent(gateway7.type, gateway7.id);\n expect.assertions(2);\n try {\n await AgentOps.importWebAgent({\n agentId: gateway7.id,\n importData: exportData,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('deleteAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteAgent).toBeDefined();\n });\n\n test(`1: Delete agent '${gateway8.id}' (${gateway8.type})`, async () => {\n await AgentOps.deleteAgent({ agentId: gateway8.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent '${java8.id}' (${java8.type})`, async () => {\n await AgentOps.deleteAgent({ agentId: java8.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`3: Delete agent '${web8.id}' (${web8.type})`, async () => {\n await AgentOps.deleteAgent({ agentId: web8.id, state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('deleteIdentityGatewayAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteIdentityGatewayAgent).toBeDefined();\n });\n\n test(`1: Delete ${gateway9.type} '${gateway9.id}'`, async () => {\n await AgentOps.deleteIdentityGatewayAgent({\n agentId: gateway9.id,\n state,\n });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent of wrong type '${java9.id}' (${java9.type})`, async () => {\n expect.assertions(2);\n try {\n await AgentOps.deleteIdentityGatewayAgent({\n agentId: java9.id,\n state,\n });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteJavaAgent()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteJavaAgent).toBeDefined();\n });\n\n test(`1: Delete ${java9.type} '${java9.id}'`, async () => {\n await AgentOps.deleteJavaAgent({ agentId: java9.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent of wrong type '${web9.id}' (${web9.type})`, async () => {\n expect.assertions(2);\n try {\n await AgentOps.deleteJavaAgent({ agentId: web9.id, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteWebAgent()', () => {\n test('deleteWebAgent() 0: Method is implemented', async () => {\n expect(AgentOps.deleteWebAgent).toBeDefined();\n });\n\n test(`1: Delete ${web9.type} '${web9.id}'`, async () => {\n await AgentOps.deleteWebAgent({ agentId: web9.id, state });\n expect(true).toBeTruthy();\n });\n\n test(`2: Delete agent of wrong type '${gateway9.id}' (${gateway9.type})`, async () => {\n expect.assertions(2);\n try {\n await AgentOps.deleteWebAgent({ agentId: gateway9.id, state });\n } catch (error) {\n expect(error.name).toEqual('FrodoError');\n expect((error as FrodoError).getCombinedMessage()).toMatchSnapshot();\n }\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteIdentityGatewayAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteIdentityGatewayAgents).toBeDefined();\n });\n\n test('1: Delete all gateway agents', async () => {\n await AgentOps.deleteIdentityGatewayAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('deleteJavaAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteJavaAgents).toBeDefined();\n });\n\n test('1: Delete all java agents', async () => {\n await AgentOps.deleteJavaAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n\n describe('deleteWebAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteWebAgents).toBeDefined();\n });\n\n test('1: Delete all web agents', async () => {\n await AgentOps.deleteWebAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteAgents()', () => {\n test('0: Method is implemented', async () => {\n expect(AgentOps.deleteAgents).toBeDefined();\n });\n\n test('1: Delete all agents', async () => {\n expect.assertions(1);\n await AgentOps.deleteAgents({ state });\n expect(true).toBeTruthy();\n });\n });\n }\n});\n"],"mappings":"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"}
|
|
@@ -310,7 +310,7 @@ function _updateEmailTemplate() {
|
|
|
310
310
|
state
|
|
311
311
|
});
|
|
312
312
|
} catch (error) {
|
|
313
|
-
throw new _FrodoError.FrodoError("Error
|
|
313
|
+
throw new _FrodoError.FrodoError("Error updating email template ".concat(templateId), error);
|
|
314
314
|
}
|
|
315
315
|
});
|
|
316
316
|
return _updateEmailTemplate.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTemplateOps.js","names":["state","EMAIL_TEMPLATE_TYPE","createEmailTemplateExportTemplate","readEmailTemplates","_asyncToGenerator","readEmailTemplate","templateId","exportEmailTemplates","createEmailTemplate","templateData","updateEmailTemplate","importEmailTemplates","importData","deleteEmailTemplates","deleteEmailTemplate","getEmailTemplates","getEmailTemplate","putEmailTemplate","exports","default","_default","_ref","meta","getMetadata","emailTemplate","_x","_readEmailTemplates","apply","arguments","_ref2","templates","readConfigEntitiesByType","type","error","FrodoError","_x2","_readEmailTemplate","_ref3","getConfigEntity","entityId","concat","_x3","_exportEmailTemplates","_ref4","debugMessage","message","exportData","emailTemplates","indicatorId","createProgressIndicator","total","length","_id","replace","updateProgressIndicator","id","stopProgressIndicator","_x4","_createEmailTemplate","_ref5","result","putConfigEntity","entityData","Error","_x5","_updateEmailTemplate","_ref6","_x6","_importEmailTemplates","_ref7","response","errors","Object","keys","push","e","_x7","_deleteEmailTemplates","_ref8","template","deleteConfigEntity","_x8","_deleteEmailTemplate","_ref9"],"sources":["../../src/ops/EmailTemplateOps.ts"],"sourcesContent":["import { IdObjectSkeletonInterface } from '../api/ApiTypes';\nimport {\n deleteConfigEntity,\n getConfigEntity,\n putConfigEntity,\n} from '../api/IdmConfigApi';\nimport { State } from '../shared/State';\nimport {\n createProgressIndicator,\n debugMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport { getMetadata } from '../utils/ExportImportUtils';\nimport { FrodoError } from './FrodoError';\nimport { readConfigEntitiesByType } from './IdmConfigOps';\nimport { ExportMetaData } from './OpsTypes';\n\nexport type EmailTemplate = {\n /**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\n EMAIL_TEMPLATE_TYPE: string;\n /**\n * Create an empty email template export template\n * @returns {EmailTemplateExportInterface} an empty email template export template\n */\n createEmailTemplateExportTemplate(): EmailTemplateExportInterface;\n /**\n * Get all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\n readEmailTemplates(): Promise<EmailTemplateSkeleton[]>;\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\n readEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>;\n /**\n * Export all email templates. The response can be saved to file as is.\n * @returns {Promise<EmailTemplateExportInterface>} Promise resolving to a EmailTemplateExportInterface object.\n */\n exportEmailTemplates(): Promise<EmailTemplateExportInterface>;\n /**\n * Create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\n createEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<EmailTemplateSkeleton>;\n /**\n * Update or create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\n updateEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<EmailTemplateSkeleton>;\n /**\n * Import all email templates\n * @param {EmailTemplateExportInterface} importData import data\n * @returns {Promise<IdObjectSkeletonInterface[]>} a promise resolving to an array of email template objects\n */\n importEmailTemplates(\n importData: EmailTemplateExportInterface\n ): Promise<EmailTemplateSkeleton[]>;\n /**\n * Delete all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\n deleteEmailTemplates(): Promise<EmailTemplateSkeleton[]>;\n /**\n * Delete email template\n * @param {string} templateId id/name of the email template without the type prefix 'emailTemplate/'\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\n deleteEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>;\n\n // Deprecated\n\n /**\n * Get all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n * @deprecated since v2.0.0 use {@link EmailTemplate.readEmailTemplates | readEmailTemplates} instead\n * ```javascript\n * readEmailTemplates(): Promise<EmailTemplateSkeleton[]>\n * ```\n * @group Deprecated\n */\n getEmailTemplates(): Promise<EmailTemplateSkeleton[]>;\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n * @deprecated since v2.0.0 use {@link EmailTemplate.readEmailTemplate | readEmailTemplate} instead\n * ```javascript\n * readEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>\n * ```\n * @group Deprecated\n */\n getEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>;\n /**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n * @deprecated since v2.0.0 use {@link EmailTemplate.updateEmailTemplate | updateEmailTemplate} or {@link EmailTemplate.createEmailTemplate | createEmailTemplate} instead\n * ```javascript\n * updateEmailTemplate(templateId: string, templateData: EmailTemplateSkeleton): Promise<EmailTemplateSkeleton>\n * createEmailTemplate(templateId: string, templateData: EmailTemplateSkeleton): Promise<EmailTemplateSkeleton>\n * ```\n * @group Deprecated\n */\n putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<EmailTemplateSkeleton>;\n};\n\nexport default (state: State): EmailTemplate => {\n return {\n EMAIL_TEMPLATE_TYPE,\n createEmailTemplateExportTemplate(): EmailTemplateExportInterface {\n return createEmailTemplateExportTemplate({ state });\n },\n async readEmailTemplates(): Promise<any> {\n return readEmailTemplates({ state });\n },\n async readEmailTemplate(templateId: string): Promise<any> {\n return readEmailTemplate({ templateId, state });\n },\n async exportEmailTemplates(): Promise<EmailTemplateExportInterface> {\n return exportEmailTemplates({ state });\n },\n async createEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<any> {\n return createEmailTemplate({ templateId, templateData, state });\n },\n async updateEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<any> {\n return updateEmailTemplate({ templateId, templateData, state });\n },\n importEmailTemplates(\n importData: EmailTemplateExportInterface\n ): Promise<EmailTemplateSkeleton[]> {\n return importEmailTemplates({ importData, state });\n },\n async deleteEmailTemplates(): Promise<EmailTemplateSkeleton[]> {\n return deleteEmailTemplates({ state });\n },\n async deleteEmailTemplate(\n templateId: string\n ): Promise<EmailTemplateSkeleton> {\n return deleteEmailTemplate({ templateId, state });\n },\n\n // Deprecated\n\n async getEmailTemplates() {\n return readEmailTemplates({ state });\n },\n async getEmailTemplate(templateId: string) {\n return readEmailTemplate({ templateId, state });\n },\n async putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ) {\n return updateEmailTemplate({ templateId, templateData, state });\n },\n };\n};\n\n/**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\nexport const EMAIL_TEMPLATE_TYPE = 'emailTemplate';\n\nexport type EmailTemplateSkeleton = IdObjectSkeletonInterface & {\n defaultLocale?: string;\n displayName?: string;\n enabled?: boolean;\n from: string;\n subject: Record<string, string>;\n message?: Record<string, string>;\n html?: Record<string, string>;\n};\n\nexport interface EmailTemplateExportInterface {\n meta?: ExportMetaData;\n emailTemplate: Record<string, EmailTemplateSkeleton>;\n}\n\nexport function createEmailTemplateExportTemplate({\n state,\n}: {\n state: State;\n}): EmailTemplateExportInterface {\n return {\n meta: getMetadata({ state }),\n emailTemplate: {},\n } as EmailTemplateExportInterface;\n}\n\n/**\n * Get all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\nexport async function readEmailTemplates({\n state,\n}: {\n state: State;\n}): Promise<EmailTemplateSkeleton[]> {\n try {\n const templates = await readConfigEntitiesByType({\n type: EMAIL_TEMPLATE_TYPE,\n state,\n });\n return templates as EmailTemplateSkeleton[];\n } catch (error) {\n throw new FrodoError(`Error reading email templates`, error);\n }\n}\n\n/**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\nexport async function readEmailTemplate({\n templateId,\n state,\n}: {\n templateId: string;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n try {\n return getConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n state,\n });\n } catch (error) {\n throw new FrodoError(`Error reading email template ${templateId}`, error);\n }\n}\n\n/**\n * Export all email templates. The response can be saved to file as is.\n * @returns {Promise<EmailTemplateExportInterface>} Promise resolving to a EmailTemplateExportInterface object.\n */\nexport async function exportEmailTemplates({\n state,\n}: {\n state: State;\n}): Promise<EmailTemplateExportInterface> {\n try {\n debugMessage({\n message: `EmailTemplateOps.exportEmailTemplates: start`,\n state,\n });\n const exportData = createEmailTemplateExportTemplate({ state });\n const emailTemplates = await readEmailTemplates({ state });\n const indicatorId = createProgressIndicator({\n total: emailTemplates.length,\n message: 'Exporting email templates...',\n state,\n });\n for (const emailTemplate of emailTemplates) {\n const templateId = emailTemplate._id.replace(\n `${EMAIL_TEMPLATE_TYPE}/`,\n ''\n );\n updateProgressIndicator({\n id: indicatorId,\n message: `Exporting email template ${templateId}`,\n state,\n });\n exportData.emailTemplate[templateId] = emailTemplate;\n }\n stopProgressIndicator({\n id: indicatorId,\n message: `Exported ${emailTemplates.length} email templates.`,\n state,\n });\n debugMessage({\n message: `EmailTemplateOps.exportEmailTemplates: end`,\n state,\n });\n return exportData;\n } catch (error) {\n throw new FrodoError(`Error exporting email templates`, error);\n }\n}\n\n/**\n * Create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\nexport async function createEmailTemplate({\n templateId,\n templateData,\n state,\n}: {\n templateId: string;\n templateData: EmailTemplateSkeleton;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n debugMessage({\n message: `EmailTemplateOps.createEmailTemplate: start`,\n state,\n });\n try {\n await readEmailTemplate({\n templateId,\n state,\n });\n } catch (error) {\n try {\n const result = await putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n entityData: templateData,\n state,\n });\n debugMessage({\n message: `EmailTemplateOps.createEmailTemplate: end`,\n state,\n });\n return result as EmailTemplateSkeleton;\n } catch (error) {\n throw new FrodoError(\n `Error creating email template ${templateId}`,\n error\n );\n }\n }\n throw new Error(`Email template ${templateId} already exists!`);\n}\n\n/**\n * Update or create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\nexport async function updateEmailTemplate({\n templateId,\n templateData,\n state,\n}: {\n templateId: string;\n templateData: EmailTemplateSkeleton;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n try {\n return putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n entityData: templateData,\n state,\n });\n } catch (error) {\n throw new FrodoError(`Error updting email template ${templateId}`, error);\n }\n}\n\n/**\n * Import email templates.\n * @param {EmailTemplateExportInterface} importData email template import data.\n * @returns {Promise<SocialIdpSkeleton[]>} a promise resolving to an array of email template objects\n */\nexport async function importEmailTemplates({\n importData,\n state,\n}: {\n importData: EmailTemplateExportInterface;\n state: State;\n}): Promise<EmailTemplateSkeleton[]> {\n debugMessage({\n message: `EmailTemplateOps.importEmailTemplates: start`,\n state,\n });\n const response = [];\n const errors = [];\n for (const templateId of Object.keys(importData.emailTemplate)) {\n try {\n debugMessage({\n message: `EmailTemplateOps.importEmailTemplates: ${templateId}`,\n state,\n });\n response.push(\n await updateEmailTemplate({\n templateId,\n templateData: importData.emailTemplate[templateId],\n state,\n })\n );\n } catch (e) {\n errors.push(e);\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`Error importing email templates`, errors);\n }\n debugMessage({\n message: `EmailTemplateOps.importEmailTemplates: end`,\n state,\n });\n return response;\n}\n\n/**\n * Delete all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\nexport async function deleteEmailTemplates({\n state,\n}: {\n state: State;\n}): Promise<EmailTemplateSkeleton[]> {\n const errors: Error[] = [];\n try {\n debugMessage({\n message: `EmailTemplateOps.deleteEmailTemplates: start`,\n state,\n });\n const result: EmailTemplateSkeleton[] = [];\n const templates = await readEmailTemplates({ state });\n for (const template of templates) {\n try {\n debugMessage({\n message: `EmailTemplateOps.deleteEmailTemplates: '${template['_id']}'`,\n state,\n });\n result.push(\n await deleteConfigEntity({\n entityId: template['_id'],\n state,\n })\n );\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`Error deleting email templates`, errors);\n }\n debugMessage({\n message: `EmailTemplateOps.deleteEmailTemplates: end`,\n state,\n });\n return result;\n } catch (error) {\n // re-throw previously caught errors\n if (errors.length > 0) {\n throw error;\n }\n throw new FrodoError(`Error deleting email templates`, error);\n }\n}\n\n/**\n * Delete email template\n * @param {string} templateId id/name of the email template without the type prefix 'emailTemplate/'\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\nexport async function deleteEmailTemplate({\n templateId,\n state,\n}: {\n templateId: string;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n try {\n return deleteConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n state,\n });\n } catch (error) {\n throw new FrodoError(`Error deleting email template ${templateId}`, error);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;eA6HgBA,KAAY,IAAoB;EAC9C,OAAO;IACLC,mBAAmB;IACnBC,iCAAiCA,CAAA,EAAiC;MAChE,OAAOA,iCAAiC,CAAC;QAAEF;MAAM,CAAC,CAAC;IACrD,CAAC;IACKG,kBAAkBA,CAAA,EAAiB;MAAA,OAAAC,iBAAA;QACvC,OAAOD,kBAAkB,CAAC;UAAEH;QAAM,CAAC,CAAC;MAAC;IACvC,CAAC;IACKK,iBAAiBA,CAACC,UAAkB,EAAgB;MAAA,OAAAF,iBAAA;QACxD,OAAOC,iBAAiB,CAAC;UAAEC,UAAU;UAAEN;QAAM,CAAC,CAAC;MAAC;IAClD,CAAC;IACKO,oBAAoBA,CAAA,EAA0C;MAAA,OAAAH,iBAAA;QAClE,OAAOG,oBAAoB,CAAC;UAAEP;QAAM,CAAC,CAAC;MAAC;IACzC,CAAC;IACKQ,mBAAmBA,CACvBF,UAAkB,EAClBG,YAAmC,EACrB;MAAA,OAAAL,iBAAA;QACd,OAAOI,mBAAmB,CAAC;UAAEF,UAAU;UAAEG,YAAY;UAAET;QAAM,CAAC,CAAC;MAAC;IAClE,CAAC;IACKU,mBAAmBA,CACvBJ,UAAkB,EAClBG,YAAmC,EACrB;MAAA,OAAAL,iBAAA;QACd,OAAOM,mBAAmB,CAAC;UAAEJ,UAAU;UAAEG,YAAY;UAAET;QAAM,CAAC,CAAC;MAAC;IAClE,CAAC;IACDW,oBAAoBA,CAClBC,UAAwC,EACN;MAClC,OAAOD,oBAAoB,CAAC;QAAEC,UAAU;QAAEZ;MAAM,CAAC,CAAC;IACpD,CAAC;IACKa,oBAAoBA,CAAA,EAAqC;MAAA,OAAAT,iBAAA;QAC7D,OAAOS,oBAAoB,CAAC;UAAEb;QAAM,CAAC,CAAC;MAAC;IACzC,CAAC;IACKc,mBAAmBA,CACvBR,UAAkB,EACc;MAAA,OAAAF,iBAAA;QAChC,OAAOU,mBAAmB,CAAC;UAAER,UAAU;UAAEN;QAAM,CAAC,CAAC;MAAC;IACpD,CAAC;IAED;;IAEMe,iBAAiBA,CAAA,EAAG;MAAA,OAAAX,iBAAA;QACxB,OAAOD,kBAAkB,CAAC;UAAEH;QAAM,CAAC,CAAC;MAAC;IACvC,CAAC;IACKgB,gBAAgBA,CAACV,UAAkB,EAAE;MAAA,OAAAF,iBAAA;QACzC,OAAOC,iBAAiB,CAAC;UAAEC,UAAU;UAAEN;QAAM,CAAC,CAAC;MAAC;IAClD,CAAC;IACKiB,gBAAgBA,CACpBX,UAAkB,EAClBG,YAAmC,EACnC;MAAA,OAAAL,iBAAA;QACA,OAAOM,mBAAmB,CAAC;UAAEJ,UAAU;UAAEG,YAAY;UAAET;QAAM,CAAC,CAAC;MAAC;IAClE;EACF,CAAC;AACH,CAAC;AAED;AACA;AACA;AAFAkB,OAAA,CAAAC,OAAA,GAAAC,QAAA;AAGO,IAAMnB,mBAAmB,GAAAiB,OAAA,CAAAjB,mBAAA,GAAG,eAAe;AAiB3C,SAASC,iCAAiCA,CAAAmB,IAAA,EAIhB;EAAA,IAJiB;IAChDrB;EAGF,CAAC,GAAAqB,IAAA;EACC,OAAO;IACLC,IAAI,EAAE,IAAAC,8BAAW,EAAC;MAAEvB;IAAM,CAAC,CAAC;IAC5BwB,aAAa,EAAE,CAAC;EAClB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AAHA,SAIsBrB,kBAAkBA,CAAAsB,EAAA;EAAA,OAAAC,mBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAgBxC;AACA;AACA;AACA;AACA;AAJA,SAAAF,oBAAA;EAAAA,mBAAA,GAAAtB,iBAAA,CAhBO,WAAAyB,KAAA,EAI8B;IAAA,IAJI;MACvC7B;IAGF,CAAC,GAAA6B,KAAA;IACC,IAAI;MACF,IAAMC,SAAS,SAAS,IAAAC,sCAAwB,EAAC;QAC/CC,IAAI,EAAE/B,mBAAmB;QACzBD;MACF,CAAC,CAAC;MACF,OAAO8B,SAAS;IAClB,CAAC,CAAC,OAAOG,KAAK,EAAE;MACd,MAAM,IAAIC,sBAAU,kCAAkCD,KAAK,CAAC;IAC9D;EACF,CAAC;EAAA,OAAAP,mBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOqBvB,iBAAiBA,CAAA8B,GAAA;EAAA,OAAAC,kBAAA,CAAAT,KAAA,OAAAC,SAAA;AAAA;AAiBvC;AACA;AACA;AACA;AAHA,SAAAQ,mBAAA;EAAAA,kBAAA,GAAAhC,iBAAA,CAjBO,WAAAiC,KAAA,EAM4B;IAAA,IANK;MACtC/B,UAAU;MACVN;IAIF,CAAC,GAAAqC,KAAA;IACC,IAAI;MACF,OAAO,IAAAC,6BAAe,EAAC;QACrBC,QAAQ,KAAAC,MAAA,CAAKvC,mBAAmB,OAAAuC,MAAA,CAAIlC,UAAU,CAAE;QAChDN;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOiC,KAAK,EAAE;MACd,MAAM,IAAIC,sBAAU,iCAAAM,MAAA,CAAiClC,UAAU,GAAI2B,KAAK,CAAC;IAC3E;EACF,CAAC;EAAA,OAAAG,kBAAA,CAAAT,KAAA,OAAAC,SAAA;AAAA;AAAA,SAMqBrB,oBAAoBA,CAAAkC,GAAA;EAAA,OAAAC,qBAAA,CAAAf,KAAA,OAAAC,SAAA;AAAA;AA4C1C;AACA;AACA;AACA;AACA;AACA;AALA,SAAAc,sBAAA;EAAAA,qBAAA,GAAAtC,iBAAA,CA5CO,WAAAuC,KAAA,EAImC;IAAA,IAJC;MACzC3C;IAGF,CAAC,GAAA2C,KAAA;IACC,IAAI;MACF,IAAAC,qBAAY,EAAC;QACXC,OAAO,gDAAgD;QACvD7C;MACF,CAAC,CAAC;MACF,IAAM8C,UAAU,GAAG5C,iCAAiC,CAAC;QAAEF;MAAM,CAAC,CAAC;MAC/D,IAAM+C,cAAc,SAAS5C,kBAAkB,CAAC;QAAEH;MAAM,CAAC,CAAC;MAC1D,IAAMgD,WAAW,GAAG,IAAAC,gCAAuB,EAAC;QAC1CC,KAAK,EAAEH,cAAc,CAACI,MAAM;QAC5BN,OAAO,EAAE,8BAA8B;QACvC7C;MACF,CAAC,CAAC;MACF,KAAK,IAAMwB,aAAa,IAAIuB,cAAc,EAAE;QAC1C,IAAMzC,WAAU,GAAGkB,aAAa,CAAC4B,GAAG,CAACC,OAAO,IAAAb,MAAA,CACvCvC,mBAAmB,QACtB,EACF,CAAC;QACD,IAAAqD,gCAAuB,EAAC;UACtBC,EAAE,EAAEP,WAAW;UACfH,OAAO,8BAAAL,MAAA,CAA8BlC,WAAU,CAAE;UACjDN;QACF,CAAC,CAAC;QACF8C,UAAU,CAACtB,aAAa,CAAClB,WAAU,CAAC,GAAGkB,aAAa;MACtD;MACA,IAAAgC,8BAAqB,EAAC;QACpBD,EAAE,EAAEP,WAAW;QACfH,OAAO,cAAAL,MAAA,CAAcO,cAAc,CAACI,MAAM,sBAAmB;QAC7DnD;MACF,CAAC,CAAC;MACF,IAAA4C,qBAAY,EAAC;QACXC,OAAO,8CAA8C;QACrD7C;MACF,CAAC,CAAC;MACF,OAAO8C,UAAU;IACnB,CAAC,CAAC,OAAOb,KAAK,EAAE;MACd,MAAM,IAAIC,sBAAU,oCAAoCD,KAAK,CAAC;IAChE;EACF,CAAC;EAAA,OAAAS,qBAAA,CAAAf,KAAA,OAAAC,SAAA;AAAA;AAAA,SAQqBpB,mBAAmBA,CAAAiD,GAAA;EAAA,OAAAC,oBAAA,CAAA/B,KAAA,OAAAC,SAAA;AAAA;AAwCzC;AACA;AACA;AACA;AACA;AACA;AALA,SAAA8B,qBAAA;EAAAA,oBAAA,GAAAtD,iBAAA,CAxCO,WAAAuD,KAAA,EAQ4B;IAAA,IARO;MACxCrD,UAAU;MACVG,YAAY;MACZT;IAKF,CAAC,GAAA2D,KAAA;IACC,IAAAf,qBAAY,EAAC;MACXC,OAAO,+CAA+C;MACtD7C;IACF,CAAC,CAAC;IACF,IAAI;MACF,MAAMK,iBAAiB,CAAC;QACtBC,UAAU;QACVN;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOiC,KAAK,EAAE;MACd,IAAI;QACF,IAAM2B,MAAM,SAAS,IAAAC,6BAAe,EAAC;UACnCtB,QAAQ,KAAAC,MAAA,CAAKvC,mBAAmB,OAAAuC,MAAA,CAAIlC,UAAU,CAAE;UAChDwD,UAAU,EAAErD,YAAY;UACxBT;QACF,CAAC,CAAC;QACF,IAAA4C,qBAAY,EAAC;UACXC,OAAO,6CAA6C;UACpD7C;QACF,CAAC,CAAC;QACF,OAAO4D,MAAM;MACf,CAAC,CAAC,OAAO3B,KAAK,EAAE;QACd,MAAM,IAAIC,sBAAU,kCAAAM,MAAA,CACelC,UAAU,GAC3C2B,KACF,CAAC;MACH;IACF;IACA,MAAM,IAAI8B,KAAK,mBAAAvB,MAAA,CAAmBlC,UAAU,qBAAkB,CAAC;EACjE,CAAC;EAAA,OAAAoD,oBAAA,CAAA/B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAQqBlB,mBAAmBA,CAAAsD,GAAA;EAAA,OAAAC,oBAAA,CAAAtC,KAAA,OAAAC,SAAA;AAAA;AAoBzC;AACA;AACA;AACA;AACA;AAJA,SAAAqC,qBAAA;EAAAA,oBAAA,GAAA7D,iBAAA,CApBO,WAAA8D,KAAA,EAQ4B;IAAA,IARO;MACxC5D,UAAU;MACVG,YAAY;MACZT;IAKF,CAAC,GAAAkE,KAAA;IACC,IAAI;MACF,OAAO,IAAAL,6BAAe,EAAC;QACrBtB,QAAQ,KAAAC,MAAA,CAAKvC,mBAAmB,OAAAuC,MAAA,CAAIlC,UAAU,CAAE;QAChDwD,UAAU,EAAErD,YAAY;QACxBT;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOiC,KAAK,EAAE;MACd,MAAM,IAAIC,sBAAU,iCAAAM,MAAA,CAAiClC,UAAU,GAAI2B,KAAK,CAAC;IAC3E;EACF,CAAC;EAAA,OAAAgC,oBAAA,CAAAtC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOqBjB,oBAAoBA,CAAAwD,GAAA;EAAA,OAAAC,qBAAA,CAAAzC,KAAA,OAAAC,SAAA;AAAA;AAwC1C;AACA;AACA;AACA;AAHA,SAAAwC,sBAAA;EAAAA,qBAAA,GAAAhE,iBAAA,CAxCO,WAAAiE,KAAA,EAM8B;IAAA,IANM;MACzCzD,UAAU;MACVZ;IAIF,CAAC,GAAAqE,KAAA;IACC,IAAAzB,qBAAY,EAAC;MACXC,OAAO,gDAAgD;MACvD7C;IACF,CAAC,CAAC;IACF,IAAMsE,QAAQ,GAAG,EAAE;IACnB,IAAMC,MAAM,GAAG,EAAE;IACjB,KAAK,IAAMjE,YAAU,IAAIkE,MAAM,CAACC,IAAI,CAAC7D,UAAU,CAACY,aAAa,CAAC,EAAE;MAC9D,IAAI;QACF,IAAAoB,qBAAY,EAAC;UACXC,OAAO,4CAAAL,MAAA,CAA4ClC,YAAU,CAAE;UAC/DN;QACF,CAAC,CAAC;QACFsE,QAAQ,CAACI,IAAI,OACLhE,mBAAmB,CAAC;UACxBJ,UAAU,EAAVA,YAAU;UACVG,YAAY,EAAEG,UAAU,CAACY,aAAa,CAAClB,YAAU,CAAC;UAClDN;QACF,CAAC,CACH,CAAC;MACH,CAAC,CAAC,OAAO2E,CAAC,EAAE;QACVJ,MAAM,CAACG,IAAI,CAACC,CAAC,CAAC;MAChB;IACF;IACA,IAAIJ,MAAM,CAACpB,MAAM,GAAG,CAAC,EAAE;MACrB,MAAM,IAAIjB,sBAAU,oCAAoCqC,MAAM,CAAC;IACjE;IACA,IAAA3B,qBAAY,EAAC;MACXC,OAAO,8CAA8C;MACrD7C;IACF,CAAC,CAAC;IACF,OAAOsE,QAAQ;EACjB,CAAC;EAAA,OAAAF,qBAAA,CAAAzC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAMqBf,oBAAoBA,CAAA+D,GAAA;EAAA,OAAAC,qBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AA8C1C;AACA;AACA;AACA;AACA;AAJA,SAAAiD,sBAAA;EAAAA,qBAAA,GAAAzE,iBAAA,CA9CO,WAAA0E,KAAA,EAI8B;IAAA,IAJM;MACzC9E;IAGF,CAAC,GAAA8E,KAAA;IACC,IAAMP,MAAe,GAAG,EAAE;IAC1B,IAAI;MACF,IAAA3B,qBAAY,EAAC;QACXC,OAAO,gDAAgD;QACvD7C;MACF,CAAC,CAAC;MACF,IAAM4D,MAA+B,GAAG,EAAE;MAC1C,IAAM9B,SAAS,SAAS3B,kBAAkB,CAAC;QAAEH;MAAM,CAAC,CAAC;MACrD,KAAK,IAAM+E,QAAQ,IAAIjD,SAAS,EAAE;QAChC,IAAI;UACF,IAAAc,qBAAY,EAAC;YACXC,OAAO,6CAAAL,MAAA,CAA6CuC,QAAQ,CAAC,KAAK,CAAC,MAAG;YACtE/E;UACF,CAAC,CAAC;UACF4D,MAAM,CAACc,IAAI,OACH,IAAAM,gCAAkB,EAAC;YACvBzC,QAAQ,EAAEwC,QAAQ,CAAC,KAAK,CAAC;YACzB/E;UACF,CAAC,CACH,CAAC;QACH,CAAC,CAAC,OAAOiC,KAAK,EAAE;UACdsC,MAAM,CAACG,IAAI,CAACzC,KAAK,CAAC;QACpB;MACF;MACA,IAAIsC,MAAM,CAACpB,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAIjB,sBAAU,mCAAmCqC,MAAM,CAAC;MAChE;MACA,IAAA3B,qBAAY,EAAC;QACXC,OAAO,8CAA8C;QACrD7C;MACF,CAAC,CAAC;MACF,OAAO4D,MAAM;IACf,CAAC,CAAC,OAAO3B,KAAK,EAAE;MACd;MACA,IAAIsC,MAAM,CAACpB,MAAM,GAAG,CAAC,EAAE;QACrB,MAAMlB,KAAK;MACb;MACA,MAAM,IAAIC,sBAAU,mCAAmCD,KAAK,CAAC;IAC/D;EACF,CAAC;EAAA,OAAA4C,qBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOqBd,mBAAmBA,CAAAmE,GAAA;EAAA,OAAAC,oBAAA,CAAAvD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAsD,qBAAA;EAAAA,oBAAA,GAAA9E,iBAAA,CAAlC,WAAA+E,KAAA,EAM4B;IAAA,IANO;MACxC7E,UAAU;MACVN;IAIF,CAAC,GAAAmF,KAAA;IACC,IAAI;MACF,OAAO,IAAAH,gCAAkB,EAAC;QACxBzC,QAAQ,KAAAC,MAAA,CAAKvC,mBAAmB,OAAAuC,MAAA,CAAIlC,UAAU,CAAE;QAChDN;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOiC,KAAK,EAAE;MACd,MAAM,IAAIC,sBAAU,kCAAAM,MAAA,CAAkClC,UAAU,GAAI2B,KAAK,CAAC;IAC5E;EACF,CAAC;EAAA,OAAAiD,oBAAA,CAAAvD,KAAA,OAAAC,SAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"EmailTemplateOps.js","names":["state","EMAIL_TEMPLATE_TYPE","createEmailTemplateExportTemplate","readEmailTemplates","_asyncToGenerator","readEmailTemplate","templateId","exportEmailTemplates","createEmailTemplate","templateData","updateEmailTemplate","importEmailTemplates","importData","deleteEmailTemplates","deleteEmailTemplate","getEmailTemplates","getEmailTemplate","putEmailTemplate","exports","default","_default","_ref","meta","getMetadata","emailTemplate","_x","_readEmailTemplates","apply","arguments","_ref2","templates","readConfigEntitiesByType","type","error","FrodoError","_x2","_readEmailTemplate","_ref3","getConfigEntity","entityId","concat","_x3","_exportEmailTemplates","_ref4","debugMessage","message","exportData","emailTemplates","indicatorId","createProgressIndicator","total","length","_id","replace","updateProgressIndicator","id","stopProgressIndicator","_x4","_createEmailTemplate","_ref5","result","putConfigEntity","entityData","Error","_x5","_updateEmailTemplate","_ref6","_x6","_importEmailTemplates","_ref7","response","errors","Object","keys","push","e","_x7","_deleteEmailTemplates","_ref8","template","deleteConfigEntity","_x8","_deleteEmailTemplate","_ref9"],"sources":["../../src/ops/EmailTemplateOps.ts"],"sourcesContent":["import { IdObjectSkeletonInterface } from '../api/ApiTypes';\nimport {\n deleteConfigEntity,\n getConfigEntity,\n putConfigEntity,\n} from '../api/IdmConfigApi';\nimport { State } from '../shared/State';\nimport {\n createProgressIndicator,\n debugMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport { getMetadata } from '../utils/ExportImportUtils';\nimport { FrodoError } from './FrodoError';\nimport { readConfigEntitiesByType } from './IdmConfigOps';\nimport { ExportMetaData } from './OpsTypes';\n\nexport type EmailTemplate = {\n /**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\n EMAIL_TEMPLATE_TYPE: string;\n /**\n * Create an empty email template export template\n * @returns {EmailTemplateExportInterface} an empty email template export template\n */\n createEmailTemplateExportTemplate(): EmailTemplateExportInterface;\n /**\n * Get all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\n readEmailTemplates(): Promise<EmailTemplateSkeleton[]>;\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\n readEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>;\n /**\n * Export all email templates. The response can be saved to file as is.\n * @returns {Promise<EmailTemplateExportInterface>} Promise resolving to a EmailTemplateExportInterface object.\n */\n exportEmailTemplates(): Promise<EmailTemplateExportInterface>;\n /**\n * Create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\n createEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<EmailTemplateSkeleton>;\n /**\n * Update or create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\n updateEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<EmailTemplateSkeleton>;\n /**\n * Import all email templates\n * @param {EmailTemplateExportInterface} importData import data\n * @returns {Promise<IdObjectSkeletonInterface[]>} a promise resolving to an array of email template objects\n */\n importEmailTemplates(\n importData: EmailTemplateExportInterface\n ): Promise<EmailTemplateSkeleton[]>;\n /**\n * Delete all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\n deleteEmailTemplates(): Promise<EmailTemplateSkeleton[]>;\n /**\n * Delete email template\n * @param {string} templateId id/name of the email template without the type prefix 'emailTemplate/'\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\n deleteEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>;\n\n // Deprecated\n\n /**\n * Get all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n * @deprecated since v2.0.0 use {@link EmailTemplate.readEmailTemplates | readEmailTemplates} instead\n * ```javascript\n * readEmailTemplates(): Promise<EmailTemplateSkeleton[]>\n * ```\n * @group Deprecated\n */\n getEmailTemplates(): Promise<EmailTemplateSkeleton[]>;\n /**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n * @deprecated since v2.0.0 use {@link EmailTemplate.readEmailTemplate | readEmailTemplate} instead\n * ```javascript\n * readEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>\n * ```\n * @group Deprecated\n */\n getEmailTemplate(templateId: string): Promise<EmailTemplateSkeleton>;\n /**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n * @deprecated since v2.0.0 use {@link EmailTemplate.updateEmailTemplate | updateEmailTemplate} or {@link EmailTemplate.createEmailTemplate | createEmailTemplate} instead\n * ```javascript\n * updateEmailTemplate(templateId: string, templateData: EmailTemplateSkeleton): Promise<EmailTemplateSkeleton>\n * createEmailTemplate(templateId: string, templateData: EmailTemplateSkeleton): Promise<EmailTemplateSkeleton>\n * ```\n * @group Deprecated\n */\n putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<EmailTemplateSkeleton>;\n};\n\nexport default (state: State): EmailTemplate => {\n return {\n EMAIL_TEMPLATE_TYPE,\n createEmailTemplateExportTemplate(): EmailTemplateExportInterface {\n return createEmailTemplateExportTemplate({ state });\n },\n async readEmailTemplates(): Promise<any> {\n return readEmailTemplates({ state });\n },\n async readEmailTemplate(templateId: string): Promise<any> {\n return readEmailTemplate({ templateId, state });\n },\n async exportEmailTemplates(): Promise<EmailTemplateExportInterface> {\n return exportEmailTemplates({ state });\n },\n async createEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<any> {\n return createEmailTemplate({ templateId, templateData, state });\n },\n async updateEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ): Promise<any> {\n return updateEmailTemplate({ templateId, templateData, state });\n },\n importEmailTemplates(\n importData: EmailTemplateExportInterface\n ): Promise<EmailTemplateSkeleton[]> {\n return importEmailTemplates({ importData, state });\n },\n async deleteEmailTemplates(): Promise<EmailTemplateSkeleton[]> {\n return deleteEmailTemplates({ state });\n },\n async deleteEmailTemplate(\n templateId: string\n ): Promise<EmailTemplateSkeleton> {\n return deleteEmailTemplate({ templateId, state });\n },\n\n // Deprecated\n\n async getEmailTemplates() {\n return readEmailTemplates({ state });\n },\n async getEmailTemplate(templateId: string) {\n return readEmailTemplate({ templateId, state });\n },\n async putEmailTemplate(\n templateId: string,\n templateData: EmailTemplateSkeleton\n ) {\n return updateEmailTemplate({ templateId, templateData, state });\n },\n };\n};\n\n/**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\nexport const EMAIL_TEMPLATE_TYPE = 'emailTemplate';\n\nexport type EmailTemplateSkeleton = IdObjectSkeletonInterface & {\n defaultLocale?: string;\n displayName?: string;\n enabled?: boolean;\n from: string;\n subject: Record<string, string>;\n message?: Record<string, string>;\n html?: Record<string, string>;\n};\n\nexport interface EmailTemplateExportInterface {\n meta?: ExportMetaData;\n emailTemplate: Record<string, EmailTemplateSkeleton>;\n}\n\nexport function createEmailTemplateExportTemplate({\n state,\n}: {\n state: State;\n}): EmailTemplateExportInterface {\n return {\n meta: getMetadata({ state }),\n emailTemplate: {},\n } as EmailTemplateExportInterface;\n}\n\n/**\n * Get all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\nexport async function readEmailTemplates({\n state,\n}: {\n state: State;\n}): Promise<EmailTemplateSkeleton[]> {\n try {\n const templates = await readConfigEntitiesByType({\n type: EMAIL_TEMPLATE_TYPE,\n state,\n });\n return templates as EmailTemplateSkeleton[];\n } catch (error) {\n throw new FrodoError(`Error reading email templates`, error);\n }\n}\n\n/**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\nexport async function readEmailTemplate({\n templateId,\n state,\n}: {\n templateId: string;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n try {\n return getConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n state,\n });\n } catch (error) {\n throw new FrodoError(`Error reading email template ${templateId}`, error);\n }\n}\n\n/**\n * Export all email templates. The response can be saved to file as is.\n * @returns {Promise<EmailTemplateExportInterface>} Promise resolving to a EmailTemplateExportInterface object.\n */\nexport async function exportEmailTemplates({\n state,\n}: {\n state: State;\n}): Promise<EmailTemplateExportInterface> {\n try {\n debugMessage({\n message: `EmailTemplateOps.exportEmailTemplates: start`,\n state,\n });\n const exportData = createEmailTemplateExportTemplate({ state });\n const emailTemplates = await readEmailTemplates({ state });\n const indicatorId = createProgressIndicator({\n total: emailTemplates.length,\n message: 'Exporting email templates...',\n state,\n });\n for (const emailTemplate of emailTemplates) {\n const templateId = emailTemplate._id.replace(\n `${EMAIL_TEMPLATE_TYPE}/`,\n ''\n );\n updateProgressIndicator({\n id: indicatorId,\n message: `Exporting email template ${templateId}`,\n state,\n });\n exportData.emailTemplate[templateId] = emailTemplate;\n }\n stopProgressIndicator({\n id: indicatorId,\n message: `Exported ${emailTemplates.length} email templates.`,\n state,\n });\n debugMessage({\n message: `EmailTemplateOps.exportEmailTemplates: end`,\n state,\n });\n return exportData;\n } catch (error) {\n throw new FrodoError(`Error exporting email templates`, error);\n }\n}\n\n/**\n * Create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\nexport async function createEmailTemplate({\n templateId,\n templateData,\n state,\n}: {\n templateId: string;\n templateData: EmailTemplateSkeleton;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n debugMessage({\n message: `EmailTemplateOps.createEmailTemplate: start`,\n state,\n });\n try {\n await readEmailTemplate({\n templateId,\n state,\n });\n } catch (error) {\n try {\n const result = await putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n entityData: templateData,\n state,\n });\n debugMessage({\n message: `EmailTemplateOps.createEmailTemplate: end`,\n state,\n });\n return result as EmailTemplateSkeleton;\n } catch (error) {\n throw new FrodoError(\n `Error creating email template ${templateId}`,\n error\n );\n }\n }\n throw new Error(`Email template ${templateId} already exists!`);\n}\n\n/**\n * Update or create email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {EmailTemplateSkeleton} templateData email template object\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves to an email template object\n */\nexport async function updateEmailTemplate({\n templateId,\n templateData,\n state,\n}: {\n templateId: string;\n templateData: EmailTemplateSkeleton;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n try {\n return putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n entityData: templateData,\n state,\n });\n } catch (error) {\n throw new FrodoError(`Error updating email template ${templateId}`, error);\n }\n}\n\n/**\n * Import email templates.\n * @param {EmailTemplateExportInterface} importData email template import data.\n * @returns {Promise<SocialIdpSkeleton[]>} a promise resolving to an array of email template objects\n */\nexport async function importEmailTemplates({\n importData,\n state,\n}: {\n importData: EmailTemplateExportInterface;\n state: State;\n}): Promise<EmailTemplateSkeleton[]> {\n debugMessage({\n message: `EmailTemplateOps.importEmailTemplates: start`,\n state,\n });\n const response = [];\n const errors = [];\n for (const templateId of Object.keys(importData.emailTemplate)) {\n try {\n debugMessage({\n message: `EmailTemplateOps.importEmailTemplates: ${templateId}`,\n state,\n });\n response.push(\n await updateEmailTemplate({\n templateId,\n templateData: importData.emailTemplate[templateId],\n state,\n })\n );\n } catch (e) {\n errors.push(e);\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`Error importing email templates`, errors);\n }\n debugMessage({\n message: `EmailTemplateOps.importEmailTemplates: end`,\n state,\n });\n return response;\n}\n\n/**\n * Delete all email templates\n * @returns {Promise<EmailTemplateSkeleton[]>} a promise that resolves to an array of email template objects\n */\nexport async function deleteEmailTemplates({\n state,\n}: {\n state: State;\n}): Promise<EmailTemplateSkeleton[]> {\n const errors: Error[] = [];\n try {\n debugMessage({\n message: `EmailTemplateOps.deleteEmailTemplates: start`,\n state,\n });\n const result: EmailTemplateSkeleton[] = [];\n const templates = await readEmailTemplates({ state });\n for (const template of templates) {\n try {\n debugMessage({\n message: `EmailTemplateOps.deleteEmailTemplates: '${template['_id']}'`,\n state,\n });\n result.push(\n await deleteConfigEntity({\n entityId: template['_id'],\n state,\n })\n );\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`Error deleting email templates`, errors);\n }\n debugMessage({\n message: `EmailTemplateOps.deleteEmailTemplates: end`,\n state,\n });\n return result;\n } catch (error) {\n // re-throw previously caught errors\n if (errors.length > 0) {\n throw error;\n }\n throw new FrodoError(`Error deleting email templates`, error);\n }\n}\n\n/**\n * Delete email template\n * @param {string} templateId id/name of the email template without the type prefix 'emailTemplate/'\n * @returns {Promise<EmailTemplateSkeleton>} a promise that resolves an email template object\n */\nexport async function deleteEmailTemplate({\n templateId,\n state,\n}: {\n templateId: string;\n state: State;\n}): Promise<EmailTemplateSkeleton> {\n try {\n return deleteConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${templateId}`,\n state,\n });\n } catch (error) {\n throw new FrodoError(`Error deleting email template ${templateId}`, error);\n }\n}\n"],"mappings":"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"}
|
|
@@ -202,6 +202,7 @@ describe('EmailTemplateOps', () => {
|
|
|
202
202
|
test("1: importEmailTemplates", /*#__PURE__*/_asyncToGenerator(function* () {
|
|
203
203
|
var importData = {
|
|
204
204
|
emailTemplate: {
|
|
205
|
+
// TODO: the polly recording needs the test to use the data this way, but it's quite likely that we should be using `template.data`
|
|
205
206
|
[template1.id]: template1,
|
|
206
207
|
[template2.id]: template2,
|
|
207
208
|
[template3.id]: template3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTemplateOps.test.js","names":["ctx","autoSetupPolly","EMAIL_TEMPLATE_TYPE","EmailTemplateOps","stageTemplate","_x","_stageTemplate","apply","arguments","_asyncToGenerator","template","create","length","undefined","IdmConfigApi","getConfigEntity","entityId","concat","id","state","deleteConfigEntity","error","putConfigEntity","entityData","data","describe","template1","defaultLocale","displayName","enabled","from","message","en","fr","mimeType","subject","template2","template3","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","beforeEach","polly","server","any","on","_req","recording","filterRecording","test","expect","readEmailTemplate","toBeDefined","response","templateId","toMatchSnapshot","readEmailTemplates","exportEmailTemplates","meta","Object","updateEmailTemplate","templateData","importEmailTemplates","importData","emailTemplate"],"sources":["../../src/ops/EmailTemplateOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record EmailTemplateOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update EmailTemplateOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only EmailTemplateOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as IdmConfigApi from '../api/IdmConfigApi';\nimport * as EmailTemplateOps from './EmailTemplateOps';\nimport { autoSetupPolly, filterRecording } from '../utils/AutoSetupPolly';\n\nconst ctx = autoSetupPolly();\n\nconst { EMAIL_TEMPLATE_TYPE } = EmailTemplateOps;\n\nasync function stageTemplate(\n template: { id: string; data: any },\n create = true\n) {\n // delete if exists, then create\n try {\n await IdmConfigApi.getConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n state,\n });\n await IdmConfigApi.deleteConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n state,\n });\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await IdmConfigApi.putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n entityData: template.data,\n state,\n });\n }\n }\n}\n\ndescribe('EmailTemplateOps', () => {\n const template1 = {\n id: 'FrodoTestEmailTemplate1',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template One',\n enabled: true,\n from: '',\n message: {\n en: '<h3>Click to reset your password</h3><h4><a href=\"{{object.resumeURI}}\">Password reset link</a></h4>',\n fr: '<h3>Cliquez pour réinitialiser votre mot de passe</h3><h4><a href=\"{{object.resumeURI}}\">Mot de passe lien de réinitialisation</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Reset your password',\n fr: 'Réinitialisez votre mot de passe',\n },\n },\n };\n const template2 = {\n id: 'FrodoTestEmailTemplate2',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Two',\n enabled: true,\n from: '',\n message: {\n en: '<h3>This is your one-time password:</h3><h4>{{object.description}}</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'One-Time Password for login',\n },\n },\n };\n const template3 = {\n id: 'FrodoTestEmailTemplate3',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Three',\n enabled: true,\n from: '',\n message: {\n en: '<html><body><h3>You started a login or profile update that requires MFA. </h3><h4><a href=\"{{object.resumeURI}}\">Click to Proceed</a></h4></body></html>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Multi-Factor Email for Identity Cloud login',\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1);\n await stageTemplate(template2);\n await stageTemplate(template3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1, false);\n await stageTemplate(template2, false);\n await stageTemplate(template3, false);\n }\n });\n\n beforeEach(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n ctx.polly.server.any().on('beforePersist', (_req, recording) => {\n filterRecording(recording);\n });\n }\n });\n\n describe('readEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.readEmailTemplate).toBeDefined();\n });\n\n test(`1: Read email template '${template1.id}'`, async () => {\n const response = await EmailTemplateOps.readEmailTemplate({\n templateId: template1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.readEmailTemplates).toBeDefined();\n });\n\n test('1: Read all email templates', async () => {\n const response = await EmailTemplateOps.readEmailTemplates({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.exportEmailTemplates).toBeDefined();\n });\n\n test('1: Export email templates', async () => {\n const response = await EmailTemplateOps.exportEmailTemplates({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object)\n });\n });\n });\n\n describe('updateEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.updateEmailTemplate).toBeDefined();\n });\n\n test(`1: Create email template '${template3.id}'`, async () => {\n const response = await EmailTemplateOps.updateEmailTemplate({\n templateId: template3.id,\n templateData: template3.data,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('importEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.importEmailTemplates).toBeDefined();\n });\n\n test(`1: importEmailTemplates`, async () => {\n const importData = {\n emailTemplate: {\n [template1.id]: template1,\n [template2.id]: template2,\n [template3.id]: template3\n }\n }\n const response = await EmailTemplateOps.importEmailTemplates({\n importData,\n state\n });\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EmailTemplateOps.test.js","names":["ctx","autoSetupPolly","EMAIL_TEMPLATE_TYPE","EmailTemplateOps","stageTemplate","_x","_stageTemplate","apply","arguments","_asyncToGenerator","template","create","length","undefined","IdmConfigApi","getConfigEntity","entityId","concat","id","state","deleteConfigEntity","error","putConfigEntity","entityData","data","describe","template1","defaultLocale","displayName","enabled","from","message","en","fr","mimeType","subject","template2","template3","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","beforeEach","polly","server","any","on","_req","recording","filterRecording","test","expect","readEmailTemplate","toBeDefined","response","templateId","toMatchSnapshot","readEmailTemplates","exportEmailTemplates","meta","Object","updateEmailTemplate","templateData","importEmailTemplates","importData","emailTemplate"],"sources":["../../src/ops/EmailTemplateOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record EmailTemplateOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update EmailTemplateOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only EmailTemplateOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as IdmConfigApi from '../api/IdmConfigApi';\nimport * as EmailTemplateOps from './EmailTemplateOps';\nimport { autoSetupPolly, filterRecording } from '../utils/AutoSetupPolly';\nimport { EmailTemplateExportInterface, EmailTemplateSkeleton } from './EmailTemplateOps';\n\nconst ctx = autoSetupPolly();\n\nconst { EMAIL_TEMPLATE_TYPE } = EmailTemplateOps;\n\nasync function stageTemplate(\n template: { id: string; data: any },\n create = true\n) {\n // delete if exists, then create\n try {\n await IdmConfigApi.getConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n state,\n });\n await IdmConfigApi.deleteConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n state,\n });\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await IdmConfigApi.putConfigEntity({\n entityId: `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n entityData: template.data,\n state,\n });\n }\n }\n}\n\ndescribe('EmailTemplateOps', () => {\n const template1 = {\n id: 'FrodoTestEmailTemplate1',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template One',\n enabled: true,\n from: '',\n message: {\n en: '<h3>Click to reset your password</h3><h4><a href=\"{{object.resumeURI}}\">Password reset link</a></h4>',\n fr: '<h3>Cliquez pour réinitialiser votre mot de passe</h3><h4><a href=\"{{object.resumeURI}}\">Mot de passe lien de réinitialisation</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Reset your password',\n fr: 'Réinitialisez votre mot de passe',\n },\n },\n };\n const template2 = {\n id: 'FrodoTestEmailTemplate2',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Two',\n enabled: true,\n from: '',\n message: {\n en: '<h3>This is your one-time password:</h3><h4>{{object.description}}</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'One-Time Password for login',\n },\n },\n };\n const template3 = {\n id: 'FrodoTestEmailTemplate3',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Three',\n enabled: true,\n from: '',\n message: {\n en: '<html><body><h3>You started a login or profile update that requires MFA. </h3><h4><a href=\"{{object.resumeURI}}\">Click to Proceed</a></h4></body></html>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Multi-Factor Email for Identity Cloud login',\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1);\n await stageTemplate(template2);\n await stageTemplate(template3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1, false);\n await stageTemplate(template2, false);\n await stageTemplate(template3, false);\n }\n });\n\n beforeEach(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n ctx.polly.server.any().on('beforePersist', (_req, recording) => {\n filterRecording(recording);\n });\n }\n });\n\n describe('readEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.readEmailTemplate).toBeDefined();\n });\n\n test(`1: Read email template '${template1.id}'`, async () => {\n const response = await EmailTemplateOps.readEmailTemplate({\n templateId: template1.id,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('readEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.readEmailTemplates).toBeDefined();\n });\n\n test('1: Read all email templates', async () => {\n const response = await EmailTemplateOps.readEmailTemplates({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.exportEmailTemplates).toBeDefined();\n });\n\n test('1: Export email templates', async () => {\n const response = await EmailTemplateOps.exportEmailTemplates({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object)\n });\n });\n });\n\n describe('updateEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.updateEmailTemplate).toBeDefined();\n });\n\n test(`1: Create email template '${template3.id}'`, async () => {\n const response = await EmailTemplateOps.updateEmailTemplate({\n templateId: template3.id,\n templateData: template3.data,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('importEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplateOps.importEmailTemplates).toBeDefined();\n });\n\n test(`1: importEmailTemplates`, async () => {\n const importData: EmailTemplateExportInterface = {\n emailTemplate: {\n // TODO: the polly recording needs the test to use the data this way, but it's quite likely that we should be using `template.data`\n [template1.id]: template1 as unknown as EmailTemplateSkeleton,\n [template2.id]: template2 as unknown as EmailTemplateSkeleton,\n [template3.id]: template3 as unknown as EmailTemplateSkeleton\n }\n }\n const response = await EmailTemplateOps.importEmailTemplates({\n importData,\n state\n });\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"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"}
|