11// Copyright (c) Microsoft Corporation. All rights reserved.
22// Licensed under the MIT License.
3- import { AssessmentsProviderImpl } from 'assessments/assessments-provider' ;
43import { AssessmentsProvider } from 'assessments/types/assessments-provider' ;
54import { Assessment } from 'assessments/types/iassessment' ;
65import {
76 AddFailureInstancePayload ,
7+ AddResultDescriptionPayload ,
88 ChangeInstanceSelectionPayload ,
99 ChangeInstanceStatusPayload ,
1010 ChangeRequirementStatusPayload ,
@@ -19,28 +19,28 @@ import { AssessmentDataConverter } from 'background/assessment-data-converter';
1919import { AssessmentDataRemover } from 'background/assessment-data-remover' ;
2020import { InitialAssessmentStoreDataGenerator } from 'background/initial-assessment-store-data-generator' ;
2121import { AssessmentStore } from 'background/stores/assessment-store' ;
22- import { cloneDeep } from 'lodash' ;
23- import { IMock , It , Mock , MockBehavior , Times } from 'typemoq' ;
24- import { BrowserAdapter } from '../../../../../common/browser-adapters/browser-adapter' ;
25- import { AssessmentVisualizationConfiguration } from '../../../../../common/configs/assessment-visualization-configuration' ;
26- import { IndexedDBAPI } from '../../../../../common/indexedDB/indexedDB' ;
27- import { Tab } from '../../../../../common/itab' ;
28- import { StoreNames } from '../../../../../common/stores/store-names' ;
29- import { DetailsViewPivotType } from '../../../../../common/types/details-view-pivot-type' ;
30- import { ManualTestStatus , ManualTestStatusData , TestStepData } from '../../../../../common/types/manual-test-status' ;
22+ import { BrowserAdapter } from 'common/browser-adapters/browser-adapter' ;
23+ import { AssessmentVisualizationConfiguration } from 'common/configs/assessment-visualization-configuration' ;
24+ import { IndexedDBAPI } from 'common/indexedDB/indexedDB' ;
25+ import { Tab } from 'common/itab' ;
26+ import { StoreNames } from 'common/stores/store-names' ;
27+ import { DetailsViewPivotType } from 'common/types/details-view-pivot-type' ;
28+ import { ManualTestStatus , ManualTestStatusData , TestStepData } from 'common/types/manual-test-status' ;
3129import {
3230 AssessmentData ,
3331 AssessmentStoreData ,
3432 GeneratedAssessmentInstance ,
3533 ManualTestStepResult ,
3634 PersistedTabInfo ,
3735 TestStepResult ,
38- } from '../../../../../common/types/store-data/assessment-result-data' ;
39- import { VisualizationType } from '../../../../../common/types/visualization-type' ;
40- import { ScanBasePayload , ScanCompletedPayload , ScanUpdatePayload } from '../../../../../injected/analyzers/analyzer' ;
41- import { TabStopEvent } from '../../../../../injected/tab-stops-listener' ;
42- import { ScanResults } from '../../../../../scanner/iruleresults' ;
43- import { DictionaryStringTo } from '../../../../../types/common-types' ;
36+ } from 'common/types/store-data/assessment-result-data' ;
37+ import { VisualizationType } from 'common/types/visualization-type' ;
38+ import { ScanBasePayload , ScanCompletedPayload , ScanUpdatePayload } from 'injected/analyzers/analyzer' ;
39+ import { TabStopEvent } from 'injected/tab-stops-listener' ;
40+ import { cloneDeep , isFunction } from 'lodash' ;
41+ import { ScanResults } from 'scanner/iruleresults' ;
42+ import { IMock , It , Mock , MockBehavior , Times } from 'typemoq' ;
43+ import { DictionaryStringTo } from 'types/common-types' ;
4444import { AssessmentDataBuilder } from '../../../common/assessment-data-builder' ;
4545import { AssessmentsStoreDataBuilder } from '../../../common/assessment-store-data-builder' ;
4646import { AssessmentStoreTester } from '../../../common/assessment-store-tester' ;
@@ -76,24 +76,18 @@ describe('AssessmentStoreTest', () => {
7676 } as AssessmentVisualizationConfiguration ;
7777
7878 assessmentsProvider = CreateTestAssessmentProvider ( ) ;
79- assessmentsProviderMock = Mock . ofType ( AssessmentsProviderImpl , MockBehavior . Strict ) ;
79+ assessmentsProviderMock = Mock . ofType < AssessmentsProvider > ( undefined , MockBehavior . Strict ) ;
8080 assessmentMock = Mock . ofInstance ( {
8181 getVisualizationConfiguration : ( ) => {
8282 return null ;
8383 } ,
8484 } as Assessment ) ;
8585 assessmentDataConverterMock
86- . setup ( adcm => adcm . getNewManualTestStepResult ( It . isAny ( ) ) )
86+ . setup ( dataConverter => dataConverter . getNewManualTestStepResult ( It . isAny ( ) ) )
8787 . returns ( step => getDefaultManualTestStepResult ( step ) ) ;
8888
89- indexDBInstanceMock = Mock . ofInstance (
90- {
91- setItem : ( key , value ) => null ,
92- getItem : key => null ,
93- } as IndexedDBAPI ,
94- MockBehavior . Strict ,
95- ) ;
96- initialAssessmentStoreDataGeneratorMock = Mock . ofType ( InitialAssessmentStoreDataGenerator ) ;
89+ indexDBInstanceMock = Mock . ofType < IndexedDBAPI > ( undefined , MockBehavior . Strict ) ;
90+ initialAssessmentStoreDataGeneratorMock = Mock . ofType < InitialAssessmentStoreDataGenerator > ( ) ;
9791 } ) ;
9892
9993 afterEach ( ( ) => {
@@ -242,7 +236,7 @@ describe('AssessmentStoreTest', () => {
242236 } as AssessmentVisualizationConfiguration ;
243237
244238 getVisualizationConfigurationMock
245- . setup ( gvcm => gvcm ( ) )
239+ . setup ( configGetter => configGetter ( ) )
246240 . returns ( ( ) => {
247241 return visualizationConfigStub ;
248242 } ) ;
@@ -289,7 +283,7 @@ describe('AssessmentStoreTest', () => {
289283 } as AssessmentVisualizationConfiguration ;
290284
291285 getVisualizationConfigurationMock
292- . setup ( gvcm => gvcm ( ) )
286+ . setup ( configGetter => configGetter ( ) )
293287 . returns ( ( ) => {
294288 return visualizationConfigStub ;
295289 } ) ;
@@ -339,7 +333,7 @@ describe('AssessmentStoreTest', () => {
339333 } as AssessmentVisualizationConfiguration ;
340334
341335 getVisualizationConfigurationMock
342- . setup ( gvcm => gvcm ( ) )
336+ . setup ( configGetter => configGetter ( ) )
343337 . returns ( ( ) => {
344338 return visualizationConfigStub ;
345339 } ) ;
@@ -415,27 +409,20 @@ describe('AssessmentStoreTest', () => {
415409 url,
416410 title,
417411 } ;
418- let onReject ;
419- browserMock
420- . setup ( b => b . getTab ( tabId , It . isAny ( ) , It . isAny ( ) ) )
421- . returns ( ( id , cb , reject ) => {
422- onReject = reject ;
423- cb ( tab ) ;
424- } )
425- . verifiable ( ) ;
426412 assessmentsProviderMock . setup ( apm => apm . all ( ) ) . returns ( ( ) => assessmentsProvider . all ( ) ) ;
413+ browserMock . setup ( adapter => adapter . getTab ( tabId , It . is ( isFunction ) , It . is ( isFunction ) ) ) . callback ( ( id , resolve ) => resolve ( tab ) ) ;
414+
427415 const initialState = new AssessmentsStoreDataBuilder ( assessmentsProvider , assessmentDataConverterMock . object )
428416 . withTargetTab ( oldTabId , null , null , true )
429417 . build ( ) ;
418+
430419 const finalState = new AssessmentsStoreDataBuilder ( assessmentsProvider , assessmentDataConverterMock . object )
431420 . withTargetTab ( tabId , url , title , false )
432421 . build ( ) ;
433- setupDataGeneratorMock ( null , getDefaultState ( ) ) ;
434422
435- createStoreTesterForAssessmentActions ( 'resetAllAssessmentsData ' )
423+ createStoreTesterForAssessmentActions ( 'continuePreviousAssessment ' )
436424 . withActionParam ( tabId )
437425 . testListenerToBeCalledOnce ( initialState , finalState ) ;
438- expect ( ( ) => onReject ( ) ) . toThrowErrorMatchingSnapshot ( ) ;
439426 } ) ;
440427
441428 test ( 'onScanCompleted' , ( ) => {
@@ -472,17 +459,17 @@ describe('AssessmentStoreTest', () => {
472459
473460 const finalState = getStateWithAssessment ( assessmentData ) ;
474461
475- assessmentsProviderMock . setup ( apm => apm . all ( ) ) . returns ( ( ) => assessmentsProvider . all ( ) ) ;
462+ assessmentsProviderMock . setup ( provider => provider . all ( ) ) . returns ( ( ) => assessmentsProvider . all ( ) ) ;
476463
477- assessmentsProviderMock . setup ( apm => apm . getStepMap ( assessmentType ) ) . returns ( ( ) => stepMapStub ) ;
464+ assessmentsProviderMock . setup ( provider => provider . getStepMap ( assessmentType ) ) . returns ( ( ) => stepMapStub ) ;
478465
479- assessmentsProviderMock . setup ( apm => apm . getStep ( assessmentType , 'assessment-1-step-1' ) ) . returns ( ( ) => stepConfig ) ;
466+ assessmentsProviderMock . setup ( provider => provider . getStep ( assessmentType , 'assessment-1-step-1' ) ) . returns ( ( ) => stepConfig ) ;
480467
481- assessmentsProviderMock . setup ( apm => apm . forType ( payload . testType ) ) . returns ( ( ) => assessmentMock . object ) ;
468+ assessmentsProviderMock . setup ( provider => provider . forType ( payload . testType ) ) . returns ( ( ) => assessmentMock . object ) ;
482469
483470 assessmentMock . setup ( am => am . getVisualizationConfiguration ( ) ) . returns ( ( ) => configStub ) ;
484471
485- getInstanceIdentiferGeneratorMock . setup ( giim => giim ( requirementKey ) ) . returns ( ( ) => instanceIdentifierGeneratorStub ) ;
472+ getInstanceIdentiferGeneratorMock . setup ( idGetter => idGetter ( requirementKey ) ) . returns ( ( ) => instanceIdentifierGeneratorStub ) ;
486473
487474 assessmentDataConverterMock
488475 . setup ( a =>
@@ -530,19 +517,21 @@ describe('AssessmentStoreTest', () => {
530517
531518 const finalState = getStateWithAssessment ( assessmentData ) ;
532519
533- assessmentsProviderMock . setup ( apm => apm . all ( ) ) . returns ( ( ) => assessmentsProvider . all ( ) ) ;
520+ assessmentsProviderMock . setup ( provider => provider . all ( ) ) . returns ( ( ) => assessmentsProvider . all ( ) ) ;
534521
535- assessmentsProviderMock . setup ( apm => apm . getStepMap ( assessmentType ) ) . returns ( ( ) => assessmentsProvider . getStepMap ( assessmentType ) ) ;
522+ assessmentsProviderMock
523+ . setup ( provider => provider . getStepMap ( assessmentType ) )
524+ . returns ( ( ) => assessmentsProvider . getStepMap ( assessmentType ) ) ;
536525
537526 assessmentsProviderMock
538- . setup ( apm => apm . getStep ( assessmentType , requirementKey ) )
527+ . setup ( provider => provider . getStep ( assessmentType , requirementKey ) )
539528 . returns ( ( ) => assessmentsProvider . getStep ( assessmentType , requirementKey ) ) ;
540529
541- assessmentsProviderMock . setup ( apm => apm . forType ( payload . testType ) ) . returns ( ( ) => assessmentMock . object ) ;
530+ assessmentsProviderMock . setup ( provider => provider . forType ( payload . testType ) ) . returns ( ( ) => assessmentMock . object ) ;
542531
543532 assessmentMock . setup ( am => am . getVisualizationConfiguration ( ) ) . returns ( ( ) => configStub ) ;
544533
545- getInstanceIdentiferGeneratorMock . setup ( giim => giim ( requirementKey ) ) . returns ( ( ) => instanceIdentifierGeneratorStub ) ;
534+ getInstanceIdentiferGeneratorMock . setup ( getter => getter ( requirementKey ) ) . returns ( ( ) => instanceIdentifierGeneratorStub ) ;
546535
547536 assessmentDataConverterMock
548537 . setup ( a =>
@@ -1407,11 +1396,27 @@ describe('AssessmentStoreTest', () => {
14071396 assessmentsProviderMock . verifyAll ( ) ;
14081397 } ) ;
14091398
1410- test ( 'verify the MaunalTestStatus Priorities' , ( ) => {
1399+ test ( 'verify the ManualTestStatus Priorities' , ( ) => {
14111400 expect ( ManualTestStatus . PASS < ManualTestStatus . UNKNOWN ) . toBeTruthy ( ) ;
14121401 expect ( ManualTestStatus . UNKNOWN < ManualTestStatus . FAIL ) . toBeTruthy ( ) ;
14131402 } ) ;
14141403
1404+ test ( 'onAddResultDescription' , ( ) => {
1405+ const payload : AddResultDescriptionPayload = {
1406+ description : 'new-test-description' ,
1407+ } ;
1408+
1409+ const initialState = new AssessmentsStoreDataBuilder ( assessmentsProvider , assessmentDataConverterMock . object ) . build ( ) ;
1410+
1411+ const finalState = new AssessmentsStoreDataBuilder ( assessmentsProvider , assessmentDataConverterMock . object )
1412+ . with ( 'resultDescription' , payload . description )
1413+ . build ( ) ;
1414+
1415+ createStoreTesterForAssessmentActions ( 'addResultDescription' )
1416+ . withActionParam ( payload )
1417+ . testListenerToBeCalledOnce ( initialState , finalState ) ;
1418+ } ) ;
1419+
14151420 function setupDataGeneratorMock ( persistedData : AssessmentStoreData , initialData : AssessmentStoreData ) : void {
14161421 initialAssessmentStoreDataGeneratorMock
14171422 . setup ( im => im . generateInitialState ( persistedData ) )
0 commit comments