spec/nanoc/base/directed_graph_spec.rb in nanoc-4.7.12 vs spec/nanoc/base/directed_graph_spec.rb in nanoc-4.7.13
- old
+ new
@@ -1,9 +1,51 @@
# frozen_string_literal: true
describe Nanoc::Int::DirectedGraph do
subject(:graph) { described_class.new([1, 2, 3]) }
+ describe '#inspect' do
+ subject { graph.inspect }
+
+ context 'empty graph' do
+ it { is_expected.to eq('Nanoc::Int::DirectedGraph()') }
+ end
+
+ context 'one edge, no props' do
+ before do
+ graph.add_edge(1, 2)
+ end
+
+ it { is_expected.to eq('Nanoc::Int::DirectedGraph(1 -> 2 props=nil)') }
+ end
+
+ context 'two edges, no props' do
+ before do
+ graph.add_edge(1, 2)
+ graph.add_edge(2, 3)
+ end
+
+ it { is_expected.to eq('Nanoc::Int::DirectedGraph(1 -> 2 props=nil, 2 -> 3 props=nil)') }
+ end
+
+ context 'one edge, props' do
+ before do
+ graph.add_edge(1, 2, props: 'giraffe')
+ end
+
+ it { is_expected.to eq('Nanoc::Int::DirectedGraph(1 -> 2 props="giraffe")') }
+ end
+
+ context 'two edges, props' do
+ before do
+ graph.add_edge(1, 2, props: 'donkey')
+ graph.add_edge(2, 3, props: 'zebra')
+ end
+
+ it { is_expected.to eq('Nanoc::Int::DirectedGraph(1 -> 2 props="donkey", 2 -> 3 props="zebra")') }
+ end
+ end
+
describe '#any_cycle' do
subject { graph.any_cycle }
context 'no cycles' do
it { is_expected.to be_nil }