Skip to content

Commit f5bf95d

Browse files
committed
Add test for map_javascript_npm_lookup
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 6357799 commit f5bf95d

2 files changed

Lines changed: 94 additions & 0 deletions

File tree

scanpipe/tests/__init__.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,55 @@ def make_resource_file(project, path, **extra):
145145
"version": "3.119",
146146
}
147147

148+
package_data3 = {
149+
"type": "npm",
150+
"namespace": "",
151+
"name": "luxon",
152+
"version": "1.27.0",
153+
"qualifiers": "",
154+
"subpath": "",
155+
"filename": "luxon-1.27.0.tgz",
156+
"package_content": "source_archive",
157+
"purl": "pkg:npm/luxon@1.27.0",
158+
"primary_language": "JavaScript",
159+
"description": "Immutable date wrapper",
160+
"release_date": None,
161+
"parties": [
162+
{
163+
"type": "person",
164+
"role": "author",
165+
"name": "Isaac Cambron",
166+
"email": None,
167+
"url": None,
168+
},
169+
{
170+
"type": "person",
171+
"role": "maintainer",
172+
"name": "icambron",
173+
"email": "icambron@gmail.com",
174+
"url": None,
175+
},
176+
],
177+
"keywords": ["date", "immutable"],
178+
"homepage_url": "https://github.com/moment/luxon#readme",
179+
"download_url": "https://registry.npmjs.org/luxon/-/luxon-1.27.0.tgz",
180+
"bug_tracking_url": "https://github.com/moment/luxon/issues",
181+
"code_view_url": None,
182+
"vcs_url": "https://packages.vcs.url",
183+
"repository_homepage_url": None,
184+
"repository_download_url": None,
185+
"api_data_url": None,
186+
"size": None,
187+
"md5": None,
188+
"sha1": "ae10c69113d85dab8f15f5e8390d0cbeddf4f00f",
189+
"sha256": None,
190+
"sha512": None,
191+
"copyright": "Copyright (c) JS Foundation and other contributors",
192+
"holder": None,
193+
"declared_license_expression": "mit",
194+
"declared_license_expression_spdx": "MIT",
195+
}
196+
148197
for_package_uid = "pkg:deb/debian/adduser@3.118?uuid=610bed29-ce39-40e7-92d6-fd8b"
149198

150199
dependency_data1 = {

scanpipe/tests/pipes/test_d2d.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@
3131
from scanpipe.models import CodebaseResource
3232
from scanpipe.models import Project
3333
from scanpipe.pipes import d2d
34+
from scanpipe.pipes import flag
3435
from scanpipe.pipes.input import copy_input
3536
from scanpipe.pipes.input import copy_inputs
3637
from scanpipe.tests import make_resource_file
3738
from scanpipe.tests import package_data1
39+
from scanpipe.tests import package_data3
3840

3941

4042
class ScanPipeD2DPipesTest(TestCase):
@@ -652,3 +654,46 @@ def test_scanpipe_pipes_d2d_map_javascript_path(self):
652654
relation = self.project1.codebaserelations.all()
653655
self.assertEqual(from_resource, relation[0].from_resource)
654656
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

Comments
 (0)