import React from 'react'; import { extractTextFromReactNode } from '../extract-text-react-node'; describe('extractTextFromReactNode', () => { it('从字符串节点中提取文本', () => { expect(extractTextFromReactNode('Hello, World!')).toBe('Hello, World!'); }); it('从数字节点中提取文本', () => { expect(extractTextFromReactNode(12345)).toBe('12345'); }); it('从简单的 React 元素中提取文本', () => { expect(extractTextFromReactNode(
Simple Text
)).toBe( 'Simple Text', ); }); it('递归提取嵌套 React 元素中的文本', () => { const nested = (
Hello World
); expect(extractTextFromReactNode(nested)).toBe('Hello World'); }); it('从数组节点中提取文本', () => { const nodeArray = ['Text1', Text2, 'Text3']; expect(extractTextFromReactNode(nodeArray)).toBe('Text1Text2Text3'); }); it('从混合类型的 React 子节点中提取文本', () => { const mixed = (
Text and more text!
); expect(extractTextFromReactNode(mixed)).toBe('Text and more text!'); }); it('当没有节点提供时返回空字符串', () => { expect(extractTextFromReactNode(undefined)).toBe(''); expect(extractTextFromReactNode(null)).toBe(''); }); it('截取超过 200 个字符的内容', () => { const longText = 'a'.repeat(300); expect(extractTextFromReactNode(longText)).toBe('a'.repeat(200)); }); it('正确处理包含超过 200 个字符的混合类型节点', () => { const mixed = (
{'a'.repeat(100)} {'b'.repeat(120)} {'c'.repeat(150)}
); expect(extractTextFromReactNode(mixed)).toBe( 'a'.repeat(100) + 'b'.repeat(100), ); }); });