verify.test.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { describe, it, beforeEach } from 'node:test';
  2. import * as assert from 'node:assert/strict';
  3. import { collectPackageInfo } from '../dist/index.js';
  4. describe('collectPackageInfo', () => {
  5. const context = {
  6. cwd: '',
  7. version: 'latest',
  8. packageManager: 'npm',
  9. dryRun: true,
  10. packages: [],
  11. };
  12. beforeEach(() => {
  13. context.packages = [];
  14. });
  15. it('detects astro', async () => {
  16. collectPackageInfo(context, { astro: '1.0.0' }, {});
  17. assert.deepEqual(context.packages, [
  18. { name: 'astro', currentVersion: '1.0.0', targetVersion: 'latest' },
  19. ]);
  20. });
  21. it('detects @astrojs', async () => {
  22. collectPackageInfo(context, { '@astrojs/preact': '1.0.0' }, {});
  23. assert.deepEqual(context.packages, [
  24. { name: '@astrojs/preact', currentVersion: '1.0.0', targetVersion: 'latest' },
  25. ]);
  26. });
  27. it('supports ^ prefixes', async () => {
  28. collectPackageInfo(context, { astro: '^1.0.0' }, {});
  29. assert.deepEqual(context.packages, [
  30. { name: 'astro', currentVersion: '^1.0.0', targetVersion: 'latest' },
  31. ]);
  32. });
  33. it('supports ~ prefixes', async () => {
  34. collectPackageInfo(context, { astro: '~1.0.0' }, {});
  35. assert.deepEqual(context.packages, [
  36. { name: 'astro', currentVersion: '~1.0.0', targetVersion: 'latest' },
  37. ]);
  38. });
  39. it('supports prereleases', async () => {
  40. collectPackageInfo(context, { astro: '1.0.0-beta.0' }, {});
  41. assert.deepEqual(context.packages, [
  42. { name: 'astro', currentVersion: '1.0.0-beta.0', targetVersion: 'latest' },
  43. ]);
  44. });
  45. it('ignores self', async () => {
  46. collectPackageInfo(context, { '@astrojs/upgrade': '0.0.1' }, {});
  47. assert.deepEqual(context.packages, []);
  48. });
  49. it('ignores linked packages', async () => {
  50. collectPackageInfo(context, { '@astrojs/preact': 'link:../packages/preact' }, {});
  51. assert.deepEqual(context.packages, []);
  52. });
  53. it('ignores workspace packages', async () => {
  54. collectPackageInfo(context, { '@astrojs/preact': 'workspace:*' }, {});
  55. assert.deepEqual(context.packages, []);
  56. });
  57. it('ignores github packages', async () => {
  58. collectPackageInfo(context, { '@astrojs/preact': 'github:withastro/astro' }, {});
  59. assert.deepEqual(context.packages, []);
  60. });
  61. it('ignores tag', async () => {
  62. collectPackageInfo(context, { '@astrojs/preact': 'beta' }, {});
  63. assert.deepEqual(context.packages, []);
  64. });
  65. });