1+ import { CommonModule } from '@angular/common' ;
2+ import { fakeAsync } from '@angular/core/testing' ;
13import { IconType } from '@hypertrace/assets-library' ;
4+ import { Color , NavigationService } from '@hypertrace/common' ;
25import { IconComponent } from '@hypertrace/components' ;
36import { createHostFactory , mockProvider , Spectator } from '@ngneat/spectator/jest' ;
4- import { ColorPickerComponent } from './color-picker.component ' ;
7+ import { MockComponent } from 'ng-mocks ' ;
58import { SketchComponent } from 'ngx-color/sketch' ;
6- import { PopoverModule } from '../popover/popover.module ' ;
9+ import { NEVER , Observable } from 'rxjs ' ;
710import { NotificationService } from '../notification/notification.service' ;
8- import { CommonModule } from '@angular/common' ;
9- import { Observable } from 'rxjs' ;
10- import { MockComponent } from 'ng-mocks' ;
11+ import { PopoverModule } from '../popover/popover.module' ;
12+ import { ColorPickerComponent } from './color-picker.component' ;
1113
1214describe ( 'Color Picker component' , ( ) => {
1315 let spectator : Spectator < ColorPickerComponent > ;
1416
1517 const createHost = createHostFactory ( {
1618 component : ColorPickerComponent ,
1719 imports : [ CommonModule , PopoverModule ] ,
18- providers : [ mockProvider ( NotificationService , { withNotification : ( x : Observable < unknown > ) => x } ) ] ,
19- declareComponent : false ,
20+ providers : [
21+ mockProvider ( NotificationService , { withNotification : ( x : Observable < unknown > ) => x } ) ,
22+ mockProvider ( NavigationService , {
23+ navigation$ : NEVER
24+ } )
25+ ] ,
2026 declarations : [ MockComponent ( SketchComponent ) , MockComponent ( IconComponent ) ]
2127 } ) ;
2228
23- test ( 'should render color picker with default colors' , ( ) => {
29+ test ( 'should render color picker with default colors' , fakeAsync ( ( ) => {
2430 const onSelectionChangeSpy = jest . fn ( ) ;
2531 spectator = createHost (
2632 `<ht-color-picker (selectedChange)="onSelectionChange($event)">
@@ -32,7 +38,17 @@ describe('Color Picker component', () => {
3238 }
3339 ) ;
3440
35- expect ( spectator . queryAll ( '.color-picker .color' ) . length ) . toBe ( 7 ) ;
41+ const colors = spectator . queryAll ( '.color-picker .color' ) ;
42+ expect ( colors . length ) . toBe ( 7 ) ;
3643 expect ( spectator . query ( IconComponent ) ?. icon ) . toBe ( IconType . Add ) ;
37- } ) ;
44+
45+ spectator . click ( colors [ 1 ] ) ;
46+ expect ( spectator . component . selected ) . toEqual ( Color . Blue3 ) ;
47+ expect ( onSelectionChangeSpy ) . toHaveBeenCalledWith ( Color . Blue3 ) ;
48+
49+ spectator . click ( '.add-icon' ) ;
50+ spectator . tick ( ) ;
51+
52+ expect ( spectator . query ( '.color-sketch' , { root : true } ) ) . toExist ( ) ;
53+ } ) ) ;
3854} ) ;
0 commit comments