spec/layout_parser_spec.rb in squib-0.9.0 vs spec/layout_parser_spec.rb in squib-0.10.0
- old
+ new
@@ -2,11 +2,11 @@
describe Squib::LayoutParser do
it 'loads a normal layout with no extends' do
layout = Squib::LayoutParser.load_layout(layout_file('no-extends.yml'))
- expect(layout).to eq({'frame' => {
+ expect(layout).to eq({ 'frame' => {
'x' => 38,
'valign' => :middle,
'str' => 'blah',
'font' => 'Mr. Font',
}
@@ -14,11 +14,11 @@
)
end
it 'loads with a single extends' do
layout = Squib::LayoutParser.load_layout(layout_file('single-extends.yml'))
- expect(layout).to eq({'frame' => {
+ expect(layout).to eq({ 'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
@@ -30,11 +30,11 @@
)
end
it 'applies the extends regardless of order' do
layout = Squib::LayoutParser.load_layout(layout_file('pre-extends.yml'))
- expect(layout).to eq({'frame' => {
+ expect(layout).to eq({ 'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
@@ -46,11 +46,11 @@
)
end
it 'applies the single-level extends multiple times' do
layout = Squib::LayoutParser.load_layout(layout_file('single-level-multi-extends.yml'))
- expect(layout).to eq({'frame' => {
+ expect(layout).to eq({ 'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
@@ -68,22 +68,22 @@
)
end
it 'applies multiple extends in a single rule' do
layout = Squib::LayoutParser.load_layout(layout_file('multi-extends-single-entry.yml'))
- expect(layout).to eq({'aunt' => {
+ expect(layout).to eq({ 'aunt' => {
'a' => 101,
'b' => 102,
'c' => 103,
},
'uncle' => {
'x' => 104,
'y' => 105,
'b' => 106,
},
'child' => {
- 'extends' => ['uncle','aunt'],
+ 'extends' => ['uncle', 'aunt'],
'a' => 107, # my own
'b' => 102, # from the younger aunt
'c' => 103, # from aunt
'x' => 108, # my own
'y' => 105, # from uncle
@@ -92,11 +92,11 @@
)
end
it 'applies multi-level extends' do
layout = Squib::LayoutParser.load_layout(layout_file('multi-level-extends.yml'))
- expect(layout).to eq({'frame' => {
+ expect(layout).to eq({ 'frame' => {
'x' => 38,
'y' => 38,
},
'title' => {
'extends' => 'frame',
@@ -177,13 +177,25 @@
expect(Squib.logger)
.to receive(:error)
.with("Processing layout: 'verbal' attempts to extend a missing 'kaisersoze'")
layout = Squib::LayoutParser.load_layout(layout_file('extends-nonexists.yml'))
expect(layout).to eq({
- 'verbal' => {
+ 'verbal' => {
'font_size' => 25,
'extends' => 'kaisersoze'
}
})
end
-end
\ No newline at end of file
+ it 'loads progressively on multiple calls' do
+ a = layout_file('multifile-a.yml')
+ b = layout_file('multifile-b.yml')
+ layout = Squib::LayoutParser.load_layout(a)
+ layout = Squib::LayoutParser.load_layout(b, layout)
+ expect(layout).to eq({
+ 'title' => { 'x' => 300 },
+ 'subtitle' => { 'x' => 200 },
+ 'desc' => { 'x' => 400 }
+ })
+ end
+
+end