UNPKG

novo-elements

Version:

Bullhorn's NOVO Element Repository for Angular 2

130 lines (116 loc) 4.17 kB
// NG2 import { Component, ElementRef } from '@angular/core'; import { TestBed, async } from '@angular/core/testing'; // App import { ThOrderable } from './ThOrderable'; @Component({ selector: 'test-component', template: ` <table> <tr> <th novoThOrderable="right"></th> </tr> </table> ` }) class TestComponent {} describe('Elements: ThOrderable', () => { let fixture; let component; describe('Directive: ', () => { beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ ThOrderable, TestComponent ] }).compileComponents(); fixture = TestBed.createComponent(TestComponent); component = fixture.debugElement.componentInstance; })); it('should initialize as a directive', () => { expect(component).toBeDefined(); }); }); describe('Class: ', () => { let mockElement = new ElementRef(document.createElement('div')); let subject = new ThOrderable(mockElement); mockElement.nativeElement = { parentNode: { children: [mockElement] }, classList: { remove: () => {}, add: () => {} } }; it('should initialize correctly.', () => { expect(subject).toBeDefined(); expect(subject.index).toBeDefined(); }); describe('Method: onDragStart()', () => { it('should be defined', () => { expect(subject.onDragStart).toBeDefined(); subject.column = { ordering: false }; subject.onDragStart(); }); }); describe('Method: deleteColumns()', () => { it('should delete rows from the table', () => { expect(subject.deleteColumns).toBeDefined(); let mockTable = { rows: [], deleteRow: () => {} }; spyOn(mockTable, 'deleteRow').and.callThrough(); subject.deleteColumns(mockTable); }); }); describe('Method: findTable()', () => { it('should be defined', () => { let mockHTMLElement = document.createElement('div'); expect(subject.findTable).toBeDefined(); subject.findTable(mockHTMLElement); }); }); describe('Method: onDrag()', () => { it('should be defined', () => { expect(subject.onDrag).toBeDefined(); subject.onDrag(); }); }); describe('Method: onDragEnd()', () => { it('should be defined', () => { expect(subject.onDragEnd).toBeDefined(); spyOn(document.body, 'removeChild').and.callFake(() => {}); subject.onDragEnd(); }); }); describe('Method: onDrop()', () => { it('should be defined', () => { expect(subject.onDrop).toBeDefined(); subject.onDrop({ dataTransfer: { getData: () => { return '[{}]'; } }, preventDefault: () => {}, stopPropagation: () => {} }); }); }); describe('Method: onDragOver()', () => { it('should be defined', () => { expect(subject.onDragOver).toBeDefined(); subject.onDragOver({ dataTransfer: { dropEffect: '' }, preventDefault: () => {}, stopPropagation: () => {} }); }); }); describe('Method: onDragEnter()', () => { it('should be defined', () => { expect(subject.onDragEnter).toBeDefined(); subject.onDragEnter({ target: 'test' }); }); }); describe('Method: onDragLeave()', () => { it('should be defined', () => { expect(subject.onDragLeave).toBeDefined(); subject.onDragLeave(); }); }); }); });