import { IPaneElementState } from "../paneElement.interface"
import { paneElementObjectBuilder } from "./paneElement.methods.helpers"
import React, { Fragment } from 'react';
import { pushElement, replacePaneElement, removePaneElementByKey } from "../PaneElement.action"
import { store, resetApp } from "../../../../appStore";
import { Text } from "react-native";
describe('PaneElementStore tests', () => {
afterEach(() => {
store.dispatch(resetApp())
});
it('PUSH_PANE_ELEMENT', () => {
// Arrange
const expectedState: IPaneElementState =
{
PaneElements: paneElementObjectBuilder('first', )
}
// Act
store.dispatch(pushElement('first', ))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('PUSH_PANE_ELEMENT Multiple', () => {
// Arrange
const expectedState: IPaneElementState =
{
PaneElements: {
'first': ,
'second': ,
'third': ,
}
}
// Act
store.dispatch(pushElement('first', ))
store.dispatch(pushElement('second', ))
store.dispatch(pushElement('third', ))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REPLACE_PANE_ELEMENT', () => {
// Arrange
const expectedState: IPaneElementState = {
PaneElements: paneElementObjectBuilder('first', )
}
// Act
store.dispatch(pushElement('first', ))
store.dispatch(replacePaneElement('first', ))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REPLACE_PANE_ELEMENT Multiple', () => {
// Arrange
const expectedState: IPaneElementState = {
PaneElements: paneElementObjectBuilder('first',)
}
// Act
store.dispatch(pushElement('first', ))
store.dispatch(replacePaneElement('first', ))
store.dispatch(replacePaneElement('first', ))
store.dispatch(replacePaneElement('first', ))
store.dispatch(replacePaneElement('first', ))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REPLACE_PANE_ELEMENT not found', () => {
// Arrange
const expectedState: IPaneElementState = {
PaneElements: paneElementObjectBuilder('first',)
}
// Act
store.dispatch(pushElement('first', ))
store.dispatch(replacePaneElement('does not exist', ))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REMOVE_KEY_PANE_ELEMENT', () => {
// Arrange
const expectedState: IPaneElementState =
{
PaneElements: {
'first': ,
'third': ,
}
}
// Act
store.dispatch(pushElement('first',))
store.dispatch(pushElement('second',))
store.dispatch(pushElement('third', ))
store.dispatch(removePaneElementByKey('second'))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REMOVE_KEY_PANE_ELEMENT Multiple', () => {
// Arrange
const expectedState: IPaneElementState =
{
PaneElements: {
'first': ,
'third': ,
'fifth': ,
}
}
// Act
store.dispatch(pushElement('first', ,))
store.dispatch(pushElement('second', ,))
store.dispatch(pushElement('third', ,))
store.dispatch(pushElement('fourth', ,))
store.dispatch(pushElement('fifth', ,))
store.dispatch(removePaneElementByKey('second'))
store.dispatch(removePaneElementByKey('fourth'))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REMOVE_KEY_PANE_ELEMENT not found ', () => {
// Arrange
const expectedState: IPaneElementState =
{
PaneElements: {
'first': ,
'second': ,
'third': ,
}
}
// Act
store.dispatch(pushElement('first', ,))
store.dispatch(pushElement('second', ,))
store.dispatch(pushElement('third', ,))
store.dispatch(removePaneElementByKey('does not exist'))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
})