HEX
Server: LiteSpeed
System: Linux server107.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: iddeczhh (1154)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/iddeczhh/public_html/wp-content/plugins/extendify/tests/unit/Agent/lib/redirects.test.js
const adminUrl = 'https://wordpress.test/wp-admin/';
const homeUrl = 'https://wordpress.test/';

let getRedirectUrl;

beforeEach(async () => {
	jest.resetModules();
	window.extSharedData = { adminUrl, homeUrl };
	window.extAgentData = {
		agentContext: {
			pluginRecommendations: [
				{
					slug: 'woocommerce',
					redirectTo: 'https://wordpress.test/wp-admin/admin.php?page=wc-setup',
				},
				{
					slug: 'no-redirect',
					redirectTo: '',
				},
			],
		},
	};
	const mod = await import('@agent/lib/redirects');
	getRedirectUrl = mod.getRedirectUrl;
});

describe('getRedirectUrl', () => {
	it('returns a full URL for a valid plugin-setup redirect', () => {
		const result = getRedirectUrl(
			{ type: 'plugin-setup' },
			{ pluginSlug: 'woocommerce' },
		);
		expect(result).toBe(
			'https://wordpress.test/wp-admin/admin.php?page=wc-setup',
		);
	});

	it('returns empty when redirectTo is falsy', () => {
		expect(getRedirectUrl(null, {})).toBe('');
		expect(getRedirectUrl(undefined, {})).toBe('');
		expect(getRedirectUrl('', {})).toBe('');
	});

	it('returns empty for an unknown redirect type', () => {
		const result = getRedirectUrl(
			{ type: 'unknown' },
			{ pluginSlug: 'woocommerce' },
		);
		expect(result).toBe('');
	});

	it('returns empty when plugin slug is not in recommendations', () => {
		const result = getRedirectUrl(
			{ type: 'plugin-setup' },
			{ pluginSlug: 'nonexistent' },
		);
		expect(result).toBe('');
	});

	it('returns empty when plugin has no redirectTo value', () => {
		const result = getRedirectUrl(
			{ type: 'plugin-setup' },
			{ pluginSlug: 'no-redirect' },
		);
		expect(result).toBe('');
		expect(console).toHaveErrored();
	});
});