@mintlify/previewing
Version:
Preview Mintlify docs locally
40 lines (39 loc) • 2.47 kB
JavaScript
import { describe, it, expect, beforeEach } from 'vitest';
import { shouldRegenerateNavForPage } from '../local-preview/listener/utils.js';
describe('shouldRegenerateNavForPage', () => {
let frontmatterHashes;
beforeEach(() => {
frontmatterHashes = new Map();
});
it('should return true for first-time file processing', async () => {
const content = `---\ntitle: "Test Page"\ndescription: "A test page"\n---\n
const result = await shouldRegenerateNavForPage('test.mdx', content, frontmatterHashes);
expect(result).toBe(true);
});
it('should return false when frontmatter has not changed', async () => {
const content = `---\ntitle: "Test Page"\ndescription: "A test page"\n---\n
await shouldRegenerateNavForPage('test.mdx', content, frontmatterHashes);
const result = await shouldRegenerateNavForPage('test.mdx', content, frontmatterHashes);
expect(result).toBe(false);
});
it('should return true when frontmatter changes', async () => {
const originalContent = `---\ntitle: "Test Page"\ndescription: "A test page"\n---\n
const updatedContent = `---\ntitle: "Updated Test Page"\ndescription: "A test page"\n---\n
await shouldRegenerateNavForPage('test.mdx', originalContent, frontmatterHashes);
const result = await shouldRegenerateNavForPage('test.mdx', updatedContent, frontmatterHashes);
expect(result).toBe(true);
});
it('should return false when only content changes but frontmatter stays same', async () => {
const originalContent = `---\ntitle: "Test Page"\ndescription: "A test page"\n---\n
const updatedContent = `---\ntitle: "Test Page"\ndescription: "A test page"\n---\n
await shouldRegenerateNavForPage('test.mdx', originalContent, frontmatterHashes);
const result = await shouldRegenerateNavForPage('test.mdx', updatedContent, frontmatterHashes);
expect(result).toBe(false);
});
it('should handle files with no frontmatter', async () => {
const contentNoFrontmatter = '# Just a heading\n\nSome content';
await shouldRegenerateNavForPage('test.mdx', contentNoFrontmatter, frontmatterHashes);
const result = await shouldRegenerateNavForPage('test.mdx', contentNoFrontmatter, frontmatterHashes);
expect(result).toBe(false);
});
});