From addd8840cdd000c5a0665e074546e5f06cb8ef1a Mon Sep 17 00:00:00 2001 From: wojteknowacki <124166231+wojteknowacki@users.noreply.github.com> Date: Mon, 24 Jul 2023 15:39:47 +0200 Subject: [PATCH] test - user should be able to delete saved preset (#3989) --- .../products/productsList/productPresets.js | 30 +++++++++++++++++++ cypress/elements/shared/presetsAndSearch.js | 1 + .../support/pages/catalog/presetsAndSearch.js | 6 ++++ .../FilterPresetsSelect/FilterPresetItem.tsx | 1 + 4 files changed, 38 insertions(+) diff --git a/cypress/e2e/products/productsList/productPresets.js b/cypress/e2e/products/productsList/productPresets.js index e9f46f3b1..d0abda9cd 100644 --- a/cypress/e2e/products/productsList/productPresets.js +++ b/cypress/e2e/products/productsList/productPresets.js @@ -7,11 +7,13 @@ import { LOCAL_STORAGE_KEYS, urlList } from "../../../fixtures/"; import { ensureCanvasStatic } from "../../../support/customCommands/sharedElementsOperations/canvas"; import { addPresetWithName, + clickDeletePresetButton, clickSavedPresetContain, clickShowSavedPresetsButton, clickUpdatePresetButton, confirmActivePresetName, confirmGridRowsContainsText, + hoverSavedPresetContain, searchItems, } from "../../../support/pages/catalog/presetsAndSearch"; @@ -64,4 +66,32 @@ describe("As a user I should be able to save selected filters with search querie }); }, ); + it( + "should be able to delete preset. TC: SALEOR_2714", + { tags: ["@productsList", "@allEnv", "@stable"] }, + () => { + const firstPreset = "bean"; + const secondPreset = "hoodie"; + window.localStorage.setItem( + LOCAL_STORAGE_KEYS.keys.productPresets, + `[{"data":"query=${firstPreset}","name":"${firstPreset}"},{"data":"query=${secondPreset}","name":"${secondPreset}"}]`, + ); + cy.visit(urlList.products); + ensureCanvasStatic(PRODUCTS_LIST.dataGridTable); + clickShowSavedPresetsButton(); + hoverSavedPresetContain(secondPreset); + clickDeletePresetButton(); + cy.clickSubmitButton(); + ensureCanvasStatic(PRODUCTS_LIST.dataGridTable).then(() => { + expect( + localStorage.getItem(LOCAL_STORAGE_KEYS.keys.productPresets), + ).to.contains(`query=${firstPreset}`); + expect( + localStorage.getItem(LOCAL_STORAGE_KEYS.keys.productPresets), + ).to.not.contains(`query=${secondPreset}`); + clickShowSavedPresetsButton(); + cy.contains(firstPreset).should("be.visible"); + }); + }, + ); }); diff --git a/cypress/elements/shared/presetsAndSearch.js b/cypress/elements/shared/presetsAndSearch.js index 99ef7db38..f9cbc9d98 100644 --- a/cypress/elements/shared/presetsAndSearch.js +++ b/cypress/elements/shared/presetsAndSearch.js @@ -3,6 +3,7 @@ export const PRESETS = { presetNameTextField: '[data-test-id="preset-name-text-field"]', savePresetNameButton: '[data-test-id="save-preset-button"]', activePresetName: '[data-test-id="show-saved-filters-button"]', + presetDeleteButton: '[data-test-id="preset-delete-button"]', savedPreset: '[data-test-id="preset"]', updatePresetButton: '[data-test-id="update-preset-button"]', }; diff --git a/cypress/support/pages/catalog/presetsAndSearch.js b/cypress/support/pages/catalog/presetsAndSearch.js index b3276a160..e50a1d887 100644 --- a/cypress/support/pages/catalog/presetsAndSearch.js +++ b/cypress/support/pages/catalog/presetsAndSearch.js @@ -28,12 +28,18 @@ export function confirmGridRowsContainsText(name) { export function confirmActivePresetName(name) { return cy.get(PRESETS.activePresetName).should("contain.text", name); } +export function clickDeletePresetButton() { + return cy.get(PRESETS.presetDeleteButton).click(); +} export function clickShowSavedPresetsButton() { cy.get(PRESETS.activePresetName).click(); } export function clickSavedPresetContain(presetName) { cy.get(PRESETS.savedPreset).contains(presetName).click(); } +export function hoverSavedPresetContain(presetName) { + cy.get(PRESETS.savedPreset).contains(presetName).trigger("mouseover"); +} export function clickUpdatePresetButton() { cy.get(PRESETS.updatePresetButton).click(); } diff --git a/src/components/FilterPresetsSelect/FilterPresetItem.tsx b/src/components/FilterPresetsSelect/FilterPresetItem.tsx index 6d33a6e83..196c44cfd 100644 --- a/src/components/FilterPresetsSelect/FilterPresetItem.tsx +++ b/src/components/FilterPresetsSelect/FilterPresetItem.tsx @@ -48,6 +48,7 @@ export const FilterPresetItem = ({ alignItems="center" >