diff --git a/src/angular/action-sheet-controller.ts b/src/angular/action-sheet-controller.ts index 9f2c181..4be0cf6 100644 --- a/src/angular/action-sheet-controller.ts +++ b/src/angular/action-sheet-controller.ts @@ -1,9 +1,10 @@ -import {ActionSheetMock} from './action-sheet'; +import { createSpyObj } from '../utilities/create-spy'; +import { ActionSheetMock } from './action-sheet'; export class ActionSheetControllerMock { public static instance(actionSheet?: ActionSheetMock): any { - let instance = jasmine.createSpyObj('ActionSheetController', ['create']); + let instance = createSpyObj('ActionSheetController', ['create']); instance.create.and.returnValue(actionSheet || ActionSheetMock.instance()); return instance; diff --git a/src/angular/action-sheet.ts b/src/angular/action-sheet.ts index 8ad8c6d..663272e 100644 --- a/src/angular/action-sheet.ts +++ b/src/angular/action-sheet.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class ActionSheetMock { public static instance(): any { - let instance = jasmine.createSpyObj('ActionSheet', ['present', 'dismiss']); + let instance = createSpyObj('ActionSheet', ['present', 'dismiss']); instance.present.and.returnValue(Promise.resolve()); instance.dismiss.and.returnValue(Promise.resolve()); diff --git a/src/angular/alert-controller.ts b/src/angular/alert-controller.ts index 6b09db5..fd83343 100644 --- a/src/angular/alert-controller.ts +++ b/src/angular/alert-controller.ts @@ -1,9 +1,10 @@ -import {AlertMock} from './alert'; +import { createSpyObj } from '../utilities/create-spy'; +import { AlertMock } from './alert'; export class AlertControllerMock { public static instance(alertMock?: AlertMock): any { - let instance = jasmine.createSpyObj('AlertController', ['create']); + let instance = createSpyObj('AlertController', ['create']); instance.create.and.returnValue(alertMock || AlertMock.instance()); return instance; diff --git a/src/angular/alert.ts b/src/angular/alert.ts index 1936bcc..db07cf7 100644 --- a/src/angular/alert.ts +++ b/src/angular/alert.ts @@ -1,7 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class AlertMock { public static instance(): any { let _dismissCallback: Function; - let instance = jasmine.createSpyObj('Alert', ['present', 'dismiss', 'onDidDismiss']); + let instance = createSpyObj('Alert', ['present', 'dismiss', 'onDidDismiss']); instance.present.and.returnValue(Promise.resolve()); instance.dismiss.and.callFake(() => { diff --git a/src/angular/app.ts b/src/angular/app.ts index b4f0b7d..7a28321 100644 --- a/src/angular/app.ts +++ b/src/angular/app.ts @@ -1,11 +1,12 @@ -import {Observable} from 'rxjs/Observable'; -import {ArrayObservable} from 'rxjs/observable/ArrayObservable'; -import {NavControllerMock} from './nav-controller'; +import {createSpyObj} from '../utilities/create-spy'; +import {Observable} from 'rxjs/Observable'; +import {ArrayObservable} from 'rxjs/observable/ArrayObservable'; +import {NavControllerMock} from './nav-controller'; export class AppMock { public static instance(navCtrl?: NavControllerMock, viewObservable?: Observable): any { - let instance = jasmine.createSpyObj('App', [ + let instance = createSpyObj('App', [ 'getActiveNav', 'getRootNav', 'isScrolling', diff --git a/src/angular/config.ts b/src/angular/config.ts index caef209..1eb09e9 100644 --- a/src/angular/config.ts +++ b/src/angular/config.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class ConfigMock { public static instance(): any { - let instance = jasmine.createSpyObj('Config', [ + let instance = createSpyObj('Config', [ 'get', 'getBoolean', 'getNumber', diff --git a/src/angular/content.ts b/src/angular/content.ts index 756b0a9..0ff031f 100644 --- a/src/angular/content.ts +++ b/src/angular/content.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class ContentMock { public static instance(): any { - let instance = jasmine.createSpyObj('Content', ['addImg', 'getContentDimensions', 'getFixedElement', 'resize', 'scrollTo', 'scrollToBottom', 'scrollToTop']); + let instance = createSpyObj('Content', ['addImg', 'getContentDimensions', 'getFixedElement', 'resize', 'scrollTo', 'scrollToBottom', 'scrollToTop']); instance['contentBottom'] = 10; instance['contentHeight'] = 10; instance['contentTop'] = 10; diff --git a/src/angular/events.ts b/src/angular/events.ts index 7fc8692..2890729 100644 --- a/src/angular/events.ts +++ b/src/angular/events.ts @@ -1,5 +1,7 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class EventsMock { public static instance(): any { - return jasmine.createSpyObj('events', ['subscribe', 'publish', 'unsubscribe']); + return createSpyObj('events', ['subscribe', 'publish', 'unsubscribe']); } } diff --git a/src/angular/form.ts b/src/angular/form.ts index 2c331c3..1b0641e 100644 --- a/src/angular/form.ts +++ b/src/angular/form.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class FormMock { public static instance(): any { - let instance = jasmine.createSpyObj('Form', [ + let instance = createSpyObj('Form', [ 'register', 'nextId', 'deregister', diff --git a/src/angular/haptic.ts b/src/angular/haptic.ts index 65a2a5c..b8779ad 100644 --- a/src/angular/haptic.ts +++ b/src/angular/haptic.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class HapticMock { public static instance(): any { - let instance = jasmine.createSpyObj('Haptic', ['available', + let instance = createSpyObj('Haptic', ['available', 'gestureSelectionChanged', 'gestureSelectionEnd', 'gestureSelectionStart', diff --git a/src/angular/inifinite-scroll.ts b/src/angular/inifinite-scroll.ts index 4a11f71..285a1bc 100644 --- a/src/angular/inifinite-scroll.ts +++ b/src/angular/inifinite-scroll.ts @@ -1,5 +1,7 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class InfiniteScrollMock { public static instance(): any { - return jasmine.createSpyObj('InfiniteScroll', ['complete', 'enable', 'waitFor']); + return createSpyObj('InfiniteScroll', ['complete', 'enable', 'waitFor']); } } diff --git a/src/angular/item-sliding.ts b/src/angular/item-sliding.ts index ba12026..71900c5 100644 --- a/src/angular/item-sliding.ts +++ b/src/angular/item-sliding.ts @@ -1,5 +1,7 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class ItemSlidingMock { public static instance(): any { - return jasmine.createSpyObj('ItemSliding', ['close']); + return createSpyObj('ItemSliding', ['close']); } } diff --git a/src/angular/keyboard.ts b/src/angular/keyboard.ts index 4d3ea3d..b201488 100644 --- a/src/angular/keyboard.ts +++ b/src/angular/keyboard.ts @@ -1,8 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; import { Observable } from 'rxjs/Observable'; export class IonKeyboardMock { public static instance(): any { - let instance = jasmine.createSpyObj('Keyboard', [ + let instance = createSpyObj('Keyboard', [ 'close', 'didHide', 'didShow', diff --git a/src/angular/loading-controller.ts b/src/angular/loading-controller.ts index 37aea91..7655a17 100644 --- a/src/angular/loading-controller.ts +++ b/src/angular/loading-controller.ts @@ -1,9 +1,10 @@ -import {LoadingMock} from './loading'; +import { createSpyObj } from '../utilities/create-spy'; +import { LoadingMock } from './loading'; export class LoadingControllerMock { public static instance(loading?: LoadingMock): any { - let instance = jasmine.createSpyObj('LoadingController', ['create']); + let instance = createSpyObj('LoadingController', ['create']); instance.create.and.returnValue(loading || LoadingMock.instance()); return instance; diff --git a/src/angular/loading.ts b/src/angular/loading.ts index 22188bb..78adf93 100644 --- a/src/angular/loading.ts +++ b/src/angular/loading.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class LoadingMock { public static instance(): any { - let instance = jasmine.createSpyObj('Loading', ['present', 'dismiss', 'setContent', 'setSpinner']); + let instance = createSpyObj('Loading', ['present', 'dismiss', 'setContent', 'setSpinner']); instance.present.and.returnValue(Promise.resolve()); return instance; diff --git a/src/angular/menu-controller.ts b/src/angular/menu-controller.ts index 8f6dc61..b219a2b 100644 --- a/src/angular/menu-controller.ts +++ b/src/angular/menu-controller.ts @@ -1,9 +1,10 @@ -import {MenuMock} from './menu'; +import { createSpyObj } from '../utilities/create-spy'; +import { MenuMock } from './menu'; export class MenuControllerMock { public static instance(menu?: MenuMock): any { let m = menu || MenuMock.instance(); - let instance = jasmine.createSpyObj('MenuController', ['close', 'enable', 'get', 'getMenus', 'getOpen', 'isEnabled', 'isOpen', 'open', 'swipeEnabled', 'toggle']); + let instance = createSpyObj('MenuController', ['close', 'enable', 'get', 'getMenus', 'getOpen', 'isEnabled', 'isOpen', 'open', 'swipeEnabled', 'toggle']); instance.close.and.returnValue(Promise.resolve()); instance.enable.and.returnValue(m); instance.get.and.returnValue(m); diff --git a/src/angular/menu.ts b/src/angular/menu.ts index 3060c7d..72d8653 100644 --- a/src/angular/menu.ts +++ b/src/angular/menu.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class MenuMock { public static instance(): any { - let instance = jasmine.createSpyObj('Menu', ['blank', 'open', 'close']); + let instance = createSpyObj('Menu', ['blank', 'open', 'close']); instance['content'] = 'menu content'; instance['enabled'] = true; instance['id'] = 'menuId'; diff --git a/src/angular/modal-controller.ts b/src/angular/modal-controller.ts index ed986fb..088cf0e 100644 --- a/src/angular/modal-controller.ts +++ b/src/angular/modal-controller.ts @@ -1,8 +1,9 @@ -import {ModalMock} from './modal'; +import { createSpyObj } from '../utilities/create-spy'; +import { ModalMock } from './modal'; export class ModalControllerMock { public static instance(modalMock?: ModalMock): any { - let instance = jasmine.createSpyObj('ModalController', ['create']); + let instance = createSpyObj('ModalController', ['create']); instance.create.and.returnValue(modalMock || ModalMock.instance()); return instance; diff --git a/src/angular/modal.ts b/src/angular/modal.ts index 6fb4c04..285ebfc 100644 --- a/src/angular/modal.ts +++ b/src/angular/modal.ts @@ -1,9 +1,11 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class ModalMock { public static instance(): any { let _dismissCallback: Function; - let instance = jasmine.createSpyObj('Modal', ['present', 'dismiss', 'onDidDismiss']); + let instance = createSpyObj('Modal', ['present', 'dismiss', 'onDidDismiss']); instance.present.and.returnValue(Promise.resolve()); - + instance.dismiss.and.callFake(() => { _dismissCallback(); return Promise.resolve(); diff --git a/src/angular/nav-controller.ts b/src/angular/nav-controller.ts index f329700..d0da0c4 100644 --- a/src/angular/nav-controller.ts +++ b/src/angular/nav-controller.ts @@ -5,7 +5,7 @@ export class NavControllerMock { public static instance(): any { - let instance: any = jasmine.createSpyObj('NavController', [ + let instance: any = createSpyObj('NavController', [ 'goToRoot', 'initPane', 'paneChanged', diff --git a/src/angular/nav-params.ts b/src/angular/nav-params.ts index 8578499..7ad4ee3 100644 --- a/src/angular/nav-params.ts +++ b/src/angular/nav-params.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class NavParamsMock { public static instance(getReturn?: any): any { - let instance = jasmine.createSpyObj('NavParams', ['get']); + let instance = createSpyObj('NavParams', ['get']); instance.get.and.returnValue(getReturn); return instance; diff --git a/src/angular/platform.ts b/src/angular/platform.ts index effd97d..017988a 100644 --- a/src/angular/platform.ts +++ b/src/angular/platform.ts @@ -1,7 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class PlatformMock { public static instance(): any { - let instance = jasmine.createSpyObj('Platform', [ + let instance = createSpyObj('Platform', [ 'dir', 'getQueryParam', 'height', diff --git a/src/angular/popover-controller.ts b/src/angular/popover-controller.ts index 3ec201a..b1d105a 100644 --- a/src/angular/popover-controller.ts +++ b/src/angular/popover-controller.ts @@ -1,9 +1,10 @@ -import {PopoverMock} from './popover'; +import { createSpyObj } from '../utilities/create-spy'; +import { PopoverMock } from './popover'; export class PopoverControllerMock { public static instance(popOver?: PopoverMock): any { - let instance = jasmine.createSpyObj('PopoverController', ['create']); + let instance = createSpyObj('PopoverController', ['create']); instance.create.and.returnValue(popOver || PopoverMock.instance()); return instance; diff --git a/src/angular/popover.ts b/src/angular/popover.ts index 2b3b834..8e1347d 100644 --- a/src/angular/popover.ts +++ b/src/angular/popover.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class PopoverMock { public static instance(): any { - let instance = jasmine.createSpyObj('Popover', ['present', 'dismissAll', 'setContent', 'setSpinner']); + let instance = createSpyObj('Popover', ['present', 'dismissAll', 'setContent', 'setSpinner']); instance.present.and.returnValue(Promise.resolve()); return instance; diff --git a/src/angular/slides.ts b/src/angular/slides.ts index be4f893..015f8c8 100644 --- a/src/angular/slides.ts +++ b/src/angular/slides.ts @@ -1,7 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class SlidesMock { public static instance(): any { - let instance = jasmine.createSpyObj('Slides', [ + let instance = createSpyObj('Slides', [ 'controlBy', 'controlInverse', 'enableKeyboardControl', diff --git a/src/angular/tab.ts b/src/angular/tab.ts index 1f75809..4a0bfbf 100644 --- a/src/angular/tab.ts +++ b/src/angular/tab.ts @@ -1,5 +1,7 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class TabMock { public static instance(): any { - return jasmine.createSpyObj('Tab', ['linker']); + return createSpyObj('Tab', ['linker']); } } diff --git a/src/angular/tabs.ts b/src/angular/tabs.ts index 9c0fa1b..1497792 100644 --- a/src/angular/tabs.ts +++ b/src/angular/tabs.ts @@ -1,8 +1,9 @@ -import {TabMock} from './tab'; +import { TabMock } from './tab'; +import { createSpyObj } from '../utilities/create-spy'; export class TabsMock { public static instance(defaultTab?: TabMock, selectedTab?: TabMock, previousTab?: TabMock): any { - let instance = jasmine.createSpyObj('Tabs', [ + let instance = createSpyObj('Tabs', [ 'select', 'getSelected', 'ngOnDestroy', diff --git a/src/angular/toast-controller.ts b/src/angular/toast-controller.ts index d80d344..201da99 100644 --- a/src/angular/toast-controller.ts +++ b/src/angular/toast-controller.ts @@ -1,9 +1,10 @@ -import {ToastMock} from './toast'; +import { createSpyObj } from '../utilities/create-spy'; +import { ToastMock } from './toast'; export class ToastControllerMock { public static instance(toast?: ToastMock): any { - let instance = jasmine.createSpyObj('ToastController', ['create']); + let instance = createSpyObj('ToastController', ['create']); instance.create.and.returnValue(toast || ToastMock.instance()); return instance; diff --git a/src/angular/toast.ts b/src/angular/toast.ts index 2407cc9..43257b6 100644 --- a/src/angular/toast.ts +++ b/src/angular/toast.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class ToastMock { public static instance(): any { - let instance = jasmine.createSpyObj('Toast', ['present', 'dismissAll', 'setContent', 'setSpinner']); + let instance = createSpyObj('Toast', ['present', 'dismissAll', 'setContent', 'setSpinner']); instance.present.and.returnValue(Promise.resolve()); return instance; diff --git a/src/angular/view-controller.ts b/src/angular/view-controller.ts index ac97314..ff2aa36 100644 --- a/src/angular/view-controller.ts +++ b/src/angular/view-controller.ts @@ -1,3 +1,4 @@ +import { createSpyObj } from '../utilities/create-spy'; import { ArrayObservable } from 'rxjs/observable/ArrayObservable'; import { NavParamsMock } from './nav-params'; import { NavControllerMock } from './nav-controller'; @@ -5,9 +6,9 @@ import { NavControllerMock } from './nav-controller'; export class ViewControllerMock { private static staticInstance: any = null; - //HACK- https://github.com/stonelasley/ionic-mocks/issues/29 + // HACK- https://github.com/stonelasley/ionic-mocks/issues/29 private static navController(): any { - let instance: any = jasmine.createSpyObj('NavController', [ + let instance: any = createSpyObj('NavController', [ 'goToRoot', 'initPane', 'paneChanged', @@ -96,7 +97,7 @@ export class ViewControllerMock { public static instance(): any { - let instance = jasmine.createSpyObj('ViewController', [ + let instance = createSpyObj('ViewController', [ 'willEnter', 'didEnter', 'willLeave', diff --git a/src/ionic/index.ts b/src/ionic/index.ts index df62c03..21af030 100644 --- a/src/ionic/index.ts +++ b/src/ionic/index.ts @@ -2,4 +2,4 @@ import { StorageMock } from './storage'; export { StorageMock -} +}; diff --git a/src/ionic/storage.ts b/src/ionic/storage.ts index 21e127d..7a50ce6 100644 --- a/src/ionic/storage.ts +++ b/src/ionic/storage.ts @@ -1,7 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class StorageMock { - public static instance(key:any = 'key1', value: any = 'value1'): any { + public static instance(key: any = 'key1', value: any = 'value1'): any { - let instance = jasmine.createSpyObj('Storage', [ + let instance = createSpyObj('Storage', [ 'driver', 'ready', 'get', diff --git a/src/native/google-analytics.ts b/src/native/google-analytics.ts index 7e41ce5..4430291 100644 --- a/src/native/google-analytics.ts +++ b/src/native/google-analytics.ts @@ -1,7 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class GoogleAnalyticsMock { public static instance(): any { - let instance = jasmine.createSpyObj('GoogleAnalytics', [ + let instance = createSpyObj('GoogleAnalytics', [ 'startTrackerWithId', 'setAllowIDFACollection', 'setUserId', diff --git a/src/native/keyboard.ts b/src/native/keyboard.ts index 5374188..554fa99 100644 --- a/src/native/keyboard.ts +++ b/src/native/keyboard.ts @@ -1,8 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; import {EmptyObservable} from 'rxjs/observable/EmptyObservable'; export class KeyboardMock { public static instance(): any { - let instance = jasmine.createSpyObj('Keyboard', [ + let instance = createSpyObj('Keyboard', [ 'hideKeyboardAccessoryBar', 'show', 'close', diff --git a/src/native/network.ts b/src/native/network.ts index 2d1bf90..98f6207 100644 --- a/src/native/network.ts +++ b/src/native/network.ts @@ -1,8 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; import { EmptyObservable } from 'rxjs/observable/EmptyObservable'; export class NetworkMock { public static instance(networkType: string): any { - let instance = jasmine.createSpyObj('Network', [ + let instance = createSpyObj('Network', [ 'type', 'downlinkMax', 'onChange', diff --git a/src/native/nfc.ts b/src/native/nfc.ts index 73cad3b..09ddc3b 100644 --- a/src/native/nfc.ts +++ b/src/native/nfc.ts @@ -1,8 +1,9 @@ +import { createSpyObj } from '../utilities/create-spy'; import { EmptyObservable } from 'rxjs/observable/EmptyObservable'; export class NFCMock { public static instance(): any { - let instance = jasmine.createSpyObj('NFC', [ + let instance = createSpyObj('NFC', [ 'addNdefListener', 'addTagDiscoveredListener', 'addMimeTypeListener', diff --git a/src/native/splash-screen.ts b/src/native/splash-screen.ts index 8122e10..1940189 100644 --- a/src/native/splash-screen.ts +++ b/src/native/splash-screen.ts @@ -1,5 +1,7 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class SplashScreenMock { public static instance(): any { - return jasmine.createSpyObj('SplashScreen', ['show', 'hide']); + return createSpyObj('SplashScreen', ['show', 'hide']); } } diff --git a/src/native/status-bar.ts b/src/native/status-bar.ts index 760991d..f89c956 100644 --- a/src/native/status-bar.ts +++ b/src/native/status-bar.ts @@ -1,6 +1,8 @@ +import { createSpyObj } from '../utilities/create-spy'; + export class StatusBarMock { public static instance(): any { - let instance: any = jasmine.createSpyObj('StatusBar', [ + let instance: any = createSpyObj('StatusBar', [ 'overlaysWebView', 'styleDefault', 'styleLightContent', diff --git a/src/native/three-dee-touch.ts b/src/native/three-dee-touch.ts index 38a380c..8ba05af 100644 --- a/src/native/three-dee-touch.ts +++ b/src/native/three-dee-touch.ts @@ -1,9 +1,10 @@ +import { createSpyObj } from '../utilities/create-spy'; import { ArrayObservable } from 'rxjs/observable/ArrayObservable'; import { EmptyObservable } from 'rxjs/observable/EmptyObservable'; -export class ThreeDeeTouchMock{ +export class ThreeDeeTouchMock { public static instance(): any { - let instance = jasmine.createSpyObj('ThreeDeeTouch', [ + let instance = createSpyObj('ThreeDeeTouch', [ 'isAvailable', 'watchForTouches', 'configureQuickActions', @@ -17,4 +18,4 @@ export class ThreeDeeTouchMock{ return instance; } -} \ No newline at end of file +} diff --git a/src/utilities/create-spy.ts b/src/utilities/create-spy.ts new file mode 100644 index 0000000..fb5fcd8 --- /dev/null +++ b/src/utilities/create-spy.ts @@ -0,0 +1,7 @@ +export function createSpyObj(baseName: string, methodNames: string[]) { + const obj: any = {}; + for (let i: number = 0; i < methodNames.length; i++) { + obj[methodNames[i]] = jasmine.createSpy(baseName, () => { }); + } + return obj; +}