renderer_specs.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import {describe, beforeEach, it, sinon, expect} from 'test/lib/common';
  2. import TableModel = require('app/core/table_model');
  3. import {TableRenderer} from '../renderer';
  4. describe('when rendering table', () => {
  5. describe('given 2 columns', () => {
  6. var table = new TableModel();
  7. table.columns = [
  8. {text: 'Time'},
  9. {text: 'Value'},
  10. {text: 'Colored'},
  11. {text: 'Undefined'},
  12. ];
  13. var panel = {
  14. pageSize: 10,
  15. styles: [
  16. {
  17. pattern: 'Time',
  18. type: 'date',
  19. format: 'LLL'
  20. },
  21. {
  22. pattern: 'Value',
  23. type: 'number',
  24. unit: 'ms',
  25. decimals: 3,
  26. },
  27. {
  28. pattern: 'Colored',
  29. type: 'number',
  30. unit: 'none',
  31. decimals: 1,
  32. colorMode: 'value',
  33. thresholds: [0, 50, 80],
  34. colors: ['green', 'orange', 'red']
  35. }
  36. ]
  37. };
  38. var renderer = new TableRenderer(panel, table, 'utc');
  39. it('time column should be formated', () => {
  40. var html = renderer.renderCell(0, 1388556366666);
  41. expect(html).to.be('<td>2014-01-01T06:06:06+00:00</td>');
  42. });
  43. it('number column should be formated', () => {
  44. var html = renderer.renderCell(1, 1230);
  45. expect(html).to.be('<td>1.230 s</td>');
  46. });
  47. it('number style should ignore string values', () => {
  48. var html = renderer.renderCell(1, 'asd');
  49. expect(html).to.be('<td>asd</td>');
  50. });
  51. it('colored cell should have style', () => {
  52. var html = renderer.renderCell(2, 55);
  53. expect(html).to.be('<td style="color:orange">55.0</td>');
  54. });
  55. it('unformated undefined should be rendered as -', () => {
  56. var html = renderer.renderCell(3, undefined);
  57. expect(html).to.be('<td></td>');
  58. });
  59. });
  60. });