From 64295055475f20322b4523b7ac6748d452cac20f Mon Sep 17 00:00:00 2001 From: Sven Reichel Date: Sat, 4 Oct 2025 05:45:41 +0200 Subject: [PATCH 1/5] Added cypress test for disable configured CMS page --- cypress/e2e/openmage/backend/cms/page.cy.js | 16 ++++++++++++++++ cypress/support/openmage/config/paths.js | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/cypress/e2e/openmage/backend/cms/page.cy.js b/cypress/e2e/openmage/backend/cms/page.cy.js index c0f43f81f0f..8f68ac6a05d 100644 --- a/cypress/e2e/openmage/backend/cms/page.cy.js +++ b/cypress/e2e/openmage/backend/cms/page.cy.js @@ -1,4 +1,5 @@ const route = cy.testRoutes.backend.cms.page; +const validation = cy.openmage.validation; describe(`Checks admin system "${route.h3}"`, () => { beforeEach('Log in the user', () => { @@ -9,4 +10,19 @@ describe(`Checks admin system "${route.h3}"`, () => { it(`tests classes and title`, () => { cy.adminTestRoute(route); }); + + it('tests to disable a CMS page that is used in config', () => { + cy.log('Select a CMS page'); + cy.get(route._gridTable) + .contains('td', 'no-route') + .click(); + + cy.log('Disable the CMS page'); + cy.get('#page_is_active') + .select('Disabled'); + + validation.saveAction(route._buttonSaveAndContinue); + cy.get(validation._warningMessage).should('include.text', 'Cannot disable page, it is used in configuration'); + cy.get(validation._successMessage).should('include.text', 'The page has been saved.'); + }); }); \ No newline at end of file diff --git a/cypress/support/openmage/config/paths.js b/cypress/support/openmage/config/paths.js index 2470f01ecf2..22bae2671bb 100644 --- a/cypress/support/openmage/config/paths.js +++ b/cypress/support/openmage/config/paths.js @@ -73,6 +73,10 @@ cy.testRoutes = { url: 'cms_page/index', h3: 'Manage Pages', _h3: adminPage._h3, + _gridTable: '#cmsPageGrid_table', + _buttonReset: '.form-buttons button[title="Rest"]', + _buttonSave: '.form-buttons button[title="Save Page"]', + _buttonSaveAndContinue: '.form-buttons button[title="Save and Continue Edit"]', }, widget: { _id_parent: adminNav.cms, From 56e50f233cefe213e90ab2a64c5fba8c40308a4d Mon Sep 17 00:00:00 2001 From: Sven Reichel Date: Sat, 4 Oct 2025 06:16:48 +0200 Subject: [PATCH 2/5] Added option to install development sample-data to ddev install command --- .ddev/commands/web/openmage-install | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/.ddev/commands/web/openmage-install b/.ddev/commands/web/openmage-install index 111d94e2511..af1cad724ec 100755 --- a/.ddev/commands/web/openmage-install +++ b/.ddev/commands/web/openmage-install @@ -3,8 +3,8 @@ ## ProjectTypes: magento ## Description: Install OpenMage ## Usage: openmage-install [-d|--default] [-s|--sampledata] [-k|--keep] [-q|--quiet] -## Example: ddev openmage-install -d -s -k -## Flags: [{"Name":"default","Shorthand":"d","Usage":"use default values"},{"Name":"sampledata","Shorthand":"s","Usage":"install sample data"},{"Name":"keep","Shorthand":"k","Usage":"keep sample data package"},{"Name":"quiet","Shorthand":"q","Usage":"silent install with sample data"}] +## Example: ddev openmage-install -d -s -k -x +## Flags: [{"Name":"default","Shorthand":"d","Usage":"use default values"},{"Name":"sampledata","Shorthand":"s","Usage":"install sample data"},{"Name":"keep","Shorthand":"k","Usage":"keep sample data package"},{"Name":"quiet","Shorthand":"q","Usage":"silent install with sample data"},{"Name":"extra","Shorthand":"x","Usage":"install with updated sample data (ddev)"}] ROOT="${PWD}" @@ -26,6 +26,8 @@ while :; do USE_DEFAULT_FLAG='true' SAMPLE_DATA_FLAG='true' ;; + -x|--extra) + SAMPLE_DATA_EXTRA_FLAG='true' ;; --) # End of all options. shift break @@ -69,10 +71,14 @@ else fi if [[ $INSTALL_SAMPLE_DATA =~ ^(yes|y) ]]; then - SAMPLE_DATA_URL=https://github.com/Vinai/compressed-magento-sample-data/raw/master/compressed-magento-sample-data-1.9.2.4.tgz SAMPLE_DATA_DIRECTORY="${ROOT}/.ddev/.sampleData" + + SAMPLE_DATA_URL=https://github.com/Vinai/compressed-magento-sample-data/raw/master/compressed-magento-sample-data-1.9.2.4.tgz SAMPLE_DATA_FILE=sample_data.tgz + SAMPLE_DATA_OM_URL=https://github.com/sreichel/openmage-sample-data/blob/main/src/sample-data.sql?raw=true + SAMPLE_DATA_OM_FILE=sample_data_om.sql + if [[ ! -d "${SAMPLE_DATA_DIRECTORY}" ]]; then echo "Creating Sample Data directory..." mkdir -p "${SAMPLE_DATA_DIRECTORY}" @@ -84,6 +90,13 @@ if [[ $INSTALL_SAMPLE_DATA =~ ^(yes|y) ]]; then wget "${SAMPLE_DATA_URL}" -O "${SAMPLE_DATA_FILE}" fi +if [[ "${SAMPLE_DATA_EXTRA_FLAG}" ]]; then + if [[ ! -f "${SAMPLE_DATA_DIRECTORY}/${SAMPLE_DATA_OM_FILE}" ]]; then + echo "Downloading extra Sample Data..." + wget "${SAMPLE_DATA_OM_URL}" -O "${SAMPLE_DATA_OM_FILE}" + fi +fi + echo "Uncompressing Sample Data..." tar xf "${SAMPLE_DATA_FILE}" @@ -96,14 +109,18 @@ if [[ $INSTALL_SAMPLE_DATA =~ ^(yes|y) ]]; then rm -rf "${ROOT}"/"${DDEV_DOCROOT}/var/cache/"* echo "Importing Sample Data into the database..." - mysql -u db -pdb -h db db < "${SAMPLE_DATA_DIRECTORY}"/magento-sample-data-1.9.2.4/magento_sample_data_for_1.9.2.4.sql + if [[ "${SAMPLE_DATA_EXTRA_FLAG}" ]]; then + mysql -u db -pdb -h db db < "${SAMPLE_DATA_DIRECTORY}/${SAMPLE_DATA_OM_FILE}" + else + mysql -u db -pdb -h db db < "${SAMPLE_DATA_DIRECTORY}"/magento-sample-data-1.9.2.4/magento_sample_data_for_1.9.2.4.sql + fi # remove sample data if [[ "${SAMPLE_DATA_KEEP_FLAG}" ]]; then # shellcheck disable=SC2046 cd "${ROOT}" || exit echo "Removing uncompressed files..." - rm -rf magento-sample-data-1.9.2.4/ + rm -rf "${SAMPLE_DATA_DIRECTORY}"/magento-sample-data-1.9.2.4/ else cd "${ROOT}" || exit echo "Removing sample data..." From 547d8725d2c4756edf1ef8949b750187b441a6bd Mon Sep 17 00:00:00 2001 From: Sven Reichel Date: Sat, 4 Oct 2025 06:42:54 +0200 Subject: [PATCH 3/5] Added test --- cypress/e2e/openmage/backend/cms/page.cy.js | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/cypress/e2e/openmage/backend/cms/page.cy.js b/cypress/e2e/openmage/backend/cms/page.cy.js index 8f68ac6a05d..15e7d363112 100644 --- a/cypress/e2e/openmage/backend/cms/page.cy.js +++ b/cypress/e2e/openmage/backend/cms/page.cy.js @@ -25,4 +25,27 @@ describe(`Checks admin system "${route.h3}"`, () => { cy.get(validation._warningMessage).should('include.text', 'Cannot disable page, it is used in configuration'); cy.get(validation._successMessage).should('include.text', 'The page has been saved.'); }); + + it('tests to un-asign a CMS page that is used in config', () => { + cy.log('Select a CMS page'); + cy.get(route._gridTable) + .contains('td', 'no-route') + .click(); + + cy.log('Asign another store to the CMS page'); + cy.get('#page_store_id') + .select(4); + + validation.saveAction(route._buttonSaveAndContinue); + cy.get(validation._successMessage).should('include.text', 'The page has been saved.'); + + cy.log('Restore the default store to the CMS page'); + cy.get('#page_store_id') + .select([1, 2, 3]); + + validation.saveAction(route._buttonSaveAndContinue); + // @todo: fix needed - this test passes because of a Magento bug + cy.get(validation._successMessage).should('include.text', 'The page has been saved.'); + + }); }); \ No newline at end of file From 4b9c9258cd5c25dc1ff235e7c9d279754a0301fc Mon Sep 17 00:00:00 2001 From: Sven Reichel Date: Sat, 4 Oct 2025 06:45:33 +0200 Subject: [PATCH 4/5] Updated cypress workflow (?) --- .github/workflows/cypress.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 6e4c931b169..74d7808c48e 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -27,7 +27,7 @@ jobs: - run: ddev composer install # install openmage - - run: ddev openmage-install -q + - run: ddev openmage-install -q -x # install cypress-addon - run: ddev add-on get tyler36/ddev-cypress From 72f50baea639c591e7be8a6629a4178a74ebce95 Mon Sep 17 00:00:00 2001 From: Sven Reichel Date: Sat, 4 Oct 2025 06:51:18 +0200 Subject: [PATCH 5/5] [skip-ci] comment --- cypress/e2e/openmage/backend/cms/page.cy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/e2e/openmage/backend/cms/page.cy.js b/cypress/e2e/openmage/backend/cms/page.cy.js index 15e7d363112..094a7932476 100644 --- a/cypress/e2e/openmage/backend/cms/page.cy.js +++ b/cypress/e2e/openmage/backend/cms/page.cy.js @@ -37,6 +37,7 @@ describe(`Checks admin system "${route.h3}"`, () => { .select(4); validation.saveAction(route._buttonSaveAndContinue); + // @todo: fix needed - this test passes because of a Magento bug cy.get(validation._successMessage).should('include.text', 'The page has been saved.'); cy.log('Restore the default store to the CMS page'); @@ -44,7 +45,6 @@ describe(`Checks admin system "${route.h3}"`, () => { .select([1, 2, 3]); validation.saveAction(route._buttonSaveAndContinue); - // @todo: fix needed - this test passes because of a Magento bug cy.get(validation._successMessage).should('include.text', 'The page has been saved.'); });