spec_app/spec/javascripts/up/layout_spec.js.coffee in upjs-rails-0.10.4 vs spec_app/spec/javascripts/up/layout_spec.js.coffee in upjs-rails-0.10.5

- old
+ new

@@ -285,9 +285,39 @@ # in order to reveal the first 20 rows element up.reveal($elements[2], viewport: $viewport) # Viewing 100 to 199 expect($viewport.scrollTop()).toBe(100) + describe 'up.layout.viewportsWithin', -> + + it 'should have tests' + + describe 'up.layout.viewportsOf', -> + + it 'seeks upwards from the given element', -> + up.layout.defaults(viewports: ['.viewport1', '.viewport2']) + $viewport1 = affix('.viewport1') + $viewport2 = affix('.viewport2') + $element = affix('div').appendTo($viewport2) + expect(up.layout.viewportOf($element)).toEqual($viewport2) + + it 'returns the given element if it is a configured viewport itself', -> + up.layout.defaults(viewports: ['.viewport']) + $viewport = affix('.viewport') + expect(up.layout.viewportOf($viewport)).toEqual($viewport) + + it 'finds the document if the viewport is the document', -> + # This actually tests that the hierarchy returned by `$.parent` + # is $element => ... => $('body') => $('html') => $(document) + up.layout.defaults(viewports: [document]) + $element = affix('div') + expect(up.layout.viewportOf($element)).toEqual($(document)) + + it 'throws an error if no viewport could be found', -> + up.layout.defaults(viewports: ['.does-not-exist']) + $element = affix('div') + lookup = -> up.layout.viewportOf($element) + expect(lookup).toThrowError(/Could not find viewport/i) describe 'up.scroll', -> it 'should have tests'