Change:
During development adding or modifying the head or tail code ( and ) don't seem to be updated in the challenge. Tested locally and on gitpod. Steps to reproduce the behavior: /modify the or in challenge. For example one of the steps in the JS curriculum. I was adding function and variables to it, and then was attempting to use them in tests. and wait for challenge to be updated. () the challenge page, or visit it for the first time. running tests, referencing the function/variables from head/tail code, there will be reference errors. Changing head or tail code, should update the challenge to use it. Login status don't seem to affect issue. During changing the code, thinking I might do something incorrectly, there were handful times when challenge was updated with the head/tail code. Not sure what was the exact reason. What makes it stranger is stopping client develop and starting again, is not necessarily solving the problem. At some point I thought that's working to get challenge fully updated, but right now that doesn't seem to work.
I might have seen this as well. I remember trying to save a regex in to use in multiple tests, and it didn't seem to work. Kind of just thought I was using it incorrectly, but maybe this was the issue.
Thanks for the detailed investigation of another tricky bug. It was another example where saved code messes things up. They're always a pain to debug because everyone sees something different, depending on whether or not they have something saved. Hopefully this is the last of them!
What's the most throwing off, that wasn't even code saved manually!
Weird. Is there nothing in your local storage?
Hmm, well there is after running tests. That must have been the point when saving mishap happened.
Oh, that's right. No mystery beyond "how did I forget this?" :face_exhaling:

Discussion:
*/`; function ShowClassic({ <del> challengeFiles: reduxChallengeFiles, </del> <ins> challengeFiles, </ins> data: { challengeNode: { challenge: { <del> challengeFiles, </del> <ins> challengeFiles: seedChallengeFiles, </ins> block, title, description,

}); createFiles( <del> mergeChallengeFiles(challengeFiles, savedChallenge?.challengeFiles) </del> <ins> mergeChallengeFiles(seedChallengeFiles, savedChallenge?.challengeFiles) </ins> ); initTests(tests);

isUsingKeyboardInTablist }: RenderEditorArgs) => { return ( <del> reduxChallengeFiles && ( </del> <ins> challengeFiles && ( </ins> <MultifileEditor <del> challengeFiles={reduxChallengeFiles} </del> <ins> challengeFiles={challengeFiles} </ins> block={block} superBlock={superBlock} containerRef={containerRef}

)} {!isMobile && ( <DesktopLayout <del> challengeFiles={reduxChallengeFiles} </del> <ins> challengeFiles={challengeFiles} </ins> challengeType={challengeType} editor={renderEditor({ isMobileLayout: false,

import { handleActions } from 'redux-actions'; import { getLines } from '../../../../../shared/utils/get-lines'; <ins> import { mergeChallengeFiles } from '../classic/saved-challenges'; </ins> import { getTargetEditor } from '../utils/get-target-editor'; import { actionTypes, ns } from './action-types'; import codeStorageEpic from './code-storage-epic';

}, [actionTypes.storedCodeFound]: (state, { payload }) => ({ ...state, <del> challengeFiles: payload </del> <ins> challengeFiles: state.challengeFiles.length ? mergeChallengeFiles(state.challengeFiles, payload) : payload </ins> }), [actionTypes.initTests]: (state, { payload }) => ({ ...state,