Skip to content

Commit d0eb28f

Browse files
authored
Merge pull request scratchfoundation#5362 from benjiwheeler/project-state-tests
refactor onLoadedProject() creator to handle success==false consistently; add tests of project state action creators
2 parents 731f3bb + 2e11787 commit d0eb28f

File tree

3 files changed

+171
-56
lines changed

3 files changed

+171
-56
lines changed

src/reducers/project-state.js

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const START_AUTO_UPDATING = 'scratch-gui/project-state/START_AUTO_UPDATING';
1717
const START_CREATING_NEW = 'scratch-gui/project-state/START_CREATING_NEW';
1818
const START_ERROR = 'scratch-gui/project-state/START_ERROR';
1919
const START_FETCHING_NEW = 'scratch-gui/project-state/START_FETCHING_NEW';
20-
const START_LOADING_VM_FILE_UPLOAD = 'scratch-gui/project-state/START_LOADING_FILE_UPLOAD';
20+
const START_LOADING_VM_FILE_UPLOAD = 'scratch-gui/project-state/START_LOADING_VM_FILE_UPLOAD';
2121
const START_MANUAL_UPDATING = 'scratch-gui/project-state/START_MANUAL_UPDATING';
2222
const START_REMIXING = 'scratch-gui/project-state/START_REMIXING';
2323
const START_UPDATING_BEFORE_CREATING_COPY = 'scratch-gui/project-state/START_UPDATING_BEFORE_CREATING_COPY';
@@ -413,32 +413,31 @@ const onFetchedProjectData = (projectData, loadingState) => {
413413
};
414414

415415
const onLoadedProject = (loadingState, canSave, success) => {
416-
if (success) {
417-
switch (loadingState) {
418-
case LoadingState.LOADING_VM_WITH_ID:
419-
return {
420-
type: DONE_LOADING_VM_WITH_ID
421-
};
422-
case LoadingState.LOADING_VM_FILE_UPLOAD:
416+
switch (loadingState) {
417+
case LoadingState.LOADING_VM_WITH_ID:
418+
if (success) {
419+
return {type: DONE_LOADING_VM_WITH_ID};
420+
}
421+
// failed to load project; just keep showing current project
422+
return {type: RETURN_TO_SHOWING};
423+
case LoadingState.LOADING_VM_FILE_UPLOAD:
424+
if (success) {
423425
if (canSave) {
424-
return {
425-
type: DONE_LOADING_VM_TO_SAVE
426-
};
426+
return {type: DONE_LOADING_VM_TO_SAVE};
427427
}
428-
return {
429-
type: DONE_LOADING_VM_WITHOUT_ID
430-
};
431-
case LoadingState.LOADING_VM_NEW_DEFAULT:
432-
return {
433-
type: DONE_LOADING_VM_WITHOUT_ID
434-
};
435-
default:
436-
return;
428+
return {type: DONE_LOADING_VM_WITHOUT_ID};
437429
}
430+
// failed to load project; just keep showing current project
431+
return {type: RETURN_TO_SHOWING};
432+
case LoadingState.LOADING_VM_NEW_DEFAULT:
433+
if (success) {
434+
return {type: DONE_LOADING_VM_WITHOUT_ID};
435+
}
436+
// failed to load default project; show error
437+
return {type: START_ERROR};
438+
default:
439+
return;
438440
}
439-
return {
440-
type: RETURN_TO_SHOWING
441-
};
442441
};
443442

444443
const doneUpdatingProject = loadingState => {

0 commit comments

Comments
 (0)