update-check.test.ts
1 import { describe, expect, it } from 'vitest'; 2 import { _extractLatestExtensionVersionFromReleases as extractLatestExtensionVersionFromReleases } from './update-check.js'; 3 4 describe('extractLatestExtensionVersionFromReleases', () => { 5 it('reads the extension version from a versioned asset on a normal CLI release', () => { 6 expect( 7 extractLatestExtensionVersionFromReleases([ 8 { 9 tag_name: 'v1.7.3', 10 assets: [ 11 { name: 'opencli-extension.zip' }, 12 { name: 'opencli-extension-v1.0.2.zip' }, 13 ], 14 }, 15 ]), 16 ).toBe('1.0.2'); 17 }); 18 19 it('falls back to ext-v tags for extension-only releases', () => { 20 expect( 21 extractLatestExtensionVersionFromReleases([ 22 { 23 tag_name: 'ext-v1.1.0', 24 assets: [{ name: 'opencli-extension.zip' }], 25 }, 26 ]), 27 ).toBe('1.1.0'); 28 }); 29 30 it('returns undefined when no extension version source exists', () => { 31 expect( 32 extractLatestExtensionVersionFromReleases([ 33 { 34 tag_name: 'v1.7.3', 35 assets: [{ name: 'opencli-extension.zip' }], 36 }, 37 ]), 38 ).toBeUndefined(); 39 }); 40 });