From 36fc360d62af3f6810992059ccdbc84fe71f8c9b Mon Sep 17 00:00:00 2001 From: Aloisio Bertolo Bastian Date: Tue, 18 Feb 2025 16:43:05 -0300 Subject: [PATCH] feat: add total records found tag in waf rules tunning page --- .../list-waf-rules-tuning-service.js | 6 +- .../list-waf-rules-tuning-service.test.js | 40 ++++--- src/views/WafRules/ListWafRulesTuning.vue | 111 ++++++++++-------- 3 files changed, 91 insertions(+), 66 deletions(-) diff --git a/src/services/waf-rules-services/list-waf-rules-tuning-service.js b/src/services/waf-rules-services/list-waf-rules-tuning-service.js index 42027ab0f..f294ad38a 100644 --- a/src/services/waf-rules-services/list-waf-rules-tuning-service.js +++ b/src/services/waf-rules-services/list-waf-rules-tuning-service.js @@ -5,7 +5,7 @@ import * as Errors from '@/services/axios/errors' export const listWafRulesTuningService = async ({ wafId, domains, network, hourRange, filter }) => { if (!wafId) { return parseHttpResponse({ - body: [], + body: { data: [], recordsFound: 0 }, statusCode: 200 }) } @@ -65,8 +65,8 @@ const adapt = (httpResponse) => { */ if (httpResponse.statusCode !== 200) return httpResponse - const isArray = Array.isArray(httpResponse.body.results) + const count = isArray ? httpResponse.body.results.length : 0 const parsedWafRulesTuning = isArray ? httpResponse.body.results.map((event, index) => { const values = { @@ -89,7 +89,7 @@ const adapt = (httpResponse) => { : [] return { - body: parsedWafRulesTuning, + body: { data: parsedWafRulesTuning, recordsFound: count }, statusCode: httpResponse.statusCode } } diff --git a/src/tests/services/waf-rules-services/list-waf-rules-tuning-service.test.js b/src/tests/services/waf-rules-services/list-waf-rules-tuning-service.test.js index 62c4993dc..8653c26db 100644 --- a/src/tests/services/waf-rules-services/list-waf-rules-tuning-service.test.js +++ b/src/tests/services/waf-rules-services/list-waf-rules-tuning-service.test.js @@ -61,22 +61,25 @@ describe('WafRulesService', () => { const result = await sut(fixtures.payload) - expect(result).toEqual([ - { - hitCount: fixtures.wafRulesMock.hit_count, - topIps: fixtures?.wafRulesMock?.top_10_ips?.[0]?.[1] || '', - ruleId: fixtures.wafRulesMock.rule_id, - id: `${fixtures.wafRulesMock.rule_id}0`, - ruleIdDescription: `${fixtures.wafRulesMock.rule_id} - ${fixtures.wafRulesMock.rule_description}`, - ipCount: fixtures.wafRulesMock.ip_count, - matchZone: fixtures.wafRulesMock.match_zone, - pathCount: fixtures.wafRulesMock.path_count, - topCountries: fixtures?.wafRulesMock?.top_10_countries?.[0]?.[1] || '', - matchesOn: fixtures.wafRulesMock.matches_on, - ruleDescription: fixtures.wafRulesMock.rule_description, - countryCount: fixtures.wafRulesMock.country_count - } - ]) + expect(result).toEqual({ + data: [ + { + hitCount: fixtures.wafRulesMock.hit_count, + topIps: fixtures?.wafRulesMock?.top_10_ips?.[0]?.[1] || '', + ruleId: fixtures.wafRulesMock.rule_id, + id: `${fixtures.wafRulesMock.rule_id}0`, + ruleIdDescription: `${fixtures.wafRulesMock.rule_id} - ${fixtures.wafRulesMock.rule_description}`, + ipCount: fixtures.wafRulesMock.ip_count, + matchZone: fixtures.wafRulesMock.match_zone, + pathCount: fixtures.wafRulesMock.path_count, + topCountries: fixtures?.wafRulesMock?.top_10_countries?.[0]?.[1] || '', + matchesOn: fixtures.wafRulesMock.matches_on, + ruleDescription: fixtures.wafRulesMock.rule_description, + countryCount: fixtures.wafRulesMock.country_count + } + ], + recordsFound: 1 + }) }) it('should return empty data when the values in the parameter are not passed in ', async () => { vi.spyOn(AxiosHttpClientAdapter, 'request').mockResolvedValueOnce({ @@ -87,7 +90,10 @@ describe('WafRulesService', () => { const result = await sut({}) - expect(result).toEqual([]) + expect(result).toEqual({ + data: [], + recordsFound: 0 + }) }) it('Should return an API error for an 400 response status', async () => { diff --git a/src/views/WafRules/ListWafRulesTuning.vue b/src/views/WafRules/ListWafRulesTuning.vue index aad67e971..51c72c9b6 100644 --- a/src/views/WafRules/ListWafRulesTuning.vue +++ b/src/views/WafRules/ListWafRulesTuning.vue @@ -1,50 +1,58 @@