blob: 5567fd7323ffab13b4cf4e6a2acd01020b8caa84 (
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
34
35
36
37
38
39
40
41
42
43
44
|
import { execSync } from 'node:child_process';
import * as semver from 'semver';
import { describe, expect, it } from 'vitest';
import { versionLinks } from '../../docs/.vitepress/versions';
function isFakerOrigin(): boolean {
try {
const originUrl = execSync('git remote get-url origin')
.toString('utf8')
.trim();
return (
originUrl === '[email protected]:faker-js/faker' ||
originUrl === '[email protected]:faker-js/faker.git' ||
originUrl === 'https://github.com/faker-js/faker' ||
originUrl === 'https://github.com/faker-js/faker.git'
);
} catch {
return false;
}
}
describe.runIf(isFakerOrigin())('docs versions', () => {
describe('oldVersions', () => {
it('should have a complete set of oldVersions', () => {
expect(versionLinks.length).toBeGreaterThanOrEqual(1);
const versionEntry = versionLinks[0];
if (versionEntry.version === 'next') {
expect(versionEntry.link).toBe('https://next.fakerjs.dev/');
}
const releaseVersions = versionLinks.filter(({ version }) =>
semver.valid(version)
);
const latestMajorRelease = semver.major(releaseVersions[0].version);
for (const [index, value] of releaseVersions.entries()) {
const { version, link } = value;
const oldMajorVersion = semver.major(version);
expect(oldMajorVersion).toBe(latestMajorRelease - index);
expect(link).toBe(`https://v${oldMajorVersion}.fakerjs.dev/`);
}
});
});
});
|