From 34088b0481dc9af536cc787b291ac0abfda96b79 Mon Sep 17 00:00:00 2001 From: yiliang114 Date: Wed, 8 Jul 2026 20:03:56 +0800 Subject: [PATCH] test(scripts): cover greenfield versions list E404 --- scripts/tests/get-release-version.test.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/scripts/tests/get-release-version.test.js b/scripts/tests/get-release-version.test.js index d7c470e7be..8c0f9eb70b 100644 --- a/scripts/tests/get-release-version.test.js +++ b/scripts/tests/get-release-version.test.js @@ -281,6 +281,28 @@ describe('getVersion', () => { expect(result.previousReleaseTag).toBe(''); }); + it('should handle E404 from versions list in true greenfield scenario', () => { + const mockGreenfieldVersionsE404 = (command) => { + if (command.includes('npm view') && command.includes('versions --json')) + throw new Error('npm error code E404'); + if ( + command.includes('npm view') && + command.includes('--tag=') && + !command.includes('versions --json') + ) { + throw new Error('npm error code E404'); + } + + return mockExecSync(command); + }; + vi.mocked(execSync).mockImplementation(mockGreenfieldVersionsE404); + + const result = getVersion({ type: 'stable' }); + expect(result.releaseVersion).toBe('0.8.0'); + expect(result.npmTag).toBe('latest'); + expect(result.previousReleaseTag).toBe(''); + }); + it('should derive baseline from versions list when dist-tag is missing but versions exist', () => { const mockWithVersionsButNoTag = (command) => { if (