152 lines
3.6 KiB
TypeScript
152 lines
3.6 KiB
TypeScript
import { DOCS_PATH } from '@/app/constants';
|
|
import {
|
|
getCopyPath,
|
|
getExamplePath,
|
|
} from '@/app/lib/markdoc';
|
|
import { Doc } from '@/app/types/types';
|
|
import path from 'path';
|
|
|
|
describe('Markdoc lib functions', () => {
|
|
describe('getCopyPath', () => {
|
|
const version = 'v1.0.0';
|
|
const doc: Doc = {
|
|
title: 'Title',
|
|
folder: 'folder',
|
|
copy: 'copy.md',
|
|
};
|
|
const docPath = 'path/to/doc';
|
|
|
|
it('returns empty string if doc.copy is undefined', () => {
|
|
const doc: Doc = {
|
|
title: 'Title',
|
|
folder: 'folder',
|
|
};
|
|
const result = getCopyPath(version, doc, docPath);
|
|
expect(result).toEqual('');
|
|
});
|
|
|
|
it('returns correct copy path', () => {
|
|
const result = getCopyPath(version, doc, docPath);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
version,
|
|
docPath,
|
|
doc.copy!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
|
|
it('returns correct copy path with leading/trailing slashes in docPath', () => {
|
|
const result = getCopyPath(
|
|
version,
|
|
doc,
|
|
'/path/to/doc/'
|
|
);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
version,
|
|
docPath,
|
|
doc.copy!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
|
|
it('returns correct copy path with different version', () => {
|
|
const result = getCopyPath('v2.0.0', doc, docPath);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
'v2.0.0',
|
|
docPath,
|
|
doc.copy!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
|
|
it('returns correct copy path with nested docPath', () => {
|
|
const result = getCopyPath(
|
|
version,
|
|
doc,
|
|
'path/to/nested/doc'
|
|
);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
version,
|
|
'path/to/nested/doc',
|
|
doc.copy!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getExamplePath', () => {
|
|
const version = 'v1.0.0';
|
|
const doc: Doc = {
|
|
title: 'Title',
|
|
folder: 'folder',
|
|
example: 'example.md',
|
|
};
|
|
const docPath = 'path/to/doc';
|
|
|
|
it('returns empty string if doc.example is undefined', () => {
|
|
const doc: Doc = {
|
|
title: 'Title',
|
|
folder: 'folder',
|
|
};
|
|
const result = getExamplePath(version, doc, docPath);
|
|
expect(result).toEqual('');
|
|
});
|
|
|
|
it('returns correct example path', () => {
|
|
const result = getExamplePath(version, doc, docPath);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
version,
|
|
docPath,
|
|
doc.example!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
|
|
it('returns correct example path with leading/trailing slashes in docPath', () => {
|
|
const result = getExamplePath(
|
|
version,
|
|
doc,
|
|
'/path/to/doc/'
|
|
);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
version,
|
|
docPath,
|
|
doc.example!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
|
|
it('returns correct example path with different version', () => {
|
|
const result = getExamplePath('v2.0.0', doc, docPath);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
'v2.0.0',
|
|
docPath,
|
|
doc.example!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
|
|
it('returns correct example path with nested docPath', () => {
|
|
const result = getExamplePath(
|
|
version,
|
|
doc,
|
|
'path/to/nested/doc'
|
|
);
|
|
const expected = path.join(
|
|
DOCS_PATH,
|
|
version,
|
|
'path/to/nested/doc',
|
|
doc.example!
|
|
);
|
|
expect(result).toEqual(expected);
|
|
});
|
|
});
|
|
});
|