@@ -295,6 +295,62 @@ describe('AssessmentStore', () => {
295295 . testListenerToBeCalledOnce ( initialState , expectedState ) ;
296296 } ) ;
297297
298+ test ( 'on resetData: only reset data for one test with persisted data' , ( ) => {
299+ const expectedInstanceMap = { } ;
300+ const expectedManualTestStepResultMap = { } ;
301+
302+ const assessmentData = new AssessmentDataBuilder ( )
303+ . with ( 'generatedAssessmentInstancesMap' , expectedInstanceMap )
304+ . with ( 'manualTestStepResultMap' , expectedManualTestStepResultMap )
305+ . with ( 'testStepStatus' , getSampleTestStepsData ( ) )
306+ . build ( ) ;
307+
308+ const initialState = getStateWithAssessment ( assessmentData ) ;
309+ const expectedState = getDefaultStateWithDefaultAssessmentData (
310+ assessmentKey ,
311+ requirementKey ,
312+ ) ;
313+ const getVisualizationConfigurationMock = Mock . ofInstance ( ( ) => { } ) ;
314+ const visualizationConfigStub = {
315+ getAssessmentData : state => {
316+ return state . assessments [ assessmentKey ] ;
317+ } ,
318+ } as AssessmentVisualizationConfiguration ;
319+
320+ getVisualizationConfigurationMock
321+ . setup ( configGetter => configGetter ( ) )
322+ . returns ( ( ) => {
323+ return visualizationConfigStub ;
324+ } ) ;
325+
326+ const assessmentStub = {
327+ getVisualizationConfiguration : getVisualizationConfigurationMock . object ,
328+ key : assessmentKey ,
329+ requirements : [
330+ {
331+ key : requirementKey ,
332+ } ,
333+ ] ,
334+ } as Assessment ;
335+
336+ assessmentsProviderMock
337+ . setup ( apm => apm . forType ( assessmentType ) )
338+ . returns ( ( ) => assessmentStub ) ;
339+
340+ // Called with persisted data from initialize
341+ setupDataGeneratorMock ( initialState , getDefaultState ( ) , Times . once ( ) ) ;
342+ // Called without persisted data from resetData
343+ setupDataGeneratorMock ( null , expectedState , Times . once ( ) ) ;
344+
345+ const payload : ToggleActionPayload = {
346+ test : assessmentType ,
347+ } ;
348+
349+ createStoreTesterForAssessmentActions ( 'resetData' , initialState )
350+ . withActionParam ( payload )
351+ . testListenerToBeCalledOnce ( initialState , expectedState ) ;
352+ } ) ;
353+
298354 test ( 'test that tests indexedDB and also reset' , ( ) => {
299355 const expectedInstanceMap = { } ;
300356 const expectedManualTestStepResultMap = { } ;
@@ -442,6 +498,81 @@ describe('AssessmentStore', () => {
442498 expect ( ( ) => rejectCb ( ) ) . toThrowErrorMatchingSnapshot ( ) ;
443499 } ) ;
444500
501+ test ( 'onResetAllAssessmentsData with persisted data' , ( ) => {
502+ const persisted : AssessmentStoreData = {
503+ persistedTabInfo : null ,
504+ assessments : {
505+ [ 'assessment-1' ] : {
506+ fullAxeResultsMap : null ,
507+ generatedAssessmentInstancesMap : null ,
508+ manualTestStepResultMap : {
509+ [ 'assessment-1-step-1' ] : {
510+ instances : [ ] ,
511+ status : 2 ,
512+ id : 'assessment-1-step-1' ,
513+ } ,
514+ [ 'removed-step' ] : {
515+ instances : [ ] ,
516+ status : 2 ,
517+ id : '123' ,
518+ } ,
519+ } ,
520+ testStepStatus : { } ,
521+ } ,
522+ } ,
523+ assessmentNavState : {
524+ selectedTestType : null ,
525+ selectedTestSubview : null ,
526+ } ,
527+ resultDescription : '' ,
528+ } ;
529+
530+ const oldTabId = 1 ;
531+ const tabId = 1000 ;
532+ const url = 'url' ;
533+ const title = 'title' ;
534+ const tab : Tab = {
535+ id : tabId ,
536+ url,
537+ title,
538+ } ;
539+ let rejectCb ;
540+ browserMock
541+ . setup ( b => b . getTab ( tabId , It . isAny ( ) , It . isAny ( ) ) )
542+ . returns ( ( id , resolve , reject ) => {
543+ rejectCb = reject ;
544+ resolve ( tab ) ;
545+ } )
546+ . verifiable ( ) ;
547+
548+ assessmentsProviderMock . setup ( apm => apm . all ( ) ) . returns ( ( ) => assessmentsProvider . all ( ) ) ;
549+ const initialState = new AssessmentsStoreDataBuilder (
550+ assessmentsProvider ,
551+ assessmentDataConverterMock . object ,
552+ )
553+ . withSelectedTestType ( VisualizationType . Color )
554+ . withTargetTab ( oldTabId , null , null , true )
555+ . build ( ) ;
556+
557+ const finalState = new AssessmentsStoreDataBuilder (
558+ assessmentsProvider ,
559+ assessmentDataConverterMock . object ,
560+ )
561+ . withTargetTab ( tabId , url , title , false )
562+ . build ( ) ;
563+
564+ // Called with persisted data from initialize
565+ setupDataGeneratorMock ( persisted , getDefaultState ( ) , Times . once ( ) ) ;
566+ // Called without persisted data from resetAllAssessmentsData
567+ setupDataGeneratorMock ( null , getDefaultState ( ) , Times . once ( ) ) ;
568+
569+ createStoreTesterForAssessmentActions ( 'resetAllAssessmentsData' , persisted )
570+ . withActionParam ( tabId )
571+ . testListenerToBeCalledOnce ( initialState , finalState ) ;
572+
573+ expect ( ( ) => rejectCb ( ) ) . toThrowErrorMatchingSnapshot ( ) ;
574+ } ) ;
575+
445576 test ( 'onContinuePreviousAssessment' , ( ) => {
446577 const oldTabId = 1 ;
447578 const tabId = 1000 ;
@@ -2019,6 +2150,7 @@ describe('AssessmentStore', () => {
20192150
20202151 function createStoreTesterForAssessmentActions (
20212152 actionName : keyof AssessmentActions ,
2153+ persistedData : AssessmentStoreData = null ,
20222154 ) : AssessmentStoreTester < AssessmentStoreData , AssessmentActions > {
20232155 const factory = ( actions : AssessmentActions ) =>
20242156 new AssessmentStore (
@@ -2028,7 +2160,7 @@ describe('AssessmentStore', () => {
20282160 assessmentDataRemoverMock . object ,
20292161 assessmentsProviderMock . object ,
20302162 indexDBInstanceMock . object ,
2031- null ,
2163+ persistedData ,
20322164 initialAssessmentStoreDataGeneratorMock . object ,
20332165 failTestOnErrorLogger ,
20342166 ) ;
0 commit comments