diff --git a/public/app/features/datasources/DashboardsTable.test.tsx b/public/app/features/datasources/DashboardsTable.test.tsx
new file mode 100644
index 00000000000..10a14f464e4
--- /dev/null
+++ b/public/app/features/datasources/DashboardsTable.test.tsx
@@ -0,0 +1,63 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import DashboardsTable, { Props } from './DashboardsTable';
+import { PluginDashboard } from '../../types';
+
+const setup = (propOverrides?: object) => {
+ const props: Props = {
+ dashboards: [] as PluginDashboard[],
+ onImport: jest.fn(),
+ onRemove: jest.fn(),
+ };
+
+ Object.assign(props, propOverrides);
+
+ return shallow();
+};
+
+describe('Render', () => {
+ it('should render component', () => {
+ const wrapper = setup();
+
+ expect(wrapper).toMatchSnapshot();
+ });
+
+ it('should render table', () => {
+ const wrapper = setup({
+ dashboards: [
+ {
+ dashboardId: 0,
+ description: '',
+ folderId: 0,
+ imported: false,
+ importedRevision: 0,
+ importedUri: '',
+ importedUrl: '',
+ path: 'dashboards/carbon_metrics.json',
+ pluginId: 'graphite',
+ removed: false,
+ revision: 1,
+ slug: '',
+ title: 'Graphite Carbon Metrics',
+ },
+ {
+ dashboardId: 0,
+ description: '',
+ folderId: 0,
+ imported: true,
+ importedRevision: 0,
+ importedUri: '',
+ importedUrl: '',
+ path: 'dashboards/carbon_metrics.json',
+ pluginId: 'graphite',
+ removed: false,
+ revision: 1,
+ slug: '',
+ title: 'Graphite Carbon Metrics',
+ },
+ ],
+ });
+
+ expect(wrapper).toMatchSnapshot();
+ });
+});
diff --git a/public/app/features/datasources/DashboardsTable.tsx b/public/app/features/datasources/DashboardsTable.tsx
index c252d8b1229..b732782c23b 100644
--- a/public/app/features/datasources/DashboardsTable.tsx
+++ b/public/app/features/datasources/DashboardsTable.tsx
@@ -1,7 +1,7 @@
import React, { SFC } from 'react';
import { PluginDashboard } from '../../types';
-interface Props {
+export interface Props {
dashboards: PluginDashboard[];
onImport: (dashboard, overwrite) => void;
onRemove: (dashboard) => void;
diff --git a/public/app/features/datasources/DataSourceDashboards.test.tsx b/public/app/features/datasources/DataSourceDashboards.test.tsx
new file mode 100644
index 00000000000..7409572b9cd
--- /dev/null
+++ b/public/app/features/datasources/DataSourceDashboards.test.tsx
@@ -0,0 +1,29 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import { DataSourceDashboards, Props } from './DataSourceDashboards';
+import { DataSource, NavModel, PluginDashboard } from 'app/types';
+
+const setup = (propOverrides?: object) => {
+ const props: Props = {
+ navModel: {} as NavModel,
+ dashboards: [] as PluginDashboard[],
+ dataSource: {} as DataSource,
+ pageId: 1,
+ importDashboard: jest.fn(),
+ loadDataSource: jest.fn(),
+ loadPluginDashboards: jest.fn(),
+ removeDashboard: jest.fn(),
+ };
+
+ Object.assign(props, propOverrides);
+
+ return shallow();
+};
+
+describe('Render', () => {
+ it('should render component', () => {
+ const wrapper = setup();
+
+ expect(wrapper).toMatchSnapshot();
+ });
+});
diff --git a/public/app/features/datasources/__snapshots__/DashboardsTable.test.tsx.snap b/public/app/features/datasources/__snapshots__/DashboardsTable.test.tsx.snap
new file mode 100644
index 00000000000..a85cbd4ad9b
--- /dev/null
+++ b/public/app/features/datasources/__snapshots__/DashboardsTable.test.tsx.snap
@@ -0,0 +1,88 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Render should render component 1`] = `
+
+`;
+
+exports[`Render should render table 1`] = `
+
+`;
diff --git a/public/app/features/datasources/__snapshots__/DataSourceDashboards.test.tsx.snap b/public/app/features/datasources/__snapshots__/DataSourceDashboards.test.tsx.snap
new file mode 100644
index 00000000000..7a4f05a227f
--- /dev/null
+++ b/public/app/features/datasources/__snapshots__/DataSourceDashboards.test.tsx.snap
@@ -0,0 +1,18 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Render should render component 1`] = `
+
+`;