mirror of
https://github.com/ruby/ruby.git
synced 2025-08-26 06:25:31 +02:00

These are marked as realworld, but the realworld workflow file does not
install graphviz, so the specs are actually skipped.
These are not actually realworld, so remove that tag. Now they'll be run
together with the reset of specs in the standard workflow file, which
does install `graphviz`.
e865fcaa22
144 lines
4.2 KiB
Ruby
144 lines
4.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe "bundle viz", bundler: "< 3", if: Bundler.which("dot") do
|
|
before do
|
|
realworld_system_gems "ruby-graphviz --version 1.2.5"
|
|
end
|
|
|
|
it "graphs gems from the Gemfile" do
|
|
install_gemfile <<-G
|
|
source "https://gem.repo1"
|
|
gem "myrack"
|
|
gem "myrack-obama"
|
|
G
|
|
|
|
bundle "viz"
|
|
expect(out).to include("gem_graph.png")
|
|
|
|
bundle "viz", format: "debug"
|
|
expect(out).to eq(<<~DOT.strip)
|
|
digraph Gemfile {
|
|
concentrate = "true";
|
|
normalize = "true";
|
|
nodesep = "0.55";
|
|
edge[ weight = "2"];
|
|
node[ fontname = "Arial, Helvetica, SansSerif"];
|
|
edge[ fontname = "Arial, Helvetica, SansSerif" , fontsize = "12"];
|
|
default [style = "filled", fillcolor = "#B9B9D5", shape = "box3d", fontsize = "16", label = "default"];
|
|
myrack [style = "filled", fillcolor = "#B9B9D5", label = "myrack"];
|
|
default -> myrack [constraint = "false"];
|
|
"myrack-obama" [style = "filled", fillcolor = "#B9B9D5", label = "myrack-obama"];
|
|
default -> "myrack-obama" [constraint = "false"];
|
|
"myrack-obama" -> myrack;
|
|
}
|
|
debugging bundle viz...
|
|
DOT
|
|
end
|
|
|
|
it "graphs gems that are prereleases" do
|
|
build_repo2 do
|
|
build_gem "myrack", "1.3.pre"
|
|
end
|
|
|
|
install_gemfile <<-G
|
|
source "https://gem.repo2"
|
|
gem "myrack", "= 1.3.pre"
|
|
gem "myrack-obama"
|
|
G
|
|
|
|
bundle "viz"
|
|
expect(out).to include("gem_graph.png")
|
|
|
|
bundle "viz", format: :debug, version: true
|
|
expect(out).to eq(<<~EOS.strip)
|
|
digraph Gemfile {
|
|
concentrate = "true";
|
|
normalize = "true";
|
|
nodesep = "0.55";
|
|
edge[ weight = "2"];
|
|
node[ fontname = "Arial, Helvetica, SansSerif"];
|
|
edge[ fontname = "Arial, Helvetica, SansSerif" , fontsize = "12"];
|
|
default [style = "filled", fillcolor = "#B9B9D5", shape = "box3d", fontsize = "16", label = "default"];
|
|
myrack [style = "filled", fillcolor = "#B9B9D5", label = "myrack\\n1.3.pre"];
|
|
default -> myrack [constraint = "false"];
|
|
"myrack-obama" [style = "filled", fillcolor = "#B9B9D5", label = "myrack-obama\\n1.0"];
|
|
default -> "myrack-obama" [constraint = "false"];
|
|
"myrack-obama" -> myrack;
|
|
}
|
|
debugging bundle viz...
|
|
EOS
|
|
end
|
|
|
|
context "with another gem that has a graphviz file" do
|
|
before do
|
|
build_repo4 do
|
|
build_gem "graphviz", "999" do |s|
|
|
s.write("lib/graphviz.rb", "abort 'wrong graphviz gem loaded'")
|
|
end
|
|
end
|
|
|
|
system_gems "graphviz-999", gem_repo: gem_repo4
|
|
end
|
|
|
|
it "loads the correct ruby-graphviz gem" do
|
|
install_gemfile <<-G
|
|
source "https://gem.repo1"
|
|
gem "myrack"
|
|
gem "myrack-obama"
|
|
G
|
|
|
|
bundle "viz", format: "debug"
|
|
expect(out).to eq(<<~DOT.strip)
|
|
digraph Gemfile {
|
|
concentrate = "true";
|
|
normalize = "true";
|
|
nodesep = "0.55";
|
|
edge[ weight = "2"];
|
|
node[ fontname = "Arial, Helvetica, SansSerif"];
|
|
edge[ fontname = "Arial, Helvetica, SansSerif" , fontsize = "12"];
|
|
default [style = "filled", fillcolor = "#B9B9D5", shape = "box3d", fontsize = "16", label = "default"];
|
|
myrack [style = "filled", fillcolor = "#B9B9D5", label = "myrack"];
|
|
default -> myrack [constraint = "false"];
|
|
"myrack-obama" [style = "filled", fillcolor = "#B9B9D5", label = "myrack-obama"];
|
|
default -> "myrack-obama" [constraint = "false"];
|
|
"myrack-obama" -> myrack;
|
|
}
|
|
debugging bundle viz...
|
|
DOT
|
|
end
|
|
end
|
|
|
|
context "--without option" do
|
|
it "one group" do
|
|
install_gemfile <<-G
|
|
source "https://gem.repo1"
|
|
gem "activesupport"
|
|
|
|
group :rails do
|
|
gem "rails"
|
|
end
|
|
G
|
|
|
|
bundle "viz --without=rails"
|
|
expect(out).to include("gem_graph.png")
|
|
end
|
|
|
|
it "two groups" do
|
|
install_gemfile <<-G
|
|
source "https://gem.repo1"
|
|
gem "activesupport"
|
|
|
|
group :myrack do
|
|
gem "myrack"
|
|
end
|
|
|
|
group :rails do
|
|
gem "rails"
|
|
end
|
|
G
|
|
|
|
bundle "viz --without=rails:myrack"
|
|
expect(out).to include("gem_graph.png")
|
|
end
|
|
end
|
|
end
|