|
31 | 31 | from scanpipe.models import CodebaseResource |
32 | 32 | from scanpipe.models import Project |
33 | 33 | from scanpipe.pipes import d2d |
| 34 | +from scanpipe.pipes import flag |
34 | 35 | from scanpipe.pipes.input import copy_input |
35 | 36 | from scanpipe.pipes.input import copy_inputs |
36 | 37 | from scanpipe.tests import make_resource_file |
37 | 38 | from scanpipe.tests import package_data1 |
| 39 | +from scanpipe.tests import package_data3 |
38 | 40 |
|
39 | 41 |
|
40 | 42 | class ScanPipeD2DPipesTest(TestCase): |
@@ -652,3 +654,46 @@ def test_scanpipe_pipes_d2d_map_javascript_path(self): |
652 | 654 | relation = self.project1.codebaserelations.all() |
653 | 655 | self.assertEqual(from_resource, relation[0].from_resource) |
654 | 656 | self.assertEqual(from_resource, relation[1].from_resource) |
| 657 | + |
| 658 | + def test_scanpipe_pipes_d2d_map_javascript_npm_lookup(self): |
| 659 | + to_map = self.data_location / "d2d-javascript" / "to" / "main.js.map" |
| 660 | + to_mini = self.data_location / "d2d-javascript" / "to" / "main.js" |
| 661 | + to_dir = ( |
| 662 | + self.project1.codebase_path |
| 663 | + / "to/project.tar.zst/modules/apps/adaptive-media/" |
| 664 | + "adaptive-media-web/src/main/resources/META-INF/resources/" |
| 665 | + "node_modules/@adaptive-media-web$luxon@1.27.0" |
| 666 | + ) |
| 667 | + |
| 668 | + to_dir.mkdir(parents=True) |
| 669 | + copy_input(to_mini, to_dir) |
| 670 | + copy_input(to_map, to_dir) |
| 671 | + |
| 672 | + d2d.collect_and_create_codebase_resources(self.project1) |
| 673 | + |
| 674 | + to_map_resource = self.project1.codebaseresources.get( |
| 675 | + path=( |
| 676 | + "to/project.tar.zst/modules/apps/adaptive-media/" |
| 677 | + "adaptive-media-web/src/main/resources/META-INF/resources/" |
| 678 | + "node_modules/@adaptive-media-web$luxon@1.27.0/main.js.map" |
| 679 | + ) |
| 680 | + ) |
| 681 | + |
| 682 | + package_data = package_data3.copy() |
| 683 | + package_data["uuid"] = uuid.uuid4() |
| 684 | + |
| 685 | + d2d.create_package_from_purldb_data( |
| 686 | + self.project1, to_map_resource, package_data |
| 687 | + ) |
| 688 | + |
| 689 | + buffer = io.StringIO() |
| 690 | + d2d.map_javascript_npm_lookup( |
| 691 | + self.project1, |
| 692 | + logger=buffer.write, |
| 693 | + ) |
| 694 | + expected = "Mapping 1 to/ resources using javascript map against from/ codebase" |
| 695 | + self.assertIn(expected, buffer.getvalue()) |
| 696 | + |
| 697 | + result = self.project1.codebaseresources.filter(status=flag.NPM_LOOKUP).count() |
| 698 | + |
| 699 | + self.assertEqual(1, result) |
0 commit comments