|
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); |
|
}); |
|
}); |
|
|