Skip to content

Commit

Permalink
[UXE-5299] fix: send header criterias operator as matches instead of …
Browse files Browse the repository at this point in the history
…is in list (#1816)

* chore: updgrade project version to 1.24.0

* fix: send header criterias operator as matches instead of is in list
  • Loading branch information
aloisio-m-bastian authored Oct 17, 2024
1 parent 5d8bd2b commit a900186
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/* eslint-disable cypress/no-unnecessary-waiting */
import generateUniqueName from '../../support/utils'
import selectors from '../../support/selectors'

let firewallName, ruleName

describe('Edge Firewall spec', { tags: ['@dev5', '@xfail'] }, () => {
beforeEach(() => {
cy.login()
firewallName = generateUniqueName('EdgeFirewall')
ruleName = generateUniqueName('EdgeFirewallRule')
})

it('should create an Edge Firewall and run a function', () => {
cy.openProduct('Edge Firewall')

// Act - create Edge Firewall
cy.get(selectors.edgeFirewall.createButton).click()
cy.get(selectors.edgeFirewall.nameInput).clear()
cy.get(selectors.edgeFirewall.nameInput).type(firewallName)
cy.get(selectors.edgeFirewall.edgeFunctionSwitch).click()
cy.get(selectors.edgeFirewall.wafEnabledSwitch).click()
cy.get(selectors.edgeFirewall.saveButton).click()
cy.verifyToast('success', 'Your Edge Firewall has been created')

cy.get(selectors.edgeFirewall.rulesEngineTab).click()
cy.get(selectors.edgeFirewall.createRuleButton).click()
cy.get(selectors.edgeFirewall.ruleNameInput).click()
cy.get(selectors.edgeFirewall.ruleNameInput).type(ruleName)
cy.get(selectors.edgeFirewall.ruleDescriptionInput).clear()
cy.get(selectors.edgeFirewall.ruleDescriptionInput).type('My Rule Description')
cy.get(selectors.edgeFirewall.ruleCriteriaVariableDropdown).click()
cy.get(selectors.edgeFirewall.ruleCriteriaVariableDropdownHeaderAccept).click()
cy.get(selectors.edgeFirewall.ruleCriteriaOperatorDropdown).click()
cy.get(selectors.edgeFirewall.ruleCriteriaOperatorMatches).click()
cy.get(selectors.edgeFirewall.ruleCriteriaInput).clear()
cy.get(selectors.edgeFirewall.ruleCriteriaInput).type('test')
cy.get(selectors.edgeFirewall.ruleBehaviorDropdown).click()
cy.get(selectors.edgeFirewall.ruleBehaviorFirstOption).click()

cy.intercept('POST', '/api/v3/edge_firewall/*/rules_engine*').as('addEdgeFirewallRule')

cy.get(selectors.edgeFirewall.ruleSubmit).click()

cy.wait('@addEdgeFirewallRule').then((interception) => {
const requestBody = interception.request.body
expect(requestBody.criteria[0][0].operator).to.equal('matches')
})

cy.verifyToast('success', 'Rule Engine successfully created')

// Assert - Find the created rule
cy.get(selectors.edgeFirewall.rulesTableSearchInput).clear()
cy.get(selectors.edgeFirewall.rulesTableSearchInput).type(ruleName)
cy.get(selectors.edgeFirewall.rulesTableColumnName).should('have.text', ruleName)
cy.get(selectors.edgeFirewall.rulesTableColumnDescriptionShowMore).click()
cy.get(selectors.edgeFirewall.rulesTableColumnDescription).should(
'have.text',
'My Rule Description'
)

// Cleanup - Remove the created rule
cy.deleteEntityFromLoadedList().then(() => {
cy.verifyToast('Rules Engine successfully deleted')
})

// Assert - Find the created firewall
cy.get(selectors.edgeFirewall.mainSettingsTab).click()
cy.get(selectors.edgeFirewall.cancelButton).click()
cy.get(selectors.edgeFirewall.searchInput).clear()
cy.get(selectors.edgeFirewall.searchInput).type(firewallName)
cy.get(selectors.edgeFirewall.nameRow).should('have.text', firewallName)
cy.get(selectors.edgeFirewall.activeRow).should('have.text', 'Active')
})

afterEach(() => {
// Delete the firewall
cy.deleteEntityFromList({ entityName: firewallName, productName: 'Edge Firewall' }).then(() => {
cy.verifyToast('Edge Firewall successfully deleted')
})
})
})
2 changes: 2 additions & 0 deletions cypress/support/selectors/product-selectors/edge-firewall.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ export default {
createFunctionButton: '[data-testid="edge-firewall-functions-form__create-function-button"]',
edgeFunctionActionbar: '[data-testid="create-edge-functions-drawer__action-bar"]',
ruleCriteriaVariableDropdownRequestUri: '#criteria\\[0\\]\\[0\\]\\.variable_11',
ruleCriteriaVariableDropdownHeaderAccept: '#criteria\\[0\\]\\[0\\]\\.variable_1',
ruleCriteriaOperatorDropdown: '[data-testid="edge-firewall-rules-form__operator[0]__dropdown"]',
ruleCriteriaOperatorStartsWith: '#criteria\\[0\\]\\[0\\]\\.operator_2',
ruleCriteriaOperatorMatches: '#criteria\\[0\\]\\[0\\]\\.operator_0',
ruleCriteriaOperatorFirstOption: '#criteria\\[0\\]\\[0\\]\\.operator_0',
ruleCriteriaValueFirstOption: '#criteria\\[0\\]\\[0\\]\\.argument_0',
ruleCriteriaInput: '[data-testid="edge-firewall-rules-form__argument[0][0]__input"]',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@
case 'header_origin':
case 'header_referer':
case 'header_user_agent':
return [
{ label: 'matches', value: 'matches' },
{ label: 'does not match', value: 'does_not_match' }
]
case 'network':
return [
{ label: 'matches', value: 'is_in_list' },
Expand Down

0 comments on commit a900186

Please sign in to comment.