| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import { DashboardImportCtrl } from "../dashboard_import_ctrl";
- import config from "../../../core/config";
- describe("DashboardImportCtrl", function() {
- var ctx: any = {};
- let navModelSrv;
- let backendSrv;
- let validationSrv;
- beforeEach(() => {
- navModelSrv = {
- getNav: () => {}
- };
- backendSrv = {
- search: jest.fn().mockReturnValue(Promise.resolve([])),
- get: jest.fn()
- };
- validationSrv = {
- validateNewDashboardOrFolderName: 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 specifing 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 specifing dashbord 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");
- });
- });
- });
|