UNPKG

@mintlify/previewing

Version:

Preview Mintlify docs locally

40 lines (39 loc) 2.47 kB
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# Test Content`; 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# Test Content`; 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# Test Content`; const updatedContent = `---\ntitle: "Updated Test Page"\ndescription: "A test page"\n---\n# Test Content`; 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# Original Content`; const updatedContent = `---\ntitle: "Test Page"\ndescription: "A test page"\n---\n# Updated Content`; 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); }); });