From 68fd7dfc7ec13fdc86a9fc44932a332d1d51410d Mon Sep 17 00:00:00 2001 From: Francesco Bigiarini Date: Wed, 12 Nov 2025 17:08:39 +0100 Subject: [PATCH] Resolve not passed version and additional debug informations --- packages/playground/common/src/index.ts | 3 ++- packages/playground/wordpress/src/index.ts | 7 +++++-- .../src/test/resolve-wordpress-release.spec.ts | 16 +++++++++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/playground/common/src/index.ts b/packages/playground/common/src/index.ts index ff18372f97..fb5455b998 100644 --- a/packages/playground/common/src/index.ts +++ b/packages/playground/common/src/index.ts @@ -66,7 +66,8 @@ export const unzipFile = async ( $zip->close(); chmod($extractTo, 0777); } else { - throw new Exception("Could not unzip file: " . $zip->getStatusString()); + $fileSize = file_exists($zipPath) ? filesize($zipPath) : 'unknown'; + throw new Exception("Could not unzip file. Error code: " . $res . ". File size: " . $fileSize . " bytes."); } } unzip(${js.zipPath}, ${js.extractToPath}, ${js.overwriteFiles}); diff --git a/packages/playground/wordpress/src/index.ts b/packages/playground/wordpress/src/index.ts index 28db472a25..77c0155a77 100644 --- a/packages/playground/wordpress/src/index.ts +++ b/packages/playground/wordpress/src/index.ts @@ -649,7 +649,9 @@ const memoizedFetch = createMemoizedFetch(fetch); * @returns The resolved WordPress release URL and version string. */ export async function resolveWordPressRelease(versionQuery = 'latest') { - if ( + if (versionQuery === null) { + versionQuery = 'latest'; + } else if ( versionQuery.startsWith('https://') || versionQuery.startsWith('http://') ) { @@ -692,7 +694,8 @@ export async function resolveWordPressRelease(versionQuery = 'latest') { }; } else if ( versionQuery === 'latest' && - !apiVersion.version.includes('beta') + !apiVersion.version.includes('beta') && + !apiVersion.version.includes('RC') ) { // The first non-beta item in the list is the latest version. return { diff --git a/packages/playground/wordpress/src/test/resolve-wordpress-release.spec.ts b/packages/playground/wordpress/src/test/resolve-wordpress-release.spec.ts index bc165ae6b8..2e7b3356f4 100644 --- a/packages/playground/wordpress/src/test/resolve-wordpress-release.spec.ts +++ b/packages/playground/wordpress/src/test/resolve-wordpress-release.spec.ts @@ -28,6 +28,11 @@ const mockApiResponse = { download: 'https://wordpress.org/wordpress-6.9-beta1.zip', response: 'autoupdate', }, + { + version: '6.9-RC1', + download: 'https://wordpress.org/wordpress-6.9-RC1.zip', + response: 'autoupdate', + }, ], }; @@ -55,7 +60,7 @@ describe('resolveWordPressRelease', () => { mockFetch.mockClear(); }); - it('resolves latest to the first non-beta version', async () => { + it('resolves latest to the first non-beta or release candidate version', async () => { const result = await resolveWordPressRelease('latest'); expect(result.version).toBe('6.8.3'); expect(result.releaseUrl).toBe( @@ -161,4 +166,13 @@ describe('resolveWordPressRelease', () => { expect(result.releaseUrl).toBe(customUrl); expect(result.source).toBe('inferred'); }); + + it('resolves null version to the first non-beta or release candidate version', async () => { + const result = await resolveWordPressRelease(null as any); + expect(result.version).toBe('6.8.3'); + expect(result.releaseUrl).toBe( + 'https://wordpress.org/wordpress-6.8.3.zip' + ); + expect(result.source).toBe('api'); + }); });