forked from vercel/streamdown
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadd_tests.py
More file actions
54 lines (48 loc) · 1.68 KB
/
Copy pathadd_tests.py
File metadata and controls
54 lines (48 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
content = open('packages/streamdown/__tests__/custom-renderer.test.tsx').read()
# The triple backtick strings - use chr(96)*3 to avoid issues
bt = chr(96) * 3
addition = f"""
it("passes meta prop to custom renderer when metastring is present", async () => {{
const MetaRenderer = ({{ meta }}: CustomRendererProps) => (
<div data-meta={{meta ?? ""}} data-testid="meta-renderer" />
);
const {{ container }} = render(
<Streamdown
plugins={{{{
renderers: [{{ language: "rust", component: MetaRenderer }}],
}}}}
>
{{'{bt}rust {{1}} title="foo"\\nlet x = 1;\\n{bt}'}}
</Streamdown>
);
await waitFor(() => {{
const el = container.querySelector('[data-testid="meta-renderer"]');
expect(el?.getAttribute("data-meta")).toBe('{{1}} title="foo"');
}});
}});
it("passes undefined meta when no metastring present", async () => {{
const MetaRenderer = ({{ meta }}: CustomRendererProps) => (
<div
data-has-meta={{meta !== undefined ? "true" : "false"}}
data-testid="meta-renderer"
/>
);
const {{ container }} = render(
<Streamdown
plugins={{{{
renderers: [{{ language: "rust", component: MetaRenderer }}],
}}}}
>
{{"{bt}rust\\nlet x = 1;\\n{bt}"}}
</Streamdown>
);
await waitFor(() => {{
const el = container.querySelector('[data-testid="meta-renderer"]');
expect(el?.getAttribute("data-has-meta")).toBe("false");
}});
}});
"""
idx = content.rfind('});')
new_content = content[:idx] + addition + content[idx:]
open('packages/streamdown/__tests__/custom-renderer.test.tsx', 'w').write(new_content)
print('done')