17
17
***********************************************************************/
18
18
19
19
import { render , screen } from '@testing-library/svelte' ;
20
+ import { tick } from 'svelte' ;
20
21
import { beforeEach , describe , expect , test , vi } from 'vitest' ;
21
22
22
23
import ExtensionBanner from '/@/lib/recommendation/ExtensionBanner.svelte' ;
@@ -54,7 +55,8 @@ const gradientBackground: IExtensionBanner = {
54
55
const imageBackground : IExtensionBanner = {
55
56
...baseBanner ,
56
57
background : {
57
- image : 'data:image/png;base64-image' ,
58
+ light : 'data:image/png;base64-image-light' ,
59
+ dark : 'data:image/png;base64-image-dark' ,
58
60
} ,
59
61
} ;
60
62
@@ -65,6 +67,7 @@ beforeEach(() => {
65
67
test ( 'banner icon should be visible' , ( ) => {
66
68
render ( ExtensionBanner , {
67
69
banner : baseBanner ,
70
+ isDark : true ,
68
71
} ) ;
69
72
70
73
const img = screen . getByAltText ( 'banner icon' ) ;
@@ -75,6 +78,7 @@ test('banner icon should be visible', () => {
75
78
test ( 'thumbnail should be visible' , ( ) => {
76
79
render ( ExtensionBanner , {
77
80
banner : baseBanner ,
81
+ isDark : true ,
78
82
} ) ;
79
83
80
84
const img = screen . getByAltText ( 'banner thumbnail' ) ;
@@ -86,6 +90,7 @@ describe('backgrounds', () => {
86
90
test ( 'expect default gradient background' , ( ) => {
87
91
render ( ExtensionBanner , {
88
92
banner : baseBanner ,
93
+ isDark : true ,
89
94
} ) ;
90
95
91
96
const card = screen . getByLabelText ( 'Recommended extension' ) ;
@@ -97,20 +102,40 @@ describe('backgrounds', () => {
97
102
test ( 'expect linear gradient background' , ( ) => {
98
103
render ( ExtensionBanner , {
99
104
banner : gradientBackground ,
105
+ isDark : true ,
100
106
} ) ;
107
+ tick ( ) ;
101
108
102
109
const card = screen . getByLabelText ( 'Recommended extension' ) ;
103
110
expect ( card ) . toBeDefined ( ) ;
104
111
expect ( card . attributes . getNamedItem ( 'style' ) ?. value ) . toBe ( 'background: linear-gradient(#fff, #000);' ) ;
105
112
} ) ;
106
113
107
- test ( 'expect image background' , ( ) => {
114
+ test ( 'expect image background for dark theme ' , ( ) => {
108
115
render ( ExtensionBanner , {
109
116
banner : imageBackground ,
117
+ isDark : true ,
110
118
} ) ;
119
+ tick ( ) ;
111
120
112
121
const card = screen . getByLabelText ( 'Recommended extension' ) ;
113
122
expect ( card ) . toBeDefined ( ) ;
114
- expect ( card . attributes . getNamedItem ( 'style' ) ?. value ) . toBe ( 'background-image: url("data:image/png;base64-image");' ) ;
123
+ expect ( card . attributes . getNamedItem ( 'style' ) ?. value ) . toBe (
124
+ 'background-image: url("data:image/png;base64-image-dark");' ,
125
+ ) ;
126
+ } ) ;
127
+
128
+ test ( 'expect image background for light theme' , ( ) => {
129
+ render ( ExtensionBanner , {
130
+ banner : imageBackground ,
131
+ isDark : false ,
132
+ } ) ;
133
+ tick ( ) ;
134
+
135
+ const card = screen . getByLabelText ( 'Recommended extension' ) ;
136
+ expect ( card ) . toBeDefined ( ) ;
137
+ expect ( card . attributes . getNamedItem ( 'style' ) ?. value ) . toBe (
138
+ 'background-image: url("data:image/png;base64-image-light");' ,
139
+ ) ;
115
140
} ) ;
116
141
} ) ;
0 commit comments