axe-core
Version:
Accessibility engine for automated Web UI testing
57 lines (43 loc) • 1.53 kB
JavaScript
describe('has-th', function () {
'use strict';
var fixture = document.getElementById('fixture');
var checkContext = axe.testUtils.MockCheckContext();
afterEach(function () {
fixture.innerHTML = '';
checkContext.reset();
});
it('should return false when the table has no th', function () {
fixture.innerHTML = '<table>' +
'<tr><td></td></tr>' +
'</table>';
var node = fixture.querySelector('table');
assert.isFalse(checks['has-th'].evaluate.call(checkContext, node));
});
it('should return true when the table has a th', function () {
fixture.innerHTML = '<table>' +
'<tr><th></th></tr>' +
'</table>';
var node = fixture.querySelector('table');
assert.isTrue(checks['has-th'].evaluate.call(checkContext, node));
assert.deepEqual(checkContext._relatedNodes, [
node.querySelector('th')
]);
});
it('should return true when the table has a td with role=columnheader', function () {
fixture.innerHTML = '<table>' +
'<tr><td role="columnheader"></td></tr>' +
'</table>';
var node = fixture.querySelector('table');
assert.isTrue(checks['has-th'].evaluate.call(checkContext, node));
assert.deepEqual(checkContext._relatedNodes, [
node.querySelector('td')
]);
});
it('should not detect nested table with th', function () {
fixture.innerHTML = '<table>' +
'<tr><td><table><tr><th>hi</th></tr></table></td></tr>' +
'</table>';
var node = fixture.querySelector('table');
assert.isFalse(checks['has-th'].evaluate.call(checkContext, node));
});
});