Hello Placeholder
'; $data = [['id' => '123', 'value' => 'World']]; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('Hello World
'); }); test('it handles multiple mentions', function () { $content = 'Name is Age years old
'; $data = [ ['id' => '123', 'value' => 'John'], ['id' => '456', 'value' => 30], ]; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('John is 30 years old
'); }); test('it uses fallback when value is not found', function () { $content = 'Hello Placeholder
'; $data = []; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('Hello Friend
'); }); test('it removes mention element when no value and no fallback', function () { $content = 'Hello Placeholder
'; $data = []; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('Hello
'); }); test('it handles array values', function () { $content = 'Tags: Placeholder
'; $data = [['id' => '123', 'value' => ['PHP', 'Laravel', 'Testing']]]; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('Tags: PHP, Laravel, Testing
'); }); test('it preserves HTML structure', function () { $content = 'Hello Placeholder
How are you?
Hello World
How are you?
こんにちは Placeholder
'; $data = [['id' => '123', 'value' => '世界']]; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('こんにちは 世界
'); }); test('it handles content without surrounding paragraph tags', function () { $content = 'some text Post excerpt dewde'; $data = [['id' => '123', 'value' => 'replaced text']]; $parser = new MentionParser($content, $data); $result = $parser->parse(); expect($result)->toBe('some text replaced text dewde'); });