index.spec.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. describe('renderers', () => {
  2. const id = 'testContainer';
  3. const {
  4. registerRenderer,
  5. getRenderer,
  6. } = Handsontable.renderers;
  7. beforeEach(function() {
  8. this.$container = $(`<div id="${id}"></div>`).appendTo('body');
  9. });
  10. afterEach(function() {
  11. if (this.$container) {
  12. destroy();
  13. this.$container.remove();
  14. }
  15. });
  16. it('should register custom renderer', () => {
  17. registerRenderer('myRenderer', (hot, td, row, col, prop, value, cellProperties) => {
  18. td.innerHTML = `--${value}--`;
  19. });
  20. const hot = handsontable({
  21. data: [
  22. [1, 6, 10],
  23. ],
  24. columns: [{
  25. renderer: 'myRenderer',
  26. }],
  27. });
  28. expect(getCell(0, 0).innerHTML).toBe('--1--');
  29. });
  30. it('should retrieve predefined renderers by its names', () => {
  31. expect(getRenderer('autocomplete')).toBeFunction();
  32. expect(getRenderer('base')).toBeFunction();
  33. expect(getRenderer('checkbox')).toBeFunction();
  34. expect(getRenderer('html')).toBeFunction();
  35. expect(getRenderer('numeric')).toBeFunction();
  36. expect(getRenderer('password')).toBeFunction();
  37. expect(getRenderer('text')).toBeFunction();
  38. });
  39. it('should retrieve custom renderer by its names', () => {
  40. const spy = jasmine.createSpy();
  41. registerRenderer('myRenderer', spy);
  42. getRenderer('myRenderer')(1, 2, 3, 4, 5, 6);
  43. expect(spy).toHaveBeenCalledWith(1, 2, 3, 4, 5, 6);
  44. });
  45. });