aboutsummaryrefslogtreecommitdiff
path: root/scripts/docs/versions.test.ts
blob: c40ee8549e196170e6b12eb754b05edb6ddd0ace (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { describe, expect, test } from 'bun:test';
import { normalizeVersion, sortVersionsNewestFirst } from './versions.mjs';

describe('normalizeVersion', () => {
  test.each([
    ['0.7.5', '0.7.5'],
    ['v0.7.5', '0.7.5'],
  ])('normalizes %s', (input, expected) => {
    expect(normalizeVersion(input)).toBe(expected);
  });

  test('rejects non-release refs', () => {
    expect(() => normalizeVersion('preview-123')).toThrow();
  });
});

describe('sortVersionsNewestFirst', () => {
  test('sorts semantic versions numerically', () => {
    const versions = [
      { version: '0.6.10' },
      { version: '0.7.2' },
      { version: '0.7.10' },
      { version: '0.5.12' },
    ];

    expect(sortVersionsNewestFirst(versions).map(({ version }) => version)).toEqual([
      '0.7.10',
      '0.7.2',
      '0.6.10',
      '0.5.12',
    ]);
  });
});