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); }) })