()
| 390 | |
| 391 | #[test] |
| 392 | fn cross_file_parent_class() { |
| 393 | let (backend, _dir) = create_psr4_workspace( |
| 394 | r#"{ "autoload": { "psr-4": { "App\\": "src/" } } }"#, |
| 395 | &[ |
| 396 | ( |
| 397 | "src/Base.php", |
| 398 | r#"<?php |
| 399 | namespace App; |
| 400 | |
| 401 | class Base { |
| 402 | public function handle(): void {} |
| 403 | } |
| 404 | "#, |
| 405 | ), |
| 406 | ( |
| 407 | "src/Handler.php", |
| 408 | r#"<?php |
| 409 | namespace App; |
| 410 | |
| 411 | class Handler extends Base { |
| 412 | public function handle(): void {} |
| 413 | } |
| 414 | "#, |
| 415 | ), |
| 416 | ], |
| 417 | ); |
| 418 | |
| 419 | let base_uri = format!("file://{}", _dir.path().join("src/Base.php").display()); |
| 420 | let handler_uri = format!("file://{}", _dir.path().join("src/Handler.php").display()); |
| 421 | |
| 422 | let base_content = std::fs::read_to_string(_dir.path().join("src/Base.php")).unwrap(); |
| 423 | let handler_content = std::fs::read_to_string(_dir.path().join("src/Handler.php")).unwrap(); |
| 424 | |
| 425 | backend.update_ast(&base_uri, &base_content); |
| 426 | backend.update_ast(&handler_uri, &handler_content); |
| 427 | |
| 428 | let lenses = backend |
| 429 | .handle_code_lens(&handler_uri, &handler_content) |
| 430 | .unwrap_or_default(); |
| 431 | let titles = lens_titles(&lenses); |
| 432 | |
| 433 | assert_eq!(titles.len(), 1); |
| 434 | assert_eq!(titles[0], "↑ Base::handle"); |
| 435 | } |
| 436 | |
| 437 | // ─── Abstract Method Implementation ──────────────────────────────────────── |
| 438 |
nothing calls this directly
no test coverage detected