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.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							45 lines
						
					
					
						
							1.3 KiB
						
					
					
				var closest = require('../src/closest'); | 
						|
 | 
						|
describe('closest', function() { | 
						|
    before(function() { | 
						|
        var html = '<div id="a">' + | 
						|
                        '<div id="b">' + | 
						|
                            '<div id="c"></div>' + | 
						|
                        '</div>' + | 
						|
                    '</div>'; | 
						|
 | 
						|
        document.body.innerHTML += html; | 
						|
 | 
						|
        global.a = document.querySelector('#a'); | 
						|
        global.b = document.querySelector('#b'); | 
						|
        global.c = document.querySelector('#c'); | 
						|
    }); | 
						|
 | 
						|
    after(function() { | 
						|
        document.body.innerHTML = ''; | 
						|
    }); | 
						|
 | 
						|
    it('should return the closest parent based on the selector', function() { | 
						|
        assert.ok(closest(global.c, '#b'), global.b); | 
						|
        assert.ok(closest(global.c, '#a'), global.a); | 
						|
        assert.ok(closest(global.b, '#a'), global.a); | 
						|
    }); | 
						|
 | 
						|
    it('should return itself if the same selector is passed', function() { | 
						|
        assert.ok(closest(document.body, 'body'), document.body); | 
						|
    }); | 
						|
 | 
						|
    it('should not throw on elements without matches()', function() { | 
						|
        var fakeElement = { | 
						|
            nodeType: -1, // anything but DOCUMENT_NODE_TYPE | 
						|
            parentNode: null, | 
						|
            matches: undefined // undefined to emulate Elements without this function | 
						|
        }; | 
						|
 | 
						|
        try { | 
						|
            closest(fakeElement, '#a') | 
						|
        } catch (err) { | 
						|
            assert.fail(); | 
						|
        } | 
						|
    }); | 
						|
});
 | 
						|
 |