angular-ui-tree
Version:
An AngularJS UI component that can sort nested lists, provides drag & drop support and doesn't depend on jQuery
82 lines (66 loc) • 2.18 kB
JavaScript
describe('the Basic example page', function () {
var basicExamplePage = require('./page.js');
beforeEach(function () {
basicExamplePage.get();
});
describe('rendering of the tree data', function () {
it('should render a tree with 3 root nodes', function () {
basicExamplePage
.getRootNodes()
.count()
.then(function (count) {
expect(count).toEqual(3);
});
});
it('should show 2 subnodes for the first root node', function () {
basicExamplePage
.getNodeAtPosition(1)
.getSubnodes()
.count()
.then(function (count) {
expect(count).toEqual(2);
});
});
it('should show the correct text for the subnodes', function () {
basicExamplePage
.getNodeAtPosition(1, 1)
.getText()
.then(function (text) {
expect(text).toEqual('node1.1');
});
basicExamplePage
.getNodeAtPosition(1, 2)
.getText()
.then(function (text) {
expect(text).toEqual('node1.2');
});
});
});
describe('the dragging and dropping of nodes', function () {
it('should allow moving a node below another node', function () {
var nodeToDrag = basicExamplePage.getNodeAtPosition(2, 1);
nodeToDrag
.getText()
.then(function (text) {
expect(text).toEqual('node2.1');
});
// make sure the element to drag is inside the browser's viewport
browser.wait(browser.executeScript('arguments[0].scrollIntoView();', basicExamplePage.getNodeAtPosition(2).getHandle().getWebElement()));
browser.actions()
.dragAndDrop(nodeToDrag.getHandle(), {x: 2, y: 80})
.perform();
basicExamplePage
.getNodeAtPosition(2, 1)
.getText()
.then(function (text) {
expect(text).toEqual('node2.2');
});
});
// it('should allow adding a node to another node to make it a child-node', function () {
// // TODO
// });
// it('should allow removing a child-node from a node to put it on the same tree level', function () {
// // TODO
// });
});
});