| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import { DashboardImportCtrl } from '../dashboard_import_ctrl';
- import config from '../../../core/config';
- describe('DashboardImportCtrl', function() {
- const ctx: any = {};
- let navModelSrv;
- let backendSrv;
- let validationSrv;
- beforeEach(() => {
- navModelSrv = {
- getNav: () => {},
- };
- backendSrv = {
- search: jest.fn().mockReturnValue(Promise.resolve([])),
- getDashboardByUid: jest.fn().mockReturnValue(Promise.resolve([])),
- get: jest.fn(),
- };
- validationSrv = {
- validateNewDashboardName: jest.fn().mockReturnValue(Promise.resolve()),
- };
- ctx.ctrl = new DashboardImportCtrl(backendSrv, validationSrv, navModelSrv, {}, {});
- });
- describe('when uploading json', function() {
- beforeEach(function() {
- config.datasources = {
- ds: {
- type: 'test-db',
- },
- };
- ctx.ctrl.onUpload({
- __inputs: [
- {
- name: 'ds',
- pluginId: 'test-db',
- type: 'datasource',
- pluginName: 'Test DB',
- },
- ],
- });
- });
- it('should build input model', function() {
- expect(ctx.ctrl.inputs.length).toBe(1);
- expect(ctx.ctrl.inputs[0].name).toBe('ds');
- expect(ctx.ctrl.inputs[0].info).toBe('Select a Test DB data source');
- });
- it('should set inputValid to false', function() {
- expect(ctx.ctrl.inputsValid).toBe(false);
- });
- });
- describe('when specifying grafana.com url', function() {
- beforeEach(function() {
- ctx.ctrl.gnetUrl = 'http://grafana.com/dashboards/123';
- // setup api mock
- backendSrv.get = jest.fn(() => {
- return Promise.resolve({
- json: {},
- });
- });
- return ctx.ctrl.checkGnetDashboard();
- });
- it('should call gnet api with correct dashboard id', function() {
- expect(backendSrv.get.mock.calls[0][0]).toBe('api/gnet/dashboards/123');
- });
- });
- describe('when specifying dashboard id', function() {
- beforeEach(function() {
- ctx.ctrl.gnetUrl = '2342';
- // setup api mock
- backendSrv.get = jest.fn(() => {
- return Promise.resolve({
- json: {},
- });
- });
- return ctx.ctrl.checkGnetDashboard();
- });
- it('should call gnet api with correct dashboard id', function() {
- expect(backendSrv.get.mock.calls[0][0]).toBe('api/gnet/dashboards/2342');
- });
- });
- });
|