|
1 | | -import { createRender } from '@/render' |
| 1 | +import { DynamicLoader, createRender, forge } from '@/render' |
2 | 2 | import { describe } from 'vitest' |
3 | 3 | import { expect } from 'vitest' |
4 | 4 | import { it } from 'vitest' |
@@ -104,4 +104,36 @@ describe('render', () => { |
104 | 104 | templatePath: 'non-existent.njk', |
105 | 105 | })).toThrow() |
106 | 106 | }) |
| 107 | + |
| 108 | + it('supports custom templates and paths', () => { |
| 109 | + const render = createRender() |
| 110 | + |
| 111 | + expect(forge('Hello {{name}}', { name: 'World' })).toBe('Hello World') |
| 112 | + |
| 113 | + expect(render.header({ template: 'Custom Header {{version}}', context: { version: '1.1.0' } })) |
| 114 | + .toBe('Custom Header 1.1.0') |
| 115 | + }) |
| 116 | + |
| 117 | + it('DynamicLoader.getSource returns null for unknown templates', () => { |
| 118 | + const loader = new DynamicLoader() |
| 119 | + expect(loader.getSource('unknown.njk')).toBeNull() |
| 120 | + }) |
| 121 | + |
| 122 | + it('supports custom templatePath in render', () => { |
| 123 | + const render = createRender() |
| 124 | + |
| 125 | + expect(render.header({ |
| 126 | + templatePath: 'header.md.njk', |
| 127 | + context: { version: '1.2.0' }, |
| 128 | + })).toContain('1.2.0') |
| 129 | + }) |
| 130 | + |
| 131 | + it('renders section with custom template', () => { |
| 132 | + const render = createRender() |
| 133 | + |
| 134 | + expect(render.section({ |
| 135 | + title: 'My Section', |
| 136 | + commits: [], |
| 137 | + }, { template: 'SECTION {{section.title}}' })).toBe('SECTION My Section') |
| 138 | + }) |
107 | 139 | }) |
0 commit comments