| import { describe, expect, it } from 'vitest'; |
| import { stripCodeFenceFromArtifact } from './Markdown'; |
|
|
| describe('stripCodeFenceFromArtifact', () => { |
| it('should remove code fences around artifact element', () => { |
| const input = "```xml\n<div class='__boltArtifact__'></div>\n```"; |
| const expected = "\n<div class='__boltArtifact__'></div>\n"; |
| expect(stripCodeFenceFromArtifact(input)).toBe(expected); |
| }); |
|
|
| it('should handle code fence with language specification', () => { |
| const input = "```typescript\n<div class='__boltArtifact__'></div>\n```"; |
| const expected = "\n<div class='__boltArtifact__'></div>\n"; |
| expect(stripCodeFenceFromArtifact(input)).toBe(expected); |
| }); |
|
|
| it('should not modify content without artifacts', () => { |
| const input = '```\nregular code block\n```'; |
| expect(stripCodeFenceFromArtifact(input)).toBe(input); |
| }); |
|
|
| it('should handle empty input', () => { |
| expect(stripCodeFenceFromArtifact('')).toBe(''); |
| }); |
|
|
| it('should handle artifact without code fences', () => { |
| const input = "<div class='__boltArtifact__'></div>"; |
| expect(stripCodeFenceFromArtifact(input)).toBe(input); |
| }); |
|
|
| it('should handle multiple artifacts but only remove fences around them', () => { |
| const input = [ |
| 'Some text', |
| '```typescript', |
| "<div class='__boltArtifact__'></div>", |
| '```', |
| '```', |
| 'regular code', |
| '```', |
| ].join('\n'); |
|
|
| const expected = ['Some text', '', "<div class='__boltArtifact__'></div>", '', '```', 'regular code', '```'].join( |
| '\n', |
| ); |
|
|
| expect(stripCodeFenceFromArtifact(input)).toBe(expected); |
| }); |
| }); |
|
|