import { AppComponent } from './app.component' ; import { SetInitialStateAction } from '@alfresco/aca-shared/store' ; import { Router } from '@angular/router' ; import { TestBed } from '@angular/core/testing' ; import { RouterTestingModule } from '@angular/router/testing' ; describe ( 'AppComponent' , ( ) => { let component ; let router ; const storeMock = { dispatch : jasmine . createSpy ( 'dispatch' ) } ; const configMock = { get : ( key ) => { if ( key === 'baseShareUrl' ) { return 'http://localhost:4200/#/preview/s' ; } return null ; } } ; beforeEach ( ( ) => { TestBed . configureTestingModule ( { imports : [ RouterTestingModule . withRoutes ( [ { path : 'fake-path' , children : [ ] } ] ) ] } ) ; router = TestBed . inject ( Router ) ; component = new AppComponent ( null , router , null , storeMock , configMock , null , null , null , null , null , null , null , null ) ; storeMock . dispatch = jasmine . createSpy ( 'dispatch' ) ; } ) ; it ( 'should setup baseShareUrl as per config' , ( done ) => { storeMock . dispatch . and . callFake ( ( action ) => { expect ( action . payload . sharedUrl ) . toBe ( 'http://localhost:4200/#/preview/s/' ) ; done ( ) ; } ) ; component . loadAppSettings ( ) ; } ) ; describe ( 'onFileUploadedError' , ( ) => { it ( 'should dispatch 403 error message' , ( ) => { component . onFileUploadedError ( { error : { status : 403 } } as any ) ; expect ( storeMock . dispatch [ 'calls' ] . argsFor ( 0 ) [ 0 ] . payload ) . toBe ( 'APP.MESSAGES.UPLOAD.ERROR.403' ) ; } ) ; it ( 'should dispatch 404 error message' , ( ) => { component . onFileUploadedError ( { error : { status : 404 } } as any ) ; expect ( storeMock . dispatch [ 'calls' ] . argsFor ( 0 ) [ 0 ] . payload ) . toBe ( 'APP.MESSAGES.UPLOAD.ERROR.404' ) ; } ) ; it ( 'should dispatch 409 error message' , ( ) => { component . onFileUploadedError ( { error : { status : 409 } } as any ) ; expect ( storeMock . dispatch [ 'calls' ] . argsFor ( 0 ) [ 0 ] . payload ) . toBe ( 'APP.MESSAGES.UPLOAD.ERROR.CONFLICT' ) ; } ) ; it ( 'should dispatch 500 error message' , ( ) => { component . onFileUploadedError ( { error : { status : 500 } } as any ) ; expect ( storeMock . dispatch [ 'calls' ] . argsFor ( 0 ) [ 0 ] . payload ) . toBe ( 'APP.MESSAGES.UPLOAD.ERROR.500' ) ; } ) ; it ( 'should dispatch 504 error message' , ( ) => { component . onFileUploadedError ( { error : { status : 504 } } as any ) ; expect ( storeMock . dispatch [ 'calls' ] . argsFor ( 0 ) [ 0 ] . payload ) . toBe ( 'APP.MESSAGES.UPLOAD.ERROR.504' ) ; } ) ; it ( 'should dispatch generic error message' , ( ) => { component . onFileUploadedError ( { error : { status : 999 } } as any ) ; expect ( storeMock . dispatch [ 'calls' ] . argsFor ( 0 ) [ 0 ] . payload ) . toBe ( 'APP.MESSAGES.UPLOAD.ERROR.GENERIC' ) ; } ) ; } ) ; } ) ;