Merge pull request #4475 from LukeSchlangen/fix/mode-reducer

Retain showBranding mode property after SET_FULL_SCREEN action is dispatched
This commit is contained in:
Paul Kaplan authored and GitHub committed 2019-02-04 14:33:48 -05:00
commit 52a6136caa
2 files changed
+58 -7

No files matched your search

+5 -7
View File
@@ -12,16 +12,14 @@ const reducer = function (state, action) {
if (typeof state === 'undefined') state = initialState;
switch (action.type) {
case SET_FULL_SCREEN:
return {
isFullScreen: action.isFullScreen,
isPlayerOnly: state.isPlayerOnly
};
return Object.assign({}, state, {
isFullScreen: action.isFullScreen
});
case SET_PLAYER:
return {
isFullScreen: state.isFullScreen,
return Object.assign({}, state, {
isPlayerOnly: action.isPlayerOnly,
hasEverEnteredEditor: state.hasEverEnteredEditor || !action.isPlayerOnly
};
});
default:
return state;
}
+53
View File
@@ -0,0 +1,53 @@
/* eslint-env jest */
import modeReducer from '../../../src/reducers/mode';
const SET_FULL_SCREEN = 'scratch-gui/mode/SET_FULL_SCREEN';
const SET_PLAYER = 'scratch-gui/mode/SET_PLAYER';
test('initialState', () => {
let defaultState;
/* modeReducer(state, action) */
expect(modeReducer(defaultState, {type: 'anything'})).toBeDefined();
});
test('set full screen mode', () => {
const previousState = {
showBranding: false,
isFullScreen: false,
isPlayerOnly: false,
hasEverEnteredEditor: true
};
const action = {
type: SET_FULL_SCREEN,
isFullScreen: true
};
const newState = {
showBranding: false,
isFullScreen: true,
isPlayerOnly: false,
hasEverEnteredEditor: true
};
/* modeReducer(state, action) */
expect(modeReducer(previousState, action)).toEqual(newState);
});
test('set player mode', () => {
const previousState = {
showBranding: false,
isFullScreen: false,
isPlayerOnly: false,
hasEverEnteredEditor: true
};
const action = {
type: SET_PLAYER,
isPlayerOnly: true
};
const newState = {
showBranding: false,
isFullScreen: false,
isPlayerOnly: true,
hasEverEnteredEditor: true
};
/* modeReducer(state, action) */
expect(modeReducer(previousState, action)).toEqual(newState);
});