aboutsummaryrefslogtreecommitdiff
path: root/test/docs/versions.spec.ts
blob: 8c83e6578977a99ecf7da25c7f3fd8a332403a6e (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
import * as semver from 'semver';
import { describe, expect, it } from 'vitest';
import { oldVersions } from '../../docs/.vitepress/versions';

describe('docs versions', () => {
  describe('oldVersions', () => {
    it('should have a complete set of oldVersions', () => {
      expect(oldVersions.length).toBeGreaterThanOrEqual(2);

      expect(oldVersions[0]).toEqual({
        version: 'latest',
        link: 'https://fakerjs.dev/',
      });

      const versionEntry = oldVersions[1];
      if (versionEntry.version === 'next') {
        expect(versionEntry.link).toBe('https://next.fakerjs.dev/');
      }

      const releaseVersions = oldVersions.filter(({ version }) =>
        semver.valid(version)
      );
      const latestMajorRelease = semver.major(releaseVersions[0].version);
      for (let i = 0; i < releaseVersions.length; i++) {
        const { version, link } = releaseVersions[i];
        const oldMajorVersion = semver.major(version);
        expect(oldMajorVersion).toBe(latestMajorRelease - i);
        expect(link).toBe(`https://v${oldMajorVersion}.fakerjs.dev/`);
      }
    });
  });
});