@gravitee/ui-policy-studio-angular 7.8.0 → 7.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog-result.model.mjs +17 -0
- package/esm2020/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +60 -0
- package/esm2020/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +28 -3
- package/esm2020/lib/gio-policy-studio.component.mjs +15 -4
- package/esm2020/lib/gio-policy-studio.module.mjs +12 -2
- package/esm2020/lib/models/SaveOutput.mjs +1 -1
- package/esm2020/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.mjs +60 -0
- package/esm2020/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.mjs +4 -1
- package/esm2020/testing/lib/gio-policy-studio.harness.mjs +8 -1
- package/esm2020/testing/lib/models/SaveOutput.mjs +1 -1
- package/esm2020/testing/lib/models/flow/FlowExecution.fixture.mjs +43 -0
- package/esm2020/testing/lib/models/flow/index-testing.mjs +2 -1
- package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs +99 -1
- package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs +98 -11
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs +109 -1
- package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs +100 -10
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog-result.model.d.ts +2 -0
- package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.d.ts +17 -0
- package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +5 -2
- package/lib/gio-policy-studio.component.d.ts +5 -2
- package/lib/gio-policy-studio.module.d.ts +18 -16
- package/lib/models/SaveOutput.d.ts +2 -1
- package/package.json +1 -1
- package/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.d.ts +13 -0
- package/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.d.ts +1 -0
- package/testing/lib/gio-policy-studio.harness.d.ts +2 -1
- package/testing/lib/models/SaveOutput.d.ts +2 -1
- package/testing/lib/models/flow/FlowExecution.fixture.d.ts +3 -0
- package/testing/lib/models/flow/index-testing.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gravitee-ui-policy-studio-angular-testing.mjs","sources":["../../../projects/ui-policy-studio-angular/src/lib/models/flow/Flow.fixture.ts","../../../projects/ui-policy-studio-angular/src/lib/models/flow/index-testing.ts","../../../projects/ui-policy-studio-angular/src/lib/models/plan/Plan.fixture.ts","../../../projects/ui-policy-studio-angular/src/lib/models/plan/index-testing.ts","../../../projects/ui-policy-studio-angular/src/lib/models/index-testing.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flows-menu/gio-ps-flows-menu.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-details/gio-ps-flow-details.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/gio-policy-studio.harness.ts","../../../projects/ui-policy-studio-angular/src/public-testing-api.ts","../../../projects/ui-policy-studio-angular/src/gravitee-ui-policy-studio-angular-testing.ts"],"sourcesContent":["/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from 'lodash';\n\nimport { Flow } from './Flow';\nimport { ChannelSelector, HttpSelector } from './Selector';\n\nexport function fakeChannelFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow {\n const channelSelector: ChannelSelector = {\n type: 'CHANNEL',\n channel: 'channel',\n channelOperator: 'EQUALS',\n entrypoints: ['webhook'],\n operations: ['PUBLISH'],\n };\n\n const base: Flow = {\n name: 'Flow name',\n selectors: [channelSelector],\n request: [],\n response: [],\n subscribe: [],\n publish: [],\n enabled: true,\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n\nexport function fakeHttpFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow {\n const httpSelector: HttpSelector = {\n type: 'HTTP',\n path: '/path',\n pathOperator: 'EQUALS',\n methods: ['GET'],\n };\n\n const base: Flow = {\n name: 'Flow name',\n selectors: [httpSelector],\n request: [],\n response: [],\n subscribe: [],\n publish: [],\n enabled: true,\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './Flow.fixture';\n","/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from 'lodash';\n\nimport { Plan } from './Plan';\n\nexport function fakePlan(modifier?: Partial<Plan> | ((base: Plan) => Plan)): Plan {\n const base: Plan = {\n id: 'plan-id',\n name: 'Keyless plan',\n flows: [],\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n","/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './Plan.fixture';\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './flow/index-testing';\nexport * from './plan/index-testing';\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness, parallel } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { DivHarness } from '@gravitee/ui-particles-angular/testing';\n\nexport class GioPolicyStudioFlowsMenuHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flows-menu';\n\n private locateFlowsGroups = this.locatorForAll(DivHarness.with({ selector: '.list__flowsGroup' }));\n private locateFlowByText = (text: string | RegExp) =>\n this.locatorForOptional(DivHarness.with({ selector: '.list__flowsGroup__flow', text }));\n\n public locateGroupByText = (text: string | RegExp) => this.locatorForOptional(DivHarness.with({ selector: '.list__flowsGroup', text }));\n\n private locateSelectedFlow = this.locatorForOptional(DivHarness.with({ selector: '.list__flowsGroup__flow.selected' }));\n\n public async getAllFlowsGroups(): Promise<\n {\n name: string | null;\n flows: {\n name: string | null;\n isSelected: boolean;\n infos: string | null;\n }[];\n }[]\n > {\n const flowsGroups = await this.locateFlowsGroups();\n\n return parallel(() =>\n flowsGroups.map(async flowsGroup => {\n const flowsGroupName = await flowsGroup.getText({ childSelector: '.list__flowsGroup__header__label' });\n\n const flowsDiv = await flowsGroup.childLocatorForAll(DivHarness.with({ selector: '.list__flowsGroup__flow' }))();\n\n const flowsInfos = parallel(() =>\n flowsDiv.map(async flowDiv => {\n return {\n name: await flowDiv.getText({ childSelector: '.list__flowsGroup__flow__name' }),\n infos: await flowDiv.getText({ childSelector: '.list__flowsGroup__flow__infos' }),\n isSelected: await flowDiv.host().then(host => host.hasClass('selected')),\n };\n }),\n );\n\n return {\n name: flowsGroupName,\n flows: await flowsInfos,\n };\n }),\n );\n }\n\n public async getSelectedFlow(): Promise<{ name: string | null } | null> {\n const selectedFlow = await this.locateSelectedFlow();\n\n return selectedFlow ? { name: await selectedFlow.getText({ childSelector: '.list__flowsGroup__flow__name' }) } : null;\n }\n\n /**\n * Select a flow by it's text content\n */\n public async selectFlow(flowText: string | RegExp): Promise<void> {\n const flowsGroups = await this.locateFlowByText(flowText)();\n\n if (flowsGroups) {\n await flowsGroups.host().then(host => host.click());\n }\n }\n\n public async addFlow(groupName: string | RegExp): Promise<void> {\n const flowsGroups = await this.locateGroupByText(groupName)();\n\n if (flowsGroups) {\n await (await flowsGroups.childLocatorFor(MatButtonHarness.with({ ancestor: '.list__flowsGroup__header__addBtn' }))()).click();\n }\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness, parallel } from '@angular/cdk/testing';\nimport { DivHarness, SpanHarness } from '@gravitee/ui-particles-angular/testing';\n\nexport class GioPolicyStudioDetailsInfoBarHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-details-info-bar';\n\n public async getInfos(): Promise<Record<string, (string | null)[]>> {\n const infosDiv = await this.locatorForAll(DivHarness.with({ selector: '.info' }))();\n\n const allKeyValue = await parallel(() =>\n infosDiv.map(async info => {\n const label = await info.childLocatorFor(SpanHarness.with({ selector: '.info__label' }))();\n const value = await info.childLocatorForAll(SpanHarness.with({ selector: '.info__value' }))();\n return { label: await label.getText(), value: await parallel(() => value.map(v => v.getText())) };\n }),\n );\n\n return allKeyValue.reduce((acc, curr) => {\n if (curr.label) {\n return { ...acc, [curr.label]: curr.value };\n }\n return acc;\n }, {} as Record<string, (string | null)[]>);\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\n\nimport { GioPolicyStudioDetailsInfoBarHarness } from '../flow-details-info-bar/gio-ps-flow-details-info-bar.harness';\n\nexport class GioPolicyStudioDetailsHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-details';\n\n public async isDisplayEmptyFlow(): Promise<boolean> {\n const hostText = await (await this.host()).text();\n return hostText.includes('No flows yet');\n }\n\n public async getFlowInfos(): Promise<Record<string, (string | null)[]>> {\n return await (await this.locatorFor(GioPolicyStudioDetailsInfoBarHarness)()).getInfos();\n }\n\n public async matchText(matcher: RegExp): Promise<boolean> {\n const hostText = await (await this.host()).text();\n return matcher.test(hostText);\n }\n\n public async clickEditFlowBtn(): Promise<void> {\n const editFlowBtn = await this.locatorFor(MatButtonHarness.with({ selector: '.header__configBtn__edit' }))();\n await editFlowBtn.click();\n }\n\n public async clickDeleteFlowBtn(): Promise<void> {\n const deleteFlowBtn = await this.locatorFor(MatButtonHarness.with({ selector: '.header__configBtn__delete' }))();\n await deleteFlowBtn.click();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\nimport { GioFormTagsInputHarness } from '@gravitee/ui-particles-angular';\n\nexport type GioPolicyStudioFlowProxyHarnessData = {\n name: string;\n pathOperator: string;\n path: string;\n methods: string[];\n condition: string;\n};\n\nexport class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-proxy-form-dialog';\n\n private getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));\n private nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"name\"]' }));\n private pathOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"pathOperator\"]' }));\n private pathInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"path\"]' }));\n private methodsInput = this.locatorFor(GioFormTagsInputHarness.with({ selector: '[formControlName=\"methods\"]' }));\n private conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"condition\"]' }));\n\n public async setFlowFormValues(flow: {\n name?: string;\n pathOperator?: string;\n path?: string;\n methods?: string[];\n condition?: string;\n }): Promise<void> {\n if (flow.name) {\n const nameInput = await this.nameInput();\n await nameInput.setValue(flow.name);\n }\n if (flow.pathOperator) {\n const pathOperatorInput = await this.pathOperatorInput();\n await pathOperatorInput.open();\n\n // Unselect all options before selecting the new one\n for (const option of await pathOperatorInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await pathOperatorInput.clickOptions({ text: new RegExp(flow.pathOperator, 'i') });\n }\n if (flow.path) {\n const input = await this.pathInput();\n await input.setValue(flow.path);\n }\n if (flow.methods) {\n const methodsInput = await this.methodsInput();\n await methodsInput.removeTag('ALL');\n for await (const method of flow.methods) {\n await methodsInput.addTag(method);\n }\n }\n if (flow.condition) {\n const conditionInput = await this.conditionInput();\n await conditionInput.setValue(flow.condition);\n }\n }\n\n public async getFlowFormValues(): Promise<GioPolicyStudioFlowProxyHarnessData> {\n return {\n name: await this.getFlowName(),\n pathOperator: await this.getPathOperator(),\n path: await this.getFlowPath(),\n methods: await this.getMethods(),\n condition: await this.getCondition(),\n };\n }\n\n public async getFlowName(): Promise<string> {\n return this.nameInput().then(input => input.getValue());\n }\n\n public async getFlowPath(): Promise<string> {\n return this.pathInput().then(input => input.getValue());\n }\n\n public async getPathOperator(): Promise<string> {\n return this.pathOperatorInput().then(input => input.getValueText());\n }\n\n public async getMethods(): Promise<string[]> {\n return this.methodsInput().then(input => input.getTags());\n }\n\n public async getCondition(): Promise<string> {\n return this.conditionInput().then(input => input.getValue());\n }\n\n public async save(): Promise<void> {\n const button = await this.getSaveBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentHarness, parallel } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\n\nexport type GioPolicyStudioFlowMessageHarnessData = {\n name: string;\n channelOperator: string;\n channel: string;\n entrypoints: string[];\n operations: string[];\n condition: string;\n};\n\nexport class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-message-form-dialog';\n\n private getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));\n private nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"name\"]' }));\n private channelOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"channelOperator\"]' }));\n private channelInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"channel\"]' }));\n private operationsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"operations\"]' }));\n private entrypointsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"entrypoints\"]' }));\n private conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"condition\"]' }));\n\n public async setFlowFormValues(flow: {\n name?: string;\n channelOperator?: string;\n channel?: string;\n operations?: string[];\n entrypoints?: string[];\n condition?: string;\n }): Promise<void> {\n if (flow.name) {\n const nameInput = await this.nameInput();\n await nameInput.setValue(flow.name);\n }\n if (flow.channelOperator) {\n const channelOperatorInput = await this.channelOperatorInput();\n const entrypointsInput = await this.entrypointsInput();\n await channelOperatorInput.open();\n // Unselect all options before selecting the new one\n for (const option of await entrypointsInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await channelOperatorInput.clickOptions({ text: new RegExp(flow.channelOperator, 'i') });\n }\n if (flow.channel) {\n const channelInput = await this.channelInput();\n await channelInput.setValue(flow.channel);\n }\n if (flow.operations) {\n const operationsInput = await this.operationsInput();\n await parallel(() =>\n (flow.operations ?? []).map(async operation => {\n await operationsInput.open();\n // Unselect all options before selecting the new one\n for (const option of await operationsInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await operationsInput.clickOptions({ text: new RegExp(operation, 'i') });\n }),\n );\n }\n if (flow.entrypoints) {\n const entrypointsInput = await this.entrypointsInput();\n await entrypointsInput.open();\n // Unselect all options before selecting the new one\n for (const option of await entrypointsInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await parallel(() =>\n (flow.entrypoints ?? []).map(async entrypoint => {\n await entrypointsInput.clickOptions({ text: new RegExp(entrypoint, 'i') });\n }),\n );\n }\n if (flow.condition) {\n const conditionInput = await this.conditionInput();\n await conditionInput.setValue(flow.condition);\n }\n }\n\n public async getName(): Promise<string> {\n return this.nameInput().then(input => input.getValue());\n }\n\n public async getChannelOperator(): Promise<string> {\n return this.channelOperatorInput().then(input => input.getValueText());\n }\n\n public async getChannel(): Promise<string> {\n return this.channelInput().then(input => input.getValue());\n }\n\n public async getOperations(): Promise<string> {\n return this.operationsInput().then(input => input.getValueText());\n }\n\n public async getEntrypoints(): Promise<string> {\n return this.entrypointsInput().then(input => input.getValueText());\n }\n\n public async getCondition(): Promise<string> {\n return this.conditionInput().then(input => input.getValue());\n }\n\n public async save(): Promise<void> {\n const button = await this.getSaveBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n\n public async getFormValues(): Promise<GioPolicyStudioFlowMessageHarnessData> {\n const name = await this.getName();\n const channelOperator = await this.getChannelOperator();\n const channel = await this.getChannel();\n const entrypoints = (await this.getEntrypoints()).split(',');\n const operations = (await this.getOperations()).split(',');\n const condition = await this.getCondition();\n return {\n name,\n channel,\n channelOperator,\n entrypoints,\n operations,\n condition,\n };\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\n\nimport { ChannelSelector, ConditionSelector, Flow, HttpSelector } from './models';\nimport { GioPolicyStudioFlowsMenuHarness } from './components/flows-menu/gio-ps-flows-menu.harness';\nimport { GioPolicyStudioDetailsHarness } from './components/flow-details/gio-ps-flow-details.harness';\nimport { GioPolicyStudioFlowProxyFormDialogHarness } from './components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness';\nimport { GioPolicyStudioFlowMessageFormDialogHarness } from './components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness';\n\nexport class GioPolicyStudioHarness extends ComponentHarness {\n public static hostSelector = 'gio-policy-studio';\n\n private menuHarness = this.locatorFor(GioPolicyStudioFlowsMenuHarness);\n\n private detailsHarness = this.locatorFor(GioPolicyStudioDetailsHarness);\n\n /**\n * Add a flow to a plan or to \"Common flows\"\n *\n * @param groupName Plan name where to add the flow. You also can define \"Common flows\" to add a flow to this group.\n * @param flow Flow to add\n */\n public async addFlow(groupName: string, flow: Flow): Promise<void> {\n await (await this.menuHarness()).addFlow(new RegExp(groupName, 'i'));\n\n await this.setFlowFormDialog(flow);\n }\n\n /**\n * Edit a flow configuration\n *\n * @param flowName Flow name to edit\n * @param flow\n */\n public async editFlowConfig(flowName: string, flow: Partial<Flow>): Promise<void> {\n (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));\n await (await this.detailsHarness()).clickEditFlowBtn();\n\n await this.setFlowFormDialog(flow);\n }\n\n public async deleteFlow(flowName: string): Promise<void> {\n (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));\n await (await this.detailsHarness()).clickDeleteFlowBtn();\n }\n\n public async selectFlowInMenu(flowName: string): Promise<void> {\n await (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));\n }\n\n public async getFlowsMenu(): Promise<\n {\n name: string | null;\n flows: {\n name: string | null;\n isSelected: boolean;\n infos: string | null;\n }[];\n }[]\n > {\n return (await this.menuHarness()).getAllFlowsGroups();\n }\n\n public async getSelectedFlowInfos(): Promise<Record<string, (string | null)[]>> {\n return await (await this.detailsHarness()).getFlowInfos();\n }\n\n public async save(): Promise<void> {\n await (await this.locatorFor(MatButtonHarness.with({ text: /Save/ }))()).click();\n }\n\n private async setFlowFormDialog(flow: Partial<Flow>) {\n const channelSelector = flow.selectors?.find(s => s.type === 'CHANNEL') as ChannelSelector | undefined;\n const httpSelector = flow.selectors?.find(s => s.type === 'HTTP') as HttpSelector | undefined;\n const conditionSelector = flow.selectors?.find(s => s.type === 'CONDITION') as ConditionSelector | undefined;\n\n if (!!channelSelector && !!httpSelector) {\n throw new Error('Channel and HTTP selectors are not be used together.');\n }\n\n if (channelSelector) {\n const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowMessageFormDialogHarness)();\n\n const toChannelOperator = {\n STARTS_WITH: 'Starts with',\n EQUALS: 'Equals',\n };\n\n await flowFormNewDialog.setFlowFormValues({\n name: flow.name,\n channel: channelSelector?.channel,\n channelOperator: toChannelOperator[channelSelector.channelOperator],\n entrypoints: channelSelector?.entrypoints,\n operations: channelSelector?.operations,\n condition: conditionSelector?.condition,\n });\n\n await flowFormNewDialog.save();\n return;\n }\n\n if (httpSelector) {\n const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowProxyFormDialogHarness)();\n\n await flowFormNewDialog.setFlowFormValues({\n name: flow.name,\n path: httpSelector?.path,\n pathOperator: httpSelector?.pathOperator,\n methods: httpSelector?.methods,\n condition: conditionSelector?.condition,\n });\n\n await flowFormNewDialog.save();\n return;\n }\n\n throw new Error('No selector found for this flow. Needed to select Message or Proxy flow form dialog.');\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './lib/models/index-testing';\n\nexport * from './lib/gio-policy-studio.harness';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-testing-api';\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;;SAoBgB,eAAe,CAAC,QAAoD;IAClF,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,QAAQ;QACzB,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,UAAU,EAAE,CAAC,SAAS,CAAC;KACxB,CAAC;IAEF,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,eAAe,CAAC;QAC5B,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,uCACK,IAAI,GACJ,QAAQ,EACX;AACJ,CAAC;SAEe,YAAY,CAAC,QAAoD;IAC/E,MAAM,YAAY,GAAiB;QACjC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB,CAAC;IAEF,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,CAAC,YAAY,CAAC;QACzB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,IAAI;KACd,CAAC;IAEF,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,uCACK,IAAI,GACJ,QAAQ,EACX;AACJ;;AC3EA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;SAmBgB,QAAQ,CAAC,QAAiD;IACxE,MAAM,IAAI,GAAS;QACjB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,uCACK,IAAI,GACJ,QAAQ,EACX;AACJ;;AClCA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;MCoBa,wCAAwC,gBAAgB;IAArE;;QAGU,sBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC3F,qBAAgB,GAAG,CAAC,IAAqB,KAC/C,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEnF,sBAAiB,GAAG,CAAC,IAAqB,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEhI,uBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC;KA8DzH;IA5Dc,iBAAiB;;YAU5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEnD,OAAO,QAAQ,CAAC,MACd,WAAW,CAAC,GAAG,CAAC,CAAM,UAAU;gBAC9B,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,kCAAkC,EAAE,CAAC,CAAC;gBAEvG,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC,EAAE,CAAC;gBAEjH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAC1B,QAAQ,CAAC,GAAG,CAAC,CAAM,OAAO;oBACxB,OAAO;wBACL,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,+BAA+B,EAAE,CAAC;wBAC/E,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,gCAAgC,EAAE,CAAC;wBACjF,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;qBACzE,CAAC;iBACH,CAAA,CAAC,CACH,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,MAAM,UAAU;iBACxB,CAAC;aACH,CAAA,CAAC,CACH,CAAC;SACH;KAAA;IAEY,eAAe;;YAC1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAErD,OAAO,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,+BAA+B,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;SACvH;KAAA;;;;IAKY,UAAU,CAAC,QAAyB;;YAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE5D,IAAI,WAAW,EAAE;gBACf,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aACrD;SACF;KAAA;IAEY,OAAO,CAAC,SAA0B;;YAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAE9D,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,MAAM,WAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;aAC/H;SACF;KAAA;;AArEa,4CAAY,GAAG,mBAAmB;;MCFrC,6CAA6C,gBAAgB;IAG3D,QAAQ;;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;YAEpF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MACjC,QAAQ,CAAC,GAAG,CAAC,CAAM,IAAI;gBACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;aACnG,CAAA,CAAC,CACH,CAAC;YAEF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI;gBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,uCAAY,GAAG,KAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAG;iBAC7C;gBACD,OAAO,GAAG,CAAC;aACZ,EAAE,EAAuC,CAAC,CAAC;SAC7C;KAAA;;AAnBa,iDAAY,GAAG,8BAA8B;;MCChD,sCAAsC,gBAAgB;IAGpD,kBAAkB;;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;YAClD,OAAO,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SAC1C;KAAA;IAEY,YAAY;;YACvB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,oCAAoC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;SACzF;KAAA;IAEY,SAAS,CAAC,OAAe;;YACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;KAAA;IAEY,gBAAgB;;YAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7G,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;SAC3B;KAAA;IAEY,kBAAkB;;YAC7B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC;YACjH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;SAC7B;KAAA;;AAxBa,0CAAY,GAAG,qBAAqB;;MCOvC,kDAAkD,gBAAgB;IAA/E;;QAGU,eAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACvF,iBAAY,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;QAC3F,cAAS,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC5F,sBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC;QAC7G,cAAS,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC5F,iBAAY,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAC1G,mBAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;KAiF/G;IA/Ec,iBAAiB,CAAC,IAM9B;;;YACC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzD,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;;gBAG/B,KAAK,MAAM,MAAM,IAAI,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE;oBACzD,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE;wBAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;qBACtB;iBACF;gBACD,MAAM,iBAAiB,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;aACpF;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC/C,MAAM,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;oBACpC,KAA2B,IAAA,KAAA,cAAA,IAAI,CAAC,OAAO,CAAA,IAAA;wBAA5B,MAAM,MAAM,WAAA,CAAA;wBACrB,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;qBACnC;;;;;;;;;aACF;YACD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnD,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/C;;KACF;IAEY,iBAAiB;;YAC5B,OAAO;gBACL,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;gBAC9B,YAAY,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;gBAC1C,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE;gBAC9B,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;gBAChC,SAAS,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE;aACrC,CAAC;SACH;KAAA;IAEY,WAAW;;YACtB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD;KAAA;IAEY,WAAW;;YACtB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD;KAAA;IAEY,eAAe;;YAC1B,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACrE;KAAA;IAEY,UAAU;;YACrB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;KAAA;IAEY,YAAY;;YACvB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9D;KAAA;IAEY,IAAI;;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACtB;KAAA;IAEY,MAAM;;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACtB;KAAA;;AAxFa,sDAAY,GAAG,+BAA+B;;MCDjD,oDAAoD,gBAAgB;IAAjF;;QAGU,eAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACvF,iBAAY,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;QAC3F,cAAS,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAC5F,yBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,qCAAqC,EAAE,CAAC,CAAC,CAAC;QACnH,iBAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAClG,oBAAe,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACzG,qBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;QAC3G,mBAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;KAoH/G;IAlHc,iBAAiB,CAAC,IAO9B;;YACC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvD,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC;;gBAElC,KAAK,MAAM,MAAM,IAAI,MAAM,gBAAgB,CAAC,UAAU,EAAE,EAAE;oBACxD,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE;wBAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;qBACtB;iBACF;gBACD,MAAM,oBAAoB,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;aAC1F;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC/C,MAAM,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC3C;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrD,MAAM,QAAQ,CAAC;;oBACb,OAAA,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,EAAE,GAAG,CAAC,CAAM,SAAS;wBACzC,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;;wBAE7B,KAAK,MAAM,MAAM,IAAI,MAAM,eAAe,CAAC,UAAU,EAAE,EAAE;4BACvD,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE;gCAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;6BACtB;yBACF;wBACD,MAAM,eAAe,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;qBAC1E,CAAA,CAAC,CAAA;iBAAA,CACH,CAAC;aACH;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvD,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;;gBAE9B,KAAK,MAAM,MAAM,IAAI,MAAM,gBAAgB,CAAC,UAAU,EAAE,EAAE;oBACxD,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE;wBAC7B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;qBACtB;iBACF;gBACD,MAAM,QAAQ,CAAC;;oBACb,OAAA,CAAC,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE,EAAE,GAAG,CAAC,CAAM,UAAU;wBAC3C,MAAM,gBAAgB,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;qBAC5E,CAAA,CAAC,CAAA;iBAAA,CACH,CAAC;aACH;YACD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnD,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/C;SACF;KAAA;IAEY,OAAO;;YAClB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD;KAAA;IAEY,kBAAkB;;YAC7B,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACxE;KAAA;IAEY,UAAU;;YACrB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5D;KAAA;IAEY,aAAa;;YACxB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACnE;KAAA;IAEY,cAAc;;YACzB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;SACpE;KAAA;IAEY,YAAY;;YACvB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9D;KAAA;IAEY,IAAI;;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACtB;KAAA;IAEY,MAAM;;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACtB;KAAA;IAEY,aAAa;;YACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,OAAO;gBACL,IAAI;gBACJ,OAAO;gBACP,eAAe;gBACf,WAAW;gBACX,UAAU;gBACV,SAAS;aACV,CAAC;SACH;KAAA;;AA5Ha,wDAAY,GAAG,iCAAiC;;MCLnD,+BAA+B,gBAAgB;IAA5D;;QAGU,gBAAW,GAAG,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;QAE/D,mBAAc,GAAG,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;KAwGzE;;;;;;;IAhGc,OAAO,CAAC,SAAiB,EAAE,IAAU;;YAChD,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACpC;KAAA;;;;;;;IAQY,cAAc,CAAC,QAAgB,EAAE,IAAmB;;YAC/D,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC;YAEvD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACpC;KAAA;IAEY,UAAU,CAAC,QAAgB;;YACtC,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC;SAC1D;KAAA;IAEY,gBAAgB,CAAC,QAAgB;;YAC5C,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACxE;KAAA;IAEY,YAAY;;YAUvB,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,iBAAiB,EAAE,CAAC;SACvD;KAAA;IAEY,oBAAoB;;YAC/B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC;SAC3D;KAAA;IAEY,IAAI;;YACf,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;SAClF;KAAA;IAEa,iBAAiB,CAAC,IAAmB;;;YACjD,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAgC,CAAC;YACvG,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAA6B,CAAC;YAC9F,MAAM,iBAAiB,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAkC,CAAC;YAE7G,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,YAAY,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;aACzE;YAED,IAAI,eAAe,EAAE;gBACnB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC,UAAU,CAAC,2CAA2C,CAAC,EAAE,CAAC;gBAE5H,MAAM,iBAAiB,GAAG;oBACxB,WAAW,EAAE,aAAa;oBAC1B,MAAM,EAAE,QAAQ;iBACjB,CAAC;gBAEF,MAAM,iBAAiB,CAAC,iBAAiB,CAAC;oBACxC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO;oBACjC,eAAe,EAAE,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC;oBACnE,WAAW,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW;oBACzC,UAAU,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU;oBACvC,SAAS,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,SAAS;iBACxC,CAAC,CAAC;gBAEH,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;aACR;YAED,IAAI,YAAY,EAAE;gBAChB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC,UAAU,CAAC,yCAAyC,CAAC,EAAE,CAAC;gBAE1H,MAAM,iBAAiB,CAAC,iBAAiB,CAAC;oBACxC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;oBACxB,YAAY,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY;oBACxC,OAAO,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO;oBAC9B,SAAS,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,SAAS;iBACxC,CAAC,CAAC;gBAEH,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;aACR;YAED,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;;KACzG;;AA3Ga,mCAAY,GAAG,mBAAmB;;AC1BlD;;;;;;;;;;;;;;;;ACAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"gravitee-ui-policy-studio-angular-testing.mjs","sources":["../../../projects/ui-policy-studio-angular/src/lib/models/flow/Flow.fixture.ts","../../../projects/ui-policy-studio-angular/src/lib/models/flow/FlowExecution.fixture.ts","../../../projects/ui-policy-studio-angular/src/lib/models/flow/index-testing.ts","../../../projects/ui-policy-studio-angular/src/lib/models/plan/Plan.fixture.ts","../../../projects/ui-policy-studio-angular/src/lib/models/plan/index-testing.ts","../../../projects/ui-policy-studio-angular/src/lib/models/index-testing.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flows-menu/gio-ps-flows-menu.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-details/gio-ps-flow-details.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.ts","../../../projects/ui-policy-studio-angular/src/lib/gio-policy-studio.harness.ts","../../../projects/ui-policy-studio-angular/src/public-testing-api.ts","../../../projects/ui-policy-studio-angular/src/gravitee-ui-policy-studio-angular-testing.ts"],"sourcesContent":["/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from 'lodash';\n\nimport { Flow } from './Flow';\nimport { ChannelSelector, HttpSelector } from './Selector';\n\nexport function fakeChannelFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow {\n const channelSelector: ChannelSelector = {\n type: 'CHANNEL',\n channel: 'channel',\n channelOperator: 'EQUALS',\n entrypoints: ['webhook'],\n operations: ['PUBLISH'],\n };\n\n const base: Flow = {\n name: 'Flow name',\n selectors: [channelSelector],\n request: [],\n response: [],\n subscribe: [],\n publish: [],\n enabled: true,\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n\nexport function fakeHttpFlow(modifier?: Partial<Flow> | ((baseApi: Flow) => Flow)): Flow {\n const httpSelector: HttpSelector = {\n type: 'HTTP',\n path: '/path',\n pathOperator: 'EQUALS',\n methods: ['GET'],\n };\n\n const base: Flow = {\n name: 'Flow name',\n selectors: [httpSelector],\n request: [],\n response: [],\n subscribe: [],\n publish: [],\n enabled: true,\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n","/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from 'lodash';\n\nimport { FlowExecution } from './FlowExecution';\n\nexport function fakeBestMatchFlowExecution(modifier?: Partial<FlowExecution> | ((baseApi: FlowExecution) => FlowExecution)): FlowExecution {\n const base: FlowExecution = {\n mode: 'BEST_MATCH',\n matchRequired: false,\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n\nexport function fakeDefaultFlowExecution(modifier?: Partial<FlowExecution> | ((baseApi: FlowExecution) => FlowExecution)): FlowExecution {\n const base: FlowExecution = {\n mode: 'DEFAULT',\n matchRequired: false,\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './Flow.fixture';\nexport * from './FlowExecution.fixture';\n","/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from 'lodash';\n\nimport { Plan } from './Plan';\n\nexport function fakePlan(modifier?: Partial<Plan> | ((base: Plan) => Plan)): Plan {\n const base: Plan = {\n id: 'plan-id',\n name: 'Keyless plan',\n flows: [],\n };\n\n if (isFunction(modifier)) {\n return modifier(base);\n }\n\n return {\n ...base,\n ...modifier,\n };\n}\n","/*\n * Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './Plan.fixture';\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './flow/index-testing';\nexport * from './plan/index-testing';\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness, parallel } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { DivHarness } from '@gravitee/ui-particles-angular/testing';\n\nexport class GioPolicyStudioFlowsMenuHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flows-menu';\n\n private locateFlowsGroups = this.locatorForAll(DivHarness.with({ selector: '.list__flowsGroup' }));\n private locateFlowByText = (text: string | RegExp) =>\n this.locatorForOptional(DivHarness.with({ selector: '.list__flowsGroup__flow', text }));\n\n public locateGroupByText = (text: string | RegExp) => this.locatorForOptional(DivHarness.with({ selector: '.list__flowsGroup', text }));\n\n private locateSelectedFlow = this.locatorForOptional(DivHarness.with({ selector: '.list__flowsGroup__flow.selected' }));\n\n public async getAllFlowsGroups(): Promise<\n {\n name: string | null;\n flows: {\n name: string | null;\n isSelected: boolean;\n infos: string | null;\n }[];\n }[]\n > {\n const flowsGroups = await this.locateFlowsGroups();\n\n return parallel(() =>\n flowsGroups.map(async flowsGroup => {\n const flowsGroupName = await flowsGroup.getText({ childSelector: '.list__flowsGroup__header__label' });\n\n const flowsDiv = await flowsGroup.childLocatorForAll(DivHarness.with({ selector: '.list__flowsGroup__flow' }))();\n\n const flowsInfos = parallel(() =>\n flowsDiv.map(async flowDiv => {\n return {\n name: await flowDiv.getText({ childSelector: '.list__flowsGroup__flow__name' }),\n infos: await flowDiv.getText({ childSelector: '.list__flowsGroup__flow__infos' }),\n isSelected: await flowDiv.host().then(host => host.hasClass('selected')),\n };\n }),\n );\n\n return {\n name: flowsGroupName,\n flows: await flowsInfos,\n };\n }),\n );\n }\n\n public async getSelectedFlow(): Promise<{ name: string | null } | null> {\n const selectedFlow = await this.locateSelectedFlow();\n\n return selectedFlow ? { name: await selectedFlow.getText({ childSelector: '.list__flowsGroup__flow__name' }) } : null;\n }\n\n /**\n * Select a flow by it's text content\n */\n public async selectFlow(flowText: string | RegExp): Promise<void> {\n const flowsGroups = await this.locateFlowByText(flowText)();\n\n if (flowsGroups) {\n await flowsGroups.host().then(host => host.click());\n }\n }\n\n public async addFlow(groupName: string | RegExp): Promise<void> {\n const flowsGroups = await this.locateGroupByText(groupName)();\n\n if (flowsGroups) {\n await (await flowsGroups.childLocatorFor(MatButtonHarness.with({ ancestor: '.list__flowsGroup__header__addBtn' }))()).click();\n }\n }\n\n public async openFlowExecutionConfig(): Promise<void> {\n await (await this.locatorFor(MatButtonHarness.with({ selector: '.header__configBtn_edit' }))())?.click();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness, parallel } from '@angular/cdk/testing';\nimport { DivHarness, SpanHarness } from '@gravitee/ui-particles-angular/testing';\n\nexport class GioPolicyStudioDetailsInfoBarHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-details-info-bar';\n\n public async getInfos(): Promise<Record<string, (string | null)[]>> {\n const infosDiv = await this.locatorForAll(DivHarness.with({ selector: '.info' }))();\n\n const allKeyValue = await parallel(() =>\n infosDiv.map(async info => {\n const label = await info.childLocatorFor(SpanHarness.with({ selector: '.info__label' }))();\n const value = await info.childLocatorForAll(SpanHarness.with({ selector: '.info__value' }))();\n return { label: await label.getText(), value: await parallel(() => value.map(v => v.getText())) };\n }),\n );\n\n return allKeyValue.reduce((acc, curr) => {\n if (curr.label) {\n return { ...acc, [curr.label]: curr.value };\n }\n return acc;\n }, {} as Record<string, (string | null)[]>);\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\n\nimport { GioPolicyStudioDetailsInfoBarHarness } from '../flow-details-info-bar/gio-ps-flow-details-info-bar.harness';\n\nexport class GioPolicyStudioDetailsHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-details';\n\n public async isDisplayEmptyFlow(): Promise<boolean> {\n const hostText = await (await this.host()).text();\n return hostText.includes('No flows yet');\n }\n\n public async getFlowInfos(): Promise<Record<string, (string | null)[]>> {\n return await (await this.locatorFor(GioPolicyStudioDetailsInfoBarHarness)()).getInfos();\n }\n\n public async matchText(matcher: RegExp): Promise<boolean> {\n const hostText = await (await this.host()).text();\n return matcher.test(hostText);\n }\n\n public async clickEditFlowBtn(): Promise<void> {\n const editFlowBtn = await this.locatorFor(MatButtonHarness.with({ selector: '.header__configBtn__edit' }))();\n await editFlowBtn.click();\n }\n\n public async clickDeleteFlowBtn(): Promise<void> {\n const deleteFlowBtn = await this.locatorFor(MatButtonHarness.with({ selector: '.header__configBtn__delete' }))();\n await deleteFlowBtn.click();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\nimport { GioFormTagsInputHarness } from '@gravitee/ui-particles-angular';\n\nexport type GioPolicyStudioFlowProxyHarnessData = {\n name: string;\n pathOperator: string;\n path: string;\n methods: string[];\n condition: string;\n};\n\nexport class GioPolicyStudioFlowProxyFormDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-proxy-form-dialog';\n\n private getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));\n private nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"name\"]' }));\n private pathOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"pathOperator\"]' }));\n private pathInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"path\"]' }));\n private methodsInput = this.locatorFor(GioFormTagsInputHarness.with({ selector: '[formControlName=\"methods\"]' }));\n private conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"condition\"]' }));\n\n public async setFlowFormValues(flow: {\n name?: string;\n pathOperator?: string;\n path?: string;\n methods?: string[];\n condition?: string;\n }): Promise<void> {\n if (flow.name) {\n const nameInput = await this.nameInput();\n await nameInput.setValue(flow.name);\n }\n if (flow.pathOperator) {\n const pathOperatorInput = await this.pathOperatorInput();\n await pathOperatorInput.open();\n\n // Unselect all options before selecting the new one\n for (const option of await pathOperatorInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await pathOperatorInput.clickOptions({ text: new RegExp(flow.pathOperator, 'i') });\n }\n if (flow.path) {\n const input = await this.pathInput();\n await input.setValue(flow.path);\n }\n if (flow.methods) {\n const methodsInput = await this.methodsInput();\n await methodsInput.removeTag('ALL');\n for await (const method of flow.methods) {\n await methodsInput.addTag(method);\n }\n }\n if (flow.condition) {\n const conditionInput = await this.conditionInput();\n await conditionInput.setValue(flow.condition);\n }\n }\n\n public async getFlowFormValues(): Promise<GioPolicyStudioFlowProxyHarnessData> {\n return {\n name: await this.getFlowName(),\n pathOperator: await this.getPathOperator(),\n path: await this.getFlowPath(),\n methods: await this.getMethods(),\n condition: await this.getCondition(),\n };\n }\n\n public async getFlowName(): Promise<string> {\n return this.nameInput().then(input => input.getValue());\n }\n\n public async getFlowPath(): Promise<string> {\n return this.pathInput().then(input => input.getValue());\n }\n\n public async getPathOperator(): Promise<string> {\n return this.pathOperatorInput().then(input => input.getValueText());\n }\n\n public async getMethods(): Promise<string[]> {\n return this.methodsInput().then(input => input.getTags());\n }\n\n public async getCondition(): Promise<string> {\n return this.conditionInput().then(input => input.getValue());\n }\n\n public async save(): Promise<void> {\n const button = await this.getSaveBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentHarness, parallel } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\n\nexport type GioPolicyStudioFlowMessageHarnessData = {\n name: string;\n channelOperator: string;\n channel: string;\n entrypoints: string[];\n operations: string[];\n condition: string;\n};\n\nexport class GioPolicyStudioFlowMessageFormDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-message-form-dialog';\n\n private getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));\n private nameInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"name\"]' }));\n private channelOperatorInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"channelOperator\"]' }));\n private channelInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"channel\"]' }));\n private operationsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"operations\"]' }));\n private entrypointsInput = this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"entrypoints\"]' }));\n private conditionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"condition\"]' }));\n\n public async setFlowFormValues(flow: {\n name?: string;\n channelOperator?: string;\n channel?: string;\n operations?: string[];\n entrypoints?: string[];\n condition?: string;\n }): Promise<void> {\n if (flow.name) {\n const nameInput = await this.nameInput();\n await nameInput.setValue(flow.name);\n }\n if (flow.channelOperator) {\n const channelOperatorInput = await this.channelOperatorInput();\n const entrypointsInput = await this.entrypointsInput();\n await channelOperatorInput.open();\n // Unselect all options before selecting the new one\n for (const option of await entrypointsInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await channelOperatorInput.clickOptions({ text: new RegExp(flow.channelOperator, 'i') });\n }\n if (flow.channel) {\n const channelInput = await this.channelInput();\n await channelInput.setValue(flow.channel);\n }\n if (flow.operations) {\n const operationsInput = await this.operationsInput();\n await parallel(() =>\n (flow.operations ?? []).map(async operation => {\n await operationsInput.open();\n // Unselect all options before selecting the new one\n for (const option of await operationsInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await operationsInput.clickOptions({ text: new RegExp(operation, 'i') });\n }),\n );\n }\n if (flow.entrypoints) {\n const entrypointsInput = await this.entrypointsInput();\n await entrypointsInput.open();\n // Unselect all options before selecting the new one\n for (const option of await entrypointsInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n await parallel(() =>\n (flow.entrypoints ?? []).map(async entrypoint => {\n await entrypointsInput.clickOptions({ text: new RegExp(entrypoint, 'i') });\n }),\n );\n }\n if (flow.condition) {\n const conditionInput = await this.conditionInput();\n await conditionInput.setValue(flow.condition);\n }\n }\n\n public async getName(): Promise<string> {\n return this.nameInput().then(input => input.getValue());\n }\n\n public async getChannelOperator(): Promise<string> {\n return this.channelOperatorInput().then(input => input.getValueText());\n }\n\n public async getChannel(): Promise<string> {\n return this.channelInput().then(input => input.getValue());\n }\n\n public async getOperations(): Promise<string> {\n return this.operationsInput().then(input => input.getValueText());\n }\n\n public async getEntrypoints(): Promise<string> {\n return this.entrypointsInput().then(input => input.getValueText());\n }\n\n public async getCondition(): Promise<string> {\n return this.conditionInput().then(input => input.getValue());\n }\n\n public async save(): Promise<void> {\n const button = await this.getSaveBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n\n public async getFormValues(): Promise<GioPolicyStudioFlowMessageHarnessData> {\n const name = await this.getName();\n const channelOperator = await this.getChannelOperator();\n const channel = await this.getChannel();\n const entrypoints = (await this.getEntrypoints()).split(',');\n const operations = (await this.getOperations()).split(',');\n const condition = await this.getCondition();\n return {\n name,\n channel,\n channelOperator,\n entrypoints,\n operations,\n condition,\n };\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\nimport { MatSlideToggleHarness } from '@angular/material/slide-toggle/testing';\n\nimport { FlowMode } from '../../models';\n\nexport class GioPolicyStudioFlowExecutionFormDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-ps-flow-execution-form-dialog';\n\n private getSaveBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__saveBtn' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.actions__cancelBtn' }));\n\n public async setFlowFormValues(flowExecution: { mode?: FlowMode; matchRequired?: boolean }): Promise<void> {\n const modeInput = await this.locatorFor(MatSelectHarness.with({ selector: '[formControlName=\"mode\"]' }))();\n const matchRequiredInput = await this.locatorFor(MatSlideToggleHarness.with({ selector: '[formControlName=\"matchRequired\"]' }))();\n\n if (flowExecution.mode) {\n await modeInput.open();\n\n // Unselect all options before selecting the new one\n for (const option of await modeInput.getOptions()) {\n if (await option.isSelected()) {\n await option.click();\n }\n }\n const flowModeToValue: Record<FlowMode, string> = {\n BEST_MATCH: 'Best match',\n DEFAULT: 'Default',\n };\n\n await modeInput.clickOptions({ text: new RegExp(flowModeToValue[flowExecution.mode], 'i') });\n }\n\n if (flowExecution.matchRequired) {\n await matchRequiredInput.check();\n } else {\n await matchRequiredInput.uncheck();\n }\n }\n\n public async save(): Promise<void> {\n const button = await this.getSaveBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\n\nimport { ChannelSelector, ConditionSelector, Flow, FlowExecution, HttpSelector } from './models';\nimport { GioPolicyStudioFlowsMenuHarness } from './components/flows-menu/gio-ps-flows-menu.harness';\nimport { GioPolicyStudioDetailsHarness } from './components/flow-details/gio-ps-flow-details.harness';\nimport { GioPolicyStudioFlowProxyFormDialogHarness } from './components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness';\nimport { GioPolicyStudioFlowMessageFormDialogHarness } from './components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness';\nimport { GioPolicyStudioFlowExecutionFormDialogHarness } from './components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness';\n\nexport class GioPolicyStudioHarness extends ComponentHarness {\n public static hostSelector = 'gio-policy-studio';\n\n private menuHarness = this.locatorFor(GioPolicyStudioFlowsMenuHarness);\n\n private detailsHarness = this.locatorFor(GioPolicyStudioDetailsHarness);\n\n /**\n * Add a flow to a plan or to \"Common flows\"\n *\n * @param groupName Plan name where to add the flow. You also can define \"Common flows\" to add a flow to this group.\n * @param flow Flow to add\n */\n public async addFlow(groupName: string, flow: Flow): Promise<void> {\n await (await this.menuHarness()).addFlow(new RegExp(groupName, 'i'));\n\n await this.setFlowFormDialog(flow);\n }\n\n /**\n * Edit a flow configuration\n *\n * @param flowName Flow name to edit\n * @param flow\n */\n public async editFlowConfig(flowName: string, flow: Partial<Flow>): Promise<void> {\n (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));\n await (await this.detailsHarness()).clickEditFlowBtn();\n\n await this.setFlowFormDialog(flow);\n }\n\n public async deleteFlow(flowName: string): Promise<void> {\n (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));\n await (await this.detailsHarness()).clickDeleteFlowBtn();\n }\n\n public async selectFlowInMenu(flowName: string): Promise<void> {\n await (await this.menuHarness()).selectFlow(new RegExp(flowName, 'i'));\n }\n\n public async getFlowsMenu(): Promise<\n {\n name: string | null;\n flows: {\n name: string | null;\n isSelected: boolean;\n infos: string | null;\n }[];\n }[]\n > {\n return (await this.menuHarness()).getAllFlowsGroups();\n }\n\n public async getSelectedFlowInfos(): Promise<Record<string, (string | null)[]>> {\n return await (await this.detailsHarness()).getFlowInfos();\n }\n\n public async save(): Promise<void> {\n await (await this.locatorFor(MatButtonHarness.with({ text: /Save/ }))()).click();\n }\n\n private async setFlowFormDialog(flow: Partial<Flow>) {\n const channelSelector = flow.selectors?.find(s => s.type === 'CHANNEL') as ChannelSelector | undefined;\n const httpSelector = flow.selectors?.find(s => s.type === 'HTTP') as HttpSelector | undefined;\n const conditionSelector = flow.selectors?.find(s => s.type === 'CONDITION') as ConditionSelector | undefined;\n\n if (!!channelSelector && !!httpSelector) {\n throw new Error('Channel and HTTP selectors are not be used together.');\n }\n\n if (channelSelector) {\n const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowMessageFormDialogHarness)();\n\n const toChannelOperator = {\n STARTS_WITH: 'Starts with',\n EQUALS: 'Equals',\n };\n\n await flowFormNewDialog.setFlowFormValues({\n name: flow.name,\n channel: channelSelector?.channel,\n channelOperator: toChannelOperator[channelSelector.channelOperator],\n entrypoints: channelSelector?.entrypoints,\n operations: channelSelector?.operations,\n condition: conditionSelector?.condition,\n });\n\n await flowFormNewDialog.save();\n return;\n }\n\n if (httpSelector) {\n const flowFormNewDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowProxyFormDialogHarness)();\n\n await flowFormNewDialog.setFlowFormValues({\n name: flow.name,\n path: httpSelector?.path,\n pathOperator: httpSelector?.pathOperator,\n methods: httpSelector?.methods,\n condition: conditionSelector?.condition,\n });\n\n await flowFormNewDialog.save();\n return;\n }\n\n throw new Error('No selector found for this flow. Needed to select Message or Proxy flow form dialog.');\n }\n\n public async setFlowExecutionConfig(flowExecution: FlowExecution): Promise<void> {\n await (await this.menuHarness()).openFlowExecutionConfig();\n\n const flowExecutionDialog = await this.documentRootLocatorFactory().locatorFor(GioPolicyStudioFlowExecutionFormDialogHarness)();\n await flowExecutionDialog.setFlowFormValues(flowExecution);\n await flowExecutionDialog.save();\n }\n}\n","/*\n * Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './lib/models/index-testing';\n\nexport * from './lib/gio-policy-studio.harness';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-testing-api';\n"],"names":[],"mappings":"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"}
|