From 7f83460f429f68898499c5b1d8ea77699eb4a695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 31 Oct 2017 14:30:06 +0100 Subject: [PATCH] tests: migrated tests for link_srv to jest, #9666 --- .../panellinks/specs/link_srv.jest.ts | 47 +++++++++++++++++++ public/test/mocks/angular.ts | 17 +++++++ 2 files changed, 64 insertions(+) create mode 100644 public/app/features/panellinks/specs/link_srv.jest.ts create mode 100644 public/test/mocks/angular.ts diff --git a/public/app/features/panellinks/specs/link_srv.jest.ts b/public/app/features/panellinks/specs/link_srv.jest.ts new file mode 100644 index 00000000000..2ec38961e29 --- /dev/null +++ b/public/app/features/panellinks/specs/link_srv.jest.ts @@ -0,0 +1,47 @@ +import { LinkSrv } from '../link_srv'; +import _ from 'lodash'; + +jest.mock('angular', () => { + let AngularJSMock = require('test/mocks/angular'); + return new AngularJSMock(); +}); + +describe('linkSrv', function() { + var linkSrv; + var templateSrvMock = {}; + var timeSrvMock = {}; + + beforeEach(() => { + linkSrv = new LinkSrv(templateSrvMock, timeSrvMock); + }); + + describe('when appending query strings', function() { + it('add ? to URL if not present', function() { + var url = linkSrv.appendToQueryString('http://example.com', 'foo=bar'); + expect(url).toBe('http://example.com?foo=bar'); + }); + + it('do not add & to URL if ? is present but query string is empty', function() { + var url = linkSrv.appendToQueryString('http://example.com?', 'foo=bar'); + expect(url).toBe('http://example.com?foo=bar'); + }); + + it('add & to URL if query string is present', function() { + var url = linkSrv.appendToQueryString('http://example.com?foo=bar', 'hello=world'); + expect(url).toBe('http://example.com?foo=bar&hello=world'); + }); + + it('do not change the URL if there is nothing to append', function() { + _.each(['', undefined, null], function(toAppend) { + var url1 = linkSrv.appendToQueryString('http://example.com', toAppend); + expect(url1).toBe('http://example.com'); + + var url2 = linkSrv.appendToQueryString('http://example.com?', toAppend); + expect(url2).toBe('http://example.com?'); + + var url3 = linkSrv.appendToQueryString('http://example.com?foo=bar', toAppend); + expect(url3).toBe('http://example.com?foo=bar'); + }); + }); + }); +}); diff --git a/public/test/mocks/angular.ts b/public/test/mocks/angular.ts new file mode 100644 index 00000000000..185d64214fd --- /dev/null +++ b/public/test/mocks/angular.ts @@ -0,0 +1,17 @@ +export default class AngularJSMock { + service: any; + controller: any; + directive: any; + + constructor() { + this.service = jest.fn(); + this.controller = jest.fn(); + this.directive = jest.fn(); + } + + module() { + return this; + } +} + +module.exports = AngularJSMock;