import onePane from '../../onePane/onePaneStore/onePane.methods';
import twoPane from '../../twoPane/twoPaneStore/twoPane.methods';
import utility from '../utility.methods';
import autoPane from '../autoPane.methods';
import React, { Fragment } from 'react';
import utilityStore from '../../shared/utilityStore/utilityStore.methods';
import { resetApp, store } from '../../appStore';
import { isTwoPaneAction } from '../../shared/utilityStore/utilityStore.actions';
import { getUtilityStore } from '../../shared/utilityStore/utilityStore.selectors';
describe('autoPane methods', () => {
describe('onePane Correct Methods Called', () => {
beforeEach(() => {
jest.clearAllMocks();
jest.spyOn(utility, 'isTwoPane').mockReturnValue(false);
});
it('Add', () => {
// Arrange
const onePaneAddSpy = jest.spyOn(onePane, 'Add');
const twoPaneAddSpy = jest.spyOn(twoPane, 'Add');
// Act
autoPane.Add('test', );
// Assert
expect(onePaneAddSpy).toBeCalled();
expect(onePaneAddSpy).toBeCalledTimes(1);
expect(twoPaneAddSpy).not.toBeCalled();
expect(twoPaneAddSpy).toBeCalledTimes(0);
});
it('AddOrMoveToFront', () => {
// Arrange
const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront');
const twoPaneAddAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront');
// Act
autoPane.AddOrMoveToFront('test', );
// Assert
expect(onePaneAddOrMoveToFrontSpy).toBeCalled();
expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(1);
expect(twoPaneAddAddOrMoveToFrontSpy).not.toBeCalled();
expect(twoPaneAddAddOrMoveToFrontSpy).toBeCalledTimes(0);
});
it('AddOrMoveToFrontTWO', () => {
// Arrange
const onePaneAddSpy = jest.spyOn(onePane, 'Add');
const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront');
const twoPaneAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront');
// Act
autoPane.AddOrMoveToFrontTWO('test', );
// Assert
expect(onePaneAddSpy).toBeCalled();
expect(onePaneAddSpy).toBeCalledTimes(1);
expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled();
expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0);
expect(twoPaneAddOrMoveToFrontSpy).not.toBeCalled();
expect(twoPaneAddOrMoveToFrontSpy).toBeCalledTimes(0);
});
it('AddOrMoveToFrontONE', () => {
// Arrange
const twoPaneAddSpy = jest.spyOn(twoPane, 'Add');
const twoPaneAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront');
const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront');
// Act
autoPane.AddOrMoveToFrontONE('test', );
// Assert
expect(onePaneAddOrMoveToFrontSpy).toBeCalled();
expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(1);
expect(twoPaneAddSpy).not.toBeCalled();
expect(twoPaneAddSpy).toBeCalledTimes(0);
expect(twoPaneAddOrMoveToFrontSpy).not.toBeCalled();
expect(twoPaneAddOrMoveToFrontSpy).toBeCalledTimes(0);
});
it('BackToHome', () => {
// Arrange
const onePaneBackToHomeSpy = jest.spyOn(onePane, 'BackToHome');
const twoPaneBackToHomeSpy = jest.spyOn(twoPane, 'BackToHome');
// Act
autoPane.BackToHome();
// Assert
expect(onePaneBackToHomeSpy).toBeCalled();
expect(onePaneBackToHomeSpy).toBeCalledTimes(1);
expect(twoPaneBackToHomeSpy).not.toBeCalled();
expect(twoPaneBackToHomeSpy).toBeCalledTimes(0);
});
it('GoBack', () => {
// Arrange
const onePaneGoBackSpy = jest.spyOn(onePane, 'GoBack');
const twoPaneGoBackSpy = jest.spyOn(twoPane, 'GoBack');
// Act
autoPane.GoBack();
// Assert
expect(onePaneGoBackSpy).toBeCalled();
expect(onePaneGoBackSpy).toBeCalledTimes(1);
expect(twoPaneGoBackSpy).not.toBeCalled();
expect(twoPaneGoBackSpy).toBeCalledTimes(0);
});
it('ReplacePane', () => {
// Arrange
const onePaneReplaceHeaderSpy = jest.spyOn(
onePane,
'ReplacePane'
);
const twoPaneReplaceHeaderSpy = jest.spyOn(
twoPane,
'ReplacePane'
);
// Act
autoPane.ReplacePane('test', );
// Assert
expect(onePaneReplaceHeaderSpy).toBeCalled();
expect(onePaneReplaceHeaderSpy).toBeCalledTimes(1);
expect(twoPaneReplaceHeaderSpy).not.toBeCalled();
expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(0);
});
it('ReplaceHeader', () => {
// Arrange
const onePaneReplaceHeaderSpy = jest.spyOn(
onePane,
'ReplaceHeader'
);
const twoPaneReplaceHeaderSpy = jest.spyOn(
twoPane,
'ReplaceHeader'
);
// Act
autoPane.ReplaceHeader('test', { title: 'test title' });
// Assert
expect(onePaneReplaceHeaderSpy).toBeCalled();
expect(onePaneReplaceHeaderSpy).toBeCalledTimes(1);
expect(twoPaneReplaceHeaderSpy).not.toBeCalled();
expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(0);
});
});
describe('twoPane Correct Methods Called', () => {
beforeEach(() => {
jest.clearAllMocks();
jest.spyOn(utility, 'isTwoPane').mockReturnValue(true);
});
it('Add', () => {
// Arrange
const onePaneAddSpy = jest.spyOn(onePane, 'Add');
const twoPaneAddSpy = jest.spyOn(twoPane, 'Add');
// Act
autoPane.Add('test', );
// Assert
expect(onePaneAddSpy).not.toBeCalled();
expect(onePaneAddSpy).toBeCalledTimes(0);
expect(twoPaneAddSpy).toBeCalled();
expect(twoPaneAddSpy).toBeCalledTimes(1);
});
it('AddOrMoveToFront', () => {
// Arrange
const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront');
const twoPaneAddAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront');
// Act
autoPane.AddOrMoveToFront('test', );
// Assert
expect(twoPaneAddAddOrMoveToFrontSpy).toBeCalled();
expect(twoPaneAddAddOrMoveToFrontSpy).toBeCalledTimes(1);
expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled();
expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0);
});
it('AddOrMoveToFrontTWO', () => {
// Arrange
const onePaneAddSpy = jest.spyOn(onePane, 'Add');
const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront');
const twoPaneAddOrMoveToFrontSpy = jest.spyOn(twoPane, 'AddOrMoveToFront');
// Act
autoPane.AddOrMoveToFrontTWO('test', );
// Assert
expect(twoPaneAddOrMoveToFrontSpy).toBeCalled();
expect(twoPaneAddOrMoveToFrontSpy).toBeCalledTimes(1);
expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled();
expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0);
expect(onePaneAddSpy).not.toBeCalled();
expect(onePaneAddSpy).toBeCalledTimes(0);
});
it('AddOrMoveToFrontONE', () => {
// Arrange
const onePaneAddSpy = jest.spyOn(onePane, 'Add');
const twoPaneAddSpy = jest.spyOn(twoPane, 'Add');
const onePaneAddOrMoveToFrontSpy = jest.spyOn(onePane, 'AddOrMoveToFront');
// Act
autoPane.AddOrMoveToFrontONE('test', );
// Assert
expect(twoPaneAddSpy).toBeCalled();
expect(twoPaneAddSpy).toBeCalledTimes(1);
expect(onePaneAddSpy).not.toBeCalled();
expect(onePaneAddSpy).toBeCalledTimes(0);
expect(onePaneAddOrMoveToFrontSpy).not.toBeCalled();
expect(onePaneAddOrMoveToFrontSpy).toBeCalledTimes(0);
});
it('BackToHome', () => {
// Arrange
const onePaneBackToHomeSpy = jest.spyOn(onePane, 'BackToHome');
const twoPaneBackToHomeSpy = jest.spyOn(twoPane, 'BackToHome');
// Act
autoPane.BackToHome();
// Assert
expect(onePaneBackToHomeSpy).not.toBeCalled();
expect(onePaneBackToHomeSpy).toBeCalledTimes(0);
expect(twoPaneBackToHomeSpy).toBeCalled();
expect(twoPaneBackToHomeSpy).toBeCalledTimes(1);
});
it('GoBack', () => {
// Arrange
const onePaneGoBackSpy = jest.spyOn(onePane, 'GoBack');
const twoPaneGoBackSpy = jest.spyOn(twoPane, 'GoBack');
// Act
autoPane.GoBack();
// Assert
expect(onePaneGoBackSpy).not.toBeCalled();
expect(onePaneGoBackSpy).toBeCalledTimes(0);
expect(twoPaneGoBackSpy).toBeCalled();
expect(twoPaneGoBackSpy).toBeCalledTimes(1);
});
it('ReplacePane', () => {
// Arrange
const onePaneReplaceHeaderSpy = jest.spyOn(
onePane,
'ReplacePane'
);
const twoPaneReplaceHeaderSpy = jest.spyOn(
twoPane,
'ReplacePane'
);
// Act
autoPane.ReplacePane('test', );
// Assert
expect(twoPaneReplaceHeaderSpy).toBeCalled();
expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(1);
expect(onePaneReplaceHeaderSpy).not.toBeCalled();
expect(onePaneReplaceHeaderSpy).toBeCalledTimes(0);
});
it('ReplaceHeader', () => {
// Arrange
const onePaneReplaceHeaderSpy = jest.spyOn(
onePane,
'ReplaceHeader'
);
const twoPaneReplaceHeaderSpy = jest.spyOn(
twoPane,
'ReplaceHeader'
);
// Act
autoPane.ReplaceHeader('test', { title: 'test title' });
// Assert
expect(twoPaneReplaceHeaderSpy).toBeCalled();
expect(twoPaneReplaceHeaderSpy).toBeCalledTimes(1);
expect(onePaneReplaceHeaderSpy).not.toBeCalled();
expect(onePaneReplaceHeaderSpy).toBeCalledTimes(0);
});
});
});