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