Skip to content

Commit ce3414a

Browse files
committed
Add graph tests
1 parent 6cb976f commit ce3414a

7 files changed

Lines changed: 263 additions & 0 deletions

File tree

npm_and_yarn/spec/dependabot/npm_and_yarn/dependency_grapher_spec.rb

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,74 @@
9898
end
9999
end
100100

101+
context "with an aliased dependency" do
102+
let(:dependency_files) { project_dependency_files("grapher/npm_with_alias") }
103+
104+
it "includes the real aliased package in resolved dependencies" do
105+
resolved_dependencies = grapher.resolved_dependencies
106+
107+
# The aliased package (is-number aliased as my-is-number) should appear
108+
# under its real name
109+
is_number = resolved_dependencies["pkg:npm/is-number@7.0.0"]
110+
expect(is_number).not_to be_nil
111+
expect(is_number.package_url).to eq("pkg:npm/is-number@7.0.0")
112+
expect(is_number.direct).to be(true)
113+
expect(is_number.runtime).to be(true)
114+
end
115+
116+
it "includes non-aliased dependencies normally" do
117+
resolved_dependencies = grapher.resolved_dependencies
118+
119+
etag = resolved_dependencies["pkg:npm/etag@1.8.1"]
120+
expect(etag).not_to be_nil
121+
expect(etag.direct).to be(true)
122+
end
123+
end
124+
125+
context "with a yarn aliased dependency" do
126+
let(:dependency_files) { project_dependency_files("grapher/yarn_with_alias") }
127+
128+
it "includes the real aliased package in resolved dependencies" do
129+
resolved_dependencies = grapher.resolved_dependencies
130+
131+
fetch_factory = resolved_dependencies["pkg:npm/fetch-factory@0.0.1"]
132+
expect(fetch_factory).not_to be_nil
133+
expect(fetch_factory.package_url).to eq("pkg:npm/fetch-factory@0.0.1")
134+
expect(fetch_factory.direct).to be(true)
135+
expect(fetch_factory.runtime).to be(true)
136+
end
137+
138+
it "includes non-aliased dependencies normally" do
139+
resolved_dependencies = grapher.resolved_dependencies
140+
141+
etag = resolved_dependencies["pkg:npm/etag@1.8.1"]
142+
expect(etag).not_to be_nil
143+
expect(etag.direct).to be(true)
144+
end
145+
end
146+
147+
context "with a pnpm aliased dependency" do
148+
let(:dependency_files) { project_dependency_files("grapher/pnpm_with_alias") }
149+
150+
it "includes the real aliased package in resolved dependencies" do
151+
resolved_dependencies = grapher.resolved_dependencies
152+
153+
fetch_factory = resolved_dependencies["pkg:npm/fetch-factory@0.0.2"]
154+
expect(fetch_factory).not_to be_nil
155+
expect(fetch_factory.package_url).to eq("pkg:npm/fetch-factory@0.0.2")
156+
expect(fetch_factory.direct).to be(true)
157+
expect(fetch_factory.runtime).to be(true)
158+
end
159+
160+
it "includes non-aliased dependencies normally" do
161+
resolved_dependencies = grapher.resolved_dependencies
162+
163+
etag = resolved_dependencies["pkg:npm/etag@1.8.1"]
164+
expect(etag).not_to be_nil
165+
expect(etag.direct).to be(true)
166+
end
167+
end
168+
101169
context "with a lockfile containing subdependencies" do
102170
let(:dependency_files) { project_dependency_files("grapher/npm_with_subdeps") }
103171

npm_and_yarn/spec/fixtures/projects/grapher/npm_with_alias/package-lock.json

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "grapher-npm-with-alias",
3+
"version": "1.0.0",
4+
"description": "Test project with an aliased dependency",
5+
"dependencies": {
6+
"my-is-number": "npm:is-number@7.0.0",
7+
"etag": "^1.8.1"
8+
}
9+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"name": "grapher-pnpm-with-alias",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"my-fetch-factory": "npm:fetch-factory@0.0.2"
6+
},
7+
"devDependencies": {
8+
"etag": "^1.0.0"
9+
}
10+
}

npm_and_yarn/spec/fixtures/projects/grapher/pnpm_with_alias/pnpm-lock.yaml

Lines changed: 74 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "grapher-yarn-with-alias",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"my-fetch-factory": "npm:fetch-factory@0.0.1",
6+
"etag": "^1.0.0"
7+
}
8+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2+
# yarn lockfile v1
3+
4+
5+
encoding@^0.1.11:
6+
version "0.1.12"
7+
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
8+
dependencies:
9+
iconv-lite "~0.4.13"
10+
11+
es6-promise@^3.0.2:
12+
version "3.3.1"
13+
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
14+
15+
etag@^1.0.0:
16+
version "1.8.1"
17+
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
18+
19+
iconv-lite@~0.4.13:
20+
version "0.4.23"
21+
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
22+
dependencies:
23+
safer-buffer ">= 2.1.2 < 3"
24+
25+
is-stream@^1.0.1:
26+
version "1.1.0"
27+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
28+
29+
isomorphic-fetch@^2.1.1:
30+
version "2.2.1"
31+
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
32+
dependencies:
33+
node-fetch "^1.0.1"
34+
whatwg-fetch ">=0.10.0"
35+
36+
lodash@^3.10.1:
37+
version "3.10.1"
38+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
39+
40+
"my-fetch-factory@npm:fetch-factory@^0.0.1":
41+
version "0.0.1"
42+
resolved "https://registry.yarnpkg.com/fetch-factory/-/fetch-factory-0.0.1.tgz#e0076059bdb31e3147c75b3b8c04133ba8c7e071"
43+
dependencies:
44+
es6-promise "^3.0.2"
45+
isomorphic-fetch "^2.1.1"
46+
lodash "^3.10.1"
47+
48+
node-fetch@^1.0.1:
49+
version "1.7.3"
50+
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
51+
dependencies:
52+
encoding "^0.1.11"
53+
is-stream "^1.0.1"
54+
55+
"safer-buffer@>= 2.1.2 < 3":
56+
version "2.1.2"
57+
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
58+
59+
whatwg-fetch@>=0.10.0:
60+
version "2.0.4"
61+
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"

0 commit comments

Comments
 (0)