pluginMocks.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { Plugin, PanelPluginMeta, PanelDataFormat } from 'app/types';
  2. import { PluginType } from '@grafana/ui';
  3. export const getMockPlugins = (amount: number): Plugin[] => {
  4. const plugins = [];
  5. for (let i = 0; i <= amount; i++) {
  6. plugins.push({
  7. defaultNavUrl: 'some/url',
  8. enabled: false,
  9. hasUpdate: false,
  10. id: `${i}`,
  11. info: {
  12. author: {
  13. name: 'Grafana Labs',
  14. url: 'url/to/GrafanaLabs',
  15. },
  16. description: 'pretty decent plugin',
  17. links: ['one link'],
  18. logos: { small: 'small/logo', large: 'large/logo' },
  19. screenshots: [{ path: `screenshot/${i}` }],
  20. updated: '2018-09-26',
  21. version: '1',
  22. },
  23. latestVersion: `1.${i}`,
  24. name: `pretty cool plugin-${i}`,
  25. pinned: false,
  26. state: '',
  27. type: '',
  28. module: {},
  29. });
  30. }
  31. return plugins;
  32. };
  33. export const getPanelPlugin = (options: Partial<PanelPluginMeta>): PanelPluginMeta => {
  34. return {
  35. id: options.id,
  36. type: PluginType.panel,
  37. name: options.id,
  38. sort: options.sort || 1,
  39. dataFormats: [PanelDataFormat.TimeSeries],
  40. info: {
  41. author: {
  42. name: options.id + 'name',
  43. },
  44. description: '',
  45. links: [],
  46. logos: {
  47. large: '',
  48. small: '',
  49. },
  50. screenshots: [],
  51. updated: '',
  52. version: '',
  53. },
  54. hideFromList: options.hideFromList === true,
  55. module: '',
  56. baseUrl: '',
  57. vizPlugin: options.vizPlugin,
  58. angularPlugin: options.angularPlugin,
  59. };
  60. };
  61. export const getMockPlugin = () => {
  62. return {
  63. defaultNavUrl: 'some/url',
  64. enabled: false,
  65. hasUpdate: false,
  66. id: '1',
  67. info: {
  68. author: {
  69. name: 'Grafana Labs',
  70. url: 'url/to/GrafanaLabs',
  71. },
  72. description: 'pretty decent plugin',
  73. links: [{ name: 'project', url: 'one link' }],
  74. logos: { small: 'small/logo', large: 'large/logo' },
  75. screenshots: [{ path: `screenshot` }],
  76. updated: '2018-09-26',
  77. version: '1',
  78. },
  79. latestVersion: '1',
  80. name: 'pretty cool plugin 1',
  81. baseUrl: 'path/to/plugin',
  82. pinned: false,
  83. type: PluginType.panel,
  84. module: 'path/to/module',
  85. } as Plugin;
  86. };