You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

125 lines
3.1 KiB

require 'spec_helper'
require 'squib/deck'
describe Squib::Deck do
it "initializes with default parameters" do
d = Squib::Deck.new
expect(d.width).to eq(825)
expect(d.height).to eq(1125)
expect(d.cards.size).to eq(1)
end
context "in dealing with ranges" do
it "calls text on all cards by default" do
card1 = instance_double(Squib::Card)
card2 = instance_double(Squib::Card)
expect(card1).to receive(:text).once
expect(card2).to receive(:text).once
Squib::Deck.new do
@cards = [card1, card2]
text str: 'blah'
end
end
it "calls text on some cards with an integer" do
card1 = instance_double(Squib::Card)
card2 = instance_double(Squib::Card)
expect(card2).to receive(:text).once
Squib::Deck.new do
@cards = [card1, card2]
text range: 1, str: 'blah'
end
end
it "calls text with ranges" do
card1 = instance_double(Squib::Card)
card2 = instance_double(Squib::Card)
card3 = instance_double(Squib::Card)
expect(card1).to receive(:text).once
expect(card2).to receive(:text).once
Squib::Deck.new do
@cards = [card1, card2, card3]
text range: 0..1, str: 'blah'
end
end
end
context "#load_layout" do
it "loads a normal layout with no extends" do
d = Squib::Deck.new(layout: test_file('no-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
'valign' => :middle,
'str' => "blah",
'font' => "Mr. Font",
}
}
)
end
it "loads with a single extends" do
d = Squib::Deck.new(layout: test_file('single-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
'x' => 38,
'y' => 50,
'width' => 100,
}
}
)
end
it "applies the extends regardless of order" do
d = Squib::Deck.new(layout: test_file('pre-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
'x' => 38,
'y' => 50,
'width' => 100,
}
}
)
end
it "applies the single-level extends multiple timess" do
d = Squib::Deck.new(layout: test_file('single-level-multi-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
'x' => 38,
'y' => 50,
'width' => 100,
},
'title2' => {
'extends' => 'frame',
'x' => 75,
'y' => 150,
'width' => 150,
},
}
)
end
end
end