/**
* Copyright 2014 Red Hat, Inc.
*
* This software is licensed to you under the GNU General Public
* License as published by the Free Software Foundation; either version
* 2 of the License (GPLv2) or (at your option) any later version.
* There is NO WARRANTY for this software, express or implied,
* including the implied warranties of MERCHANTABILITY,
* NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
* have received a copy of GPLv2 along with this software; if not, see
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
*/
describe('Directive: nutupaneTable', function() {
var scope,
compile,
tableElement;
beforeEach(module('Bastion.components'));
beforeEach(inject(function(_$compile_, _$rootScope_) {
compile = _$compile_;
scope = _$rootScope_;
}));
beforeEach(function() {
tableElement = angular.element(
'
' +
'
' +
'' +
'Column 1 |
' +
'' +
'' +
'' +
'Row 1 | ' +
'
' +
'' +
'
' +
'
');
compile(tableElement)(scope);
scope.$digest();
scope.$broadcast("$stateChangeSuccess", {}, {}, {}, {});
});
it("should create a new table element with just the thead", function() {
var theads = tableElement.find('thead'),
tbodys = tableElement.find('tbody');
expect(theads.length).toEqual(2);
expect(tbodys.length).toEqual(1);
});
it("should hide the original table's thead", function() {
var originalTableHead = angular.element(tableElement.find('thead')[1]);
expect(originalTableHead.css('display')).toBe('none');
});
it("should remove the duplicate row select from the cloned table if present", function() {
var rowSelectTable = tableElement.clone();
rowSelectTable.find('thead').prepend(" |
");
compile(rowSelectTable)(scope);
scope.$digest();
scope.$broadcast("$stateChangeSuccess", {}, {}, {}, {});
expect(rowSelectTable.find('.row-select').length).toBe(1);
});
});