138 lines
4.6 KiB
JavaScript
138 lines
4.6 KiB
JavaScript
require('module-alias/register');
|
|
require('@root/globals.js');
|
|
|
|
const {expect} = require('chai');
|
|
const helper = require('prestashop_test_lib/kernel/utils/helpers');
|
|
|
|
// Get resolver
|
|
const VersionSelectResolver = require('prestashop_test_lib/kernel/resolvers/versionSelectResolver');
|
|
|
|
const configClassMap = require('@root/configClassMap.js');
|
|
|
|
const versionSelectResolver = new VersionSelectResolver(global.PS_RESOLVER_VERSION.FROM, configClassMap);
|
|
const newVersionSelectResolver = new VersionSelectResolver(global.PS_RESOLVER_VERSION.TO, configClassMap);
|
|
|
|
// Import pages
|
|
const loginPage = versionSelectResolver.require('BO/login/index.js');
|
|
const dashboardPage = versionSelectResolver.require('BO/dashboard/index.js');
|
|
const moduleManagerPage = versionSelectResolver.require('BO/modules/moduleManager/index.js');
|
|
const upgradeModulePage = versionSelectResolver.require('BO/modules/autoupgrade/index.js');
|
|
const newLoginPage = newVersionSelectResolver.require('BO/login/index.js');
|
|
|
|
// Browser vars
|
|
let browserContext;
|
|
let page;
|
|
|
|
let failedStepNumber = 1;
|
|
|
|
const moduleData = {
|
|
name: '1-Click Upgrade',
|
|
tag: 'autoupgrade',
|
|
downloadFolder: 'modules/autoupgrade/download',
|
|
};
|
|
|
|
/*
|
|
Go to login page
|
|
Check PS version
|
|
Upgrade
|
|
Log out
|
|
Check new version
|
|
*/
|
|
// eslint-disable-next-line max-len
|
|
describe(`[${global.AUTOUPGRADE_VERSION}] Upgrade PrestaShop from '${global.PS_VERSION}' to '${global.PS_VERSION_UPGRADE_TO}'`, async () => {
|
|
// before and after functions
|
|
before(async function () {
|
|
browserContext = await helper.createBrowserContext(this.browser);
|
|
|
|
page = await helper.newTab(browserContext);
|
|
});
|
|
|
|
after(async () => {
|
|
await helper.closeBrowserContext(browserContext);
|
|
});
|
|
|
|
afterEach(async function () {
|
|
if (this.currentTest.state === 'failed') {
|
|
await page.screenshot({path: `./screenshots/failed-step-${failedStepNumber}.png`, fullPage: true});
|
|
failedStepNumber += 1;
|
|
}
|
|
});
|
|
|
|
it('should go to login page', async () => {
|
|
await loginPage.goTo(page, global.BO.URL);
|
|
|
|
const pageTitle = await loginPage.getPageTitle(page);
|
|
await expect(pageTitle).to.contains(loginPage.pageTitle);
|
|
});
|
|
|
|
it('should check PS version', async () => {
|
|
const psVersion = await loginPage.getPrestashopVersion(page);
|
|
await expect(psVersion).to.contains(global.PS_VERSION);
|
|
});
|
|
|
|
it('should login into BO with default user', async () => {
|
|
await loginPage.login(page, global.BO.EMAIL, global.BO.PASSWD);
|
|
await dashboardPage.closeOnboardingModal(page);
|
|
|
|
const pageTitle = await dashboardPage.getPageTitle(page);
|
|
await expect(pageTitle).to.contains(dashboardPage.pageTitle);
|
|
});
|
|
|
|
it('should go to modules manager page', async () => {
|
|
await dashboardPage.goToSubMenu(
|
|
page,
|
|
dashboardPage.modulesParentLink,
|
|
dashboardPage.moduleManagerLink,
|
|
);
|
|
|
|
const pageTitle = await moduleManagerPage.getPageTitle(page);
|
|
await expect(pageTitle).to.contains(moduleManagerPage.pageTitle);
|
|
});
|
|
|
|
it('should go to module configuration page', async () => {
|
|
await moduleManagerPage.searchModule(page, moduleData.tag, moduleData.name);
|
|
await moduleManagerPage.goToConfigurationPage(page, moduleData.name);
|
|
|
|
const pageTitle = await upgradeModulePage.getPageTitle(page);
|
|
await expect(pageTitle).to.contains(upgradeModulePage.pageTitle);
|
|
});
|
|
|
|
it('should fill \'Expert mode\' form', async () => {
|
|
const textResult = await upgradeModulePage.fillExpertModeForm(
|
|
page,
|
|
'Local archive',
|
|
global.ZIP_NAME,
|
|
global.PS_VERSION_UPGRADE_TO,
|
|
);
|
|
|
|
await expect(textResult).to.contain(upgradeModulePage.configResultValidationMessage);
|
|
});
|
|
|
|
it('should put the shop under maintenance and check if the checklist is all green', async () => {
|
|
await upgradeModulePage.putShopUnderMaintenance(page);
|
|
|
|
for (let i = 1; i <= 10; i++) {
|
|
const textResult = await upgradeModulePage.getRowImageContent(page, i);
|
|
await expect(textResult).to.equal('ok');
|
|
}
|
|
});
|
|
|
|
it('should click on \'UPGRADE PRESTASHOP NOW\' and wait for the upgrade', async () => {
|
|
const testResult = await upgradeModulePage.upgradePrestaShopNow(page);
|
|
await expect(testResult).to.equal(upgradeModulePage.upgradeValidationMessage);
|
|
});
|
|
|
|
it('should log out from BO', async () => {
|
|
await upgradeModulePage.logoutBO(page);
|
|
|
|
await newLoginPage.reloadPage(page);
|
|
const pageTitle = await newLoginPage.getPageTitle(page);
|
|
await expect(pageTitle).to.contains(newLoginPage.pageTitle);
|
|
});
|
|
|
|
it('should check PS version', async () => {
|
|
const psVersion = await newLoginPage.getPrestashopVersion(page);
|
|
await expect(psVersion).to.contains(global.PS_VERSION_UPGRADE_TO);
|
|
});
|
|
});
|