Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ protected function needToShow()
! $this->isDismissed() &&
current_user_can('administrator')
) {
$this->banners_handler->spbc->error_delete_all('save');

return true;
}

Expand Down
8 changes: 5 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
"babel-jest": "^29.7.0",
"babel-loader": "^8.2.5",
"babel-preset-env": "^1.7.0",
"dotenv": "^16.4.7",
"crypto-js": "^4.2.0",
"css-loader": "^7.1.2",
"dotenv": "^16.4.7",
"eslint": "^8.45.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-import": "^2.27.5",
Expand All @@ -31,14 +32,15 @@
"gulp-rename": "^1.4.0",
"gulp-sourcemaps": "^2.6.5",
"gulp-uglify": "^3.0.2",
"image-webpack-loader": "^8.1.0",
"jest": "^29.7.0",
"puppeteer": "^24.1.1",
"image-webpack-loader": "^8.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"style-loader": "^4.0.0",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"crypto-js": "^4.2.0"
"mysql2": "^3.15.3",
"php-serialize": "^5.1.3"
}
}
5 changes: 4 additions & 1 deletion spec/__tests__/topinfo.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
import {jestState} from '../form.spec';
import {__runLogin} from './login.test';
import {test} from '@jest/globals';
import {setTestError, clearTestError} from "../utils";
/**
* Run top info tests.
* @return {Promise<void>}
* @private
*/
async function __topInfoElementsExist() {
await setTestError({cron: {error: 'Hello there!', error_time: 1761251299}})
await jestState.page.goto(
jestState.envData.root + '/wp-admin/options-general.php?page=spbc&spbc_tab=settings_general',
{waitUntil: 'load'},
Expand All @@ -20,12 +22,13 @@ async function __topInfoElementsExist() {
'.spbc_page_header_info__block_body',
'.spbc_page_header_info__block_row',
'#spbc_page_header_about_block',
//'.spbc_page_header_info__error_block', //Situational check, you need to have an error block in the header
'.spbc_page_header_info__error_block',

];
for (let i = 0; i < topInfoElementsClasses.length; i++) {
await jestState.page.$eval(topInfoElementsClasses[i], (el) => el.innerText);
}
await clearTestError();
}

/**
Expand Down
38 changes: 38 additions & 0 deletions spec/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import dotenv from 'dotenv';
import {MD5} from "crypto-js";
import {expect, test} from '@jest/globals';
import {jestState} from './form.spec';
import mysql from 'mysql2/promise';
import {serialize, unserialize} from 'php-serialize';

// please, set path to .env file in the root of WP directory
// JEST_VAR__APP_ROOT=""
Expand Down Expand Up @@ -107,3 +109,39 @@ export async function getSettingState(settingName) {
}
return await getNumericValue(settingsSaveResult, settingName);
}

/**
* Get database connection
* @returns {Promise<mysql.Connection>}
*/
async function getDBConnection() {
const dbConfig = {
host: process.env.JEST_VAR__DB_HOST || 'localhost',
user: process.env.JEST_VAR__DB_USER || 'root',
password: process.env.JEST_VAR__DB_PASSWORD || '',
database: process.env.JEST_VAR__DB_NAME || 'wordpress',
port: process.env.JEST_VAR__DB_PORT || 3306
};

return await mysql.createConnection(dbConfig);
}

export async function setTestError(error) {
const connection = await getDBConnection();

try {
const [result] = await connection.execute(
`INSERT INTO wp_options (option_name, option_value) VALUES ('spbc_errors', ?)
ON DUPLICATE KEY UPDATE option_value = ?`,
[serialize(error), serialize(error)]
);

return result.insertId;
} finally {
await connection.end();
}
}

export async function clearTestError() {
await setTestError([]);
}