HEX
Server: LiteSpeed
System: Linux server342.web-hosting.com 4.18.0-553.124.4.lve.el8.x86_64 #1 SMP Fri May 15 13:02:13 UTC 2026 x86_64
User: ksonpoau (1099)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //proc/self/cwd/wp-content/plugins/extendify/tests/unit/QuickEdit/lib/errors.test.js
// friendlyMessage collapses any Quick Edit save/load error down to one of two
// user-facing strings: an expired-session message when WP core rejects the
// REST nonce (rest_cookie_invalid_nonce), and a generic catch-all for
// everything else. The raw err.message keeps flowing to insights via track();
// only the displayed string is collapsed here.

import { friendlyMessage } from '@quick-edit/lib/errors';

const GENERIC =
	'Sorry, something went wrong. Please try again or try editing something else.';
const SESSION = 'Your session expired. Please refresh the page and try again.';

describe('friendlyMessage', () => {
	it('returns the session-expiry message for a rest_cookie_invalid_nonce body', () => {
		const err = new Error('Cookie check failed');
		err.status = 403;
		err.body = {
			code: 'rest_cookie_invalid_nonce',
			message: 'Cookie check failed',
		};
		expect(friendlyMessage(err)).toBe(SESSION);
	});

	it('returns the generic message for a raw backend error body', () => {
		const err = new Error('rawBlock must parse to exactly one block');
		err.status = 400;
		err.body = { error: 'rawBlock must parse to exactly one block' };
		expect(friendlyMessage(err)).toBe(GENERIC);
	});

	it('returns the generic message for an error with no body', () => {
		expect(friendlyMessage(new Error('Splice failed'))).toBe(GENERIC);
	});

	it('returns the generic message when called with no error', () => {
		expect(friendlyMessage()).toBe(GENERIC);
	});
});