11import { ComponentFixture , TestBed } from '@angular/core/testing' ;
2- import { CardCodeViewerComponent } from './card-code-viewer.component' ;
3- import { createMatDialogMock } from 'src/app/test' ;
4- import { MatDialog } from '@angular/material/dialog' ;
2+ import {
3+ CardCodeViewerComponent ,
4+ CardCodeViewerDialogComponent ,
5+ ICardCodeViewerData ,
6+ } from './card-code-viewer.component' ;
7+ import {
8+ createMatDialogMock ,
9+ createMatDialogRefMock ,
10+ TestTranslateModule ,
11+ } from 'src/app/test' ;
12+ import {
13+ MAT_DIALOG_DATA ,
14+ MatDialog ,
15+ MatDialogRef ,
16+ } from '@angular/material/dialog' ;
17+ import { ELocalStorageKey } from 'src/app/app.consts' ;
518
619describe ( 'CardCodeViewerComponent' , ( ) => {
720 let fixture : ComponentFixture < CardCodeViewerComponent > ;
@@ -14,7 +27,6 @@ describe('CardCodeViewerComponent', () => {
1427
1528 await TestBed . configureTestingModule ( {
1629 providers : [ { provide : MatDialog , useValue : matDialogMock } ] ,
17- imports : [ CardCodeViewerComponent ] ,
1830 } ) . compileComponents ( ) ;
1931 } ) ;
2032
@@ -74,3 +86,60 @@ describe('CardCodeViewerComponent', () => {
7486 expect ( matDialogMock . open ) . toHaveBeenCalledTimes ( 1 ) ;
7587 } ) ;
7688} ) ;
89+
90+ describe ( 'CardCodeViewerDialogComponent' , ( ) => {
91+ let fixture : ComponentFixture < CardCodeViewerDialogComponent > ;
92+ let component : CardCodeViewerDialogComponent ;
93+
94+ let matDialogRefMock : ReturnType < typeof createMatDialogRefMock > ;
95+ let matDialogDataMock : ICardCodeViewerData ;
96+
97+ beforeEach ( async ( ) => {
98+ matDialogRefMock = createMatDialogRefMock ( ) ;
99+ matDialogDataMock = {
100+ card : {
101+ code : '0123456789012' ,
102+ code_type : 'ean13' ,
103+ } ,
104+ scale : 3 ,
105+ color : 'black' ,
106+ } ;
107+
108+ await TestBed . configureTestingModule ( {
109+ imports : [ TestTranslateModule ] ,
110+ providers : [
111+ { provide : MatDialogRef , useValue : matDialogRefMock } ,
112+ { provide : MAT_DIALOG_DATA , useValue : matDialogDataMock } ,
113+ ] ,
114+ } ) . compileComponents ( ) ;
115+ } ) ;
116+
117+ it ( 'should create' , ( ) => {
118+ fixture = TestBed . createComponent ( CardCodeViewerDialogComponent ) ;
119+ component = fixture . componentInstance ;
120+ fixture . detectChanges ( ) ;
121+ expect ( component ) . toBeTruthy ( ) ;
122+ } ) ;
123+
124+ it ( 'should preserve color inversion in local storage' , ( ) => {
125+ const lsGetSpy = spyOn ( localStorage , 'getItemJson' ) . and . callFake (
126+ ( ) => true as any ,
127+ ) ;
128+ const lsSetSpy = spyOn ( localStorage , 'setItemJson' ) . and . callFake ( ( ) => { } ) ;
129+ fixture = TestBed . createComponent ( CardCodeViewerDialogComponent ) ;
130+ component = fixture . componentInstance ;
131+ fixture . detectChanges ( ) ;
132+
133+ expect ( lsGetSpy ) . toHaveBeenCalledTimes ( 1 ) ;
134+ expect ( component . invert ( ) ) . toBeTrue ( ) ;
135+
136+ component . toggleInvert ( ) ;
137+
138+ expect ( lsSetSpy ) . toHaveBeenCalledTimes ( 1 ) ;
139+ expect ( lsSetSpy ) . toHaveBeenCalledWith (
140+ ELocalStorageKey . CODE_COLOR_INVERSION ,
141+ false ,
142+ ) ;
143+ expect ( component . invert ( ) ) . toBeFalse ( ) ;
144+ } ) ;
145+ } ) ;
0 commit comments