import { expect } from 'chai'; import { collectPackageInfo } from '../dist/index.js'; describe('collectPackageInfo', () => { const context = { cwd: '', version: 'latest', packageManager: 'npm', dryRun: true, packages: [], }; beforeEach(() => { context.packages = []; }); it('detects astro', async () => { collectPackageInfo(context, { astro: '1.0.0' }, {}); expect(context.packages).deep.equal([ { name: 'astro', currentVersion: '1.0.0', targetVersion: 'latest' }, ]); }); it('detects @astrojs', async () => { collectPackageInfo(context, { '@astrojs/preact': '1.0.0' }, {}); expect(context.packages).deep.equal([ { name: '@astrojs/preact', currentVersion: '1.0.0', targetVersion: 'latest' }, ]); }); it('supports ^ prefixes', async () => { collectPackageInfo(context, { astro: '^1.0.0' }, {}); expect(context.packages).deep.equal([ { name: 'astro', currentVersion: '^1.0.0', targetVersion: 'latest' }, ]); }); it('supports ~ prefixes', async () => { collectPackageInfo(context, { astro: '~1.0.0' }, {}); expect(context.packages).deep.equal([ { name: 'astro', currentVersion: '~1.0.0', targetVersion: 'latest' }, ]); }); it('supports prereleases', async () => { collectPackageInfo(context, { astro: '1.0.0-beta.0' }, {}); expect(context.packages).deep.equal([ { name: 'astro', currentVersion: '1.0.0-beta.0', targetVersion: 'latest' }, ]); }); it('ignores self', async () => { collectPackageInfo(context, { '@astrojs/upgrade': '0.0.1' }, {}); expect(context.packages).deep.equal([]); }); it('ignores linked packages', async () => { collectPackageInfo(context, { '@astrojs/preact': 'link:../packages/preact' }, {}); expect(context.packages).deep.equal([]); }); it('ignores workspace packages', async () => { collectPackageInfo(context, { '@astrojs/preact': 'workspace:*' }, {}); expect(context.packages).deep.equal([]); }); it('ignores github packages', async () => { collectPackageInfo(context, { '@astrojs/preact': 'github:withastro/astro' }, {}); expect(context.packages).deep.equal([]); }); it('ignores tag', async () => { collectPackageInfo(context, { '@astrojs/preact': 'beta' }, {}); expect(context.packages).deep.equal([]); }); });