/ src / update-check.test.ts
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  });