84 lines
2.5 KiB
JavaScript
84 lines
2.5 KiB
JavaScript
describe('Cell', function () {
|
|
before(function () {
|
|
cy.visit('/');
|
|
});
|
|
|
|
it('focuses cell on click', function () {
|
|
cy.clickCell(2, 0)
|
|
.should('have.class', 'dt-cell--focus');
|
|
});
|
|
|
|
it('not focuses cell which are not focusable', function () {
|
|
cy.clickCell(1, 0)
|
|
.should('not.have.class', 'dt-cell--focus');
|
|
});
|
|
|
|
it('edit cell on enter press', function () {
|
|
cy.getCell(4, 0).type('{enter}')
|
|
.should('have.class', 'dt-cell--editing')
|
|
.type('{enter}')
|
|
.should('not.have.class', 'dt-cell--editing');
|
|
});
|
|
|
|
it('edit cell on double click', function () {
|
|
cy.getCell(4, 0)
|
|
.as('target')
|
|
.dblclick({ force: true })
|
|
.should('have.class', 'dt-cell--editing');
|
|
|
|
cy.clickCell(3, 0);
|
|
|
|
cy.get('@target').should('not.have.class', 'dt-cell--editing');
|
|
});
|
|
|
|
it('edit cell', function () {
|
|
cy.getCell(4, 1).dblclick();
|
|
cy.getCell(4, 1).find('input').click();
|
|
cy.focused().type('{selectall}{del}Test{enter}');
|
|
cy.getCell(4, 1).contains('Test');
|
|
});
|
|
|
|
it('if editing is false: editing should not activate', function () {
|
|
cy.getCell(3, 0).dblclick({ force: true })
|
|
.should('not.have.class', 'dt-cell--editing');
|
|
});
|
|
|
|
it('navigation using arrow keys', function () {
|
|
cy.clickCell(2, 0)
|
|
.type('{rightarrow}');
|
|
|
|
cy.get('.dt-cell--focus')
|
|
.should('have.class', 'dt-cell--3-0')
|
|
.click({ force: true })
|
|
.type('{downarrow}');
|
|
|
|
cy.get('.dt-cell--focus')
|
|
.should('have.class', 'dt-cell--3-1');
|
|
// TODO: test navigation over hidden rows
|
|
});
|
|
|
|
it('navigation using ctrl + arrow keys', function () {
|
|
cy.clickCell(2, 0)
|
|
.type('{ctrl}{rightarrow}');
|
|
cy.get('.dt-cell--focus')
|
|
.should('have.class', 'dt-cell--7-0');
|
|
});
|
|
|
|
it('cell selection using shift + arrow keys', function () {
|
|
cy.getCell(2, 1)
|
|
.type('{shift}{rightarrow}{rightarrow}{downarrow}');
|
|
|
|
// 6 cells and 2 headers
|
|
cy.get('.dt-cell--highlight').should('have.length', 6 + 2);
|
|
|
|
cy.clickCell(2, 0);
|
|
});
|
|
|
|
it('mouse selection', function () {
|
|
// TODO:
|
|
// cy.getCell(2, 1)
|
|
// .trigger('mousedown', { which: 1, pageX: 331, pageY: 207, force: true })
|
|
// .trigger('mousemove', { which: 1, pageX: 489, pageY: 312 })
|
|
// .trigger('mouseup');
|
|
});
|
|
}); |