pluginMocks.ts 2.2 KB

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