@@ -108,79 +108,73 @@ describe( 'FrequencySelector', () => {
108108 expect ( containerElement ) . toMatchSnapshot ( ) ;
109109 } ) ;
110110
111- it ( 'Previously saved frequency (saved monthly, current weekly) indicates saved on monthly only and matches snapshot' , ( ) => {
111+ it ( 'Previously saved frequency (saved monthly, current weekly) shows current subscription pill above monthly card and matches snapshot' , ( ) => {
112112 setupRegistry ( registry , {
113113 startOfWeek : 1 ,
114114 frequency : 'weekly' ,
115115 savedFrequency : 'monthly' ,
116116 } ) ;
117117
118- const { containerElement, getByText } = renderSelector ( registry , {
119- isUserSubscribed : true ,
120- } ) ;
121-
122- const indicators = containerElement . querySelectorAll (
123- '.googlesitekit-frequency-selector__saved-indicator'
118+ const { container, containerElement, getByText } = renderSelector (
119+ registry ,
120+ {
121+ isUserSubscribed : true ,
122+ }
124123 ) ;
125- expect ( indicators . length ) . toBe ( 1 ) ;
126124
127- const monthlyLabel = getByText ( 'Monthly' ) ;
128- const monthlyCard = monthlyLabel . closest (
129- '.googlesitekit-frequency-selector__card '
125+ // Check that there's exactly one current subscription pill.
126+ const pills = container . querySelectorAll (
127+ '.googlesitekit-frequency-selector__current-subscription '
130128 ) ;
131- expect ( monthlyCard ) . toBeTruthy ( ) ;
132- expect (
133- monthlyCard . querySelector (
134- '.googlesitekit-frequency-selector__saved-indicator'
135- )
136- ) . toBeInTheDocument ( ) ;
129+ expect ( pills . length ) . toBe ( 1 ) ;
137130
138- const weeklyLabel = getByText ( 'Weekly' ) ;
139- const weeklyCard = weeklyLabel . closest (
140- '.googlesitekit-frequency-selector__card '
131+ // Check that the badge row exists and contains the pill.
132+ const badgeRow = container . querySelector (
133+ '.googlesitekit-frequency-selector__badge-row '
141134 ) ;
135+ expect ( badgeRow ) . toBeInTheDocument ( ) ;
142136 expect (
143- weeklyCard . querySelector (
144- '.googlesitekit-frequency-selector__saved-indicator '
137+ badgeRow . querySelector (
138+ '.googlesitekit-frequency-selector__current-subscription '
145139 )
146- ) . not . toBeInTheDocument ( ) ;
140+ ) . toBeInTheDocument ( ) ;
147141
148- const quarterlyLabel = getByText ( 'Quarterly' ) ;
149- const quarterlyCard = quarterlyLabel . closest (
150- '.googlesitekit-frequency-selector__card'
151- ) ;
152- expect (
153- quarterlyCard . querySelector (
154- '.googlesitekit-frequency-selector__saved-indicator'
155- )
156- ) . not . toBeInTheDocument ( ) ;
142+ // Check that the pill text is correct.
143+ expect ( getByText ( 'Current subscription' ) ) . toBeInTheDocument ( ) ;
157144
158145 expect ( containerElement ) . toMatchSnapshot ( ) ;
159146 } ) ;
160147
161- it ( 'Previously saved frequency (same as the current frequency) shows saved indicator on selected card and matches snapshot' , ( ) => {
148+ it ( 'Previously saved frequency (same as the current frequency) shows current subscription pill above selected card and matches snapshot' , ( ) => {
162149 setupRegistry ( registry , {
163150 startOfWeek : 1 ,
164151 frequency : 'monthly' ,
165152 savedFrequency : 'monthly' ,
166153 } ) ;
167154
168- const { containerElement, getByText } = renderSelector ( registry , {
169- isUserSubscribed : true ,
170- } ) ;
171-
172- const monthlyLabel = getByText ( 'Monthly' ) ;
173- const monthlyCard = monthlyLabel . closest (
174- '.googlesitekit-frequency-selector__card'
155+ const { container, containerElement, getByText } = renderSelector (
156+ registry ,
157+ {
158+ isUserSubscribed : true ,
159+ }
175160 ) ;
176- expect ( monthlyCard ) . toBeTruthy ( ) ;
177161
162+ // Check that there's exactly one current subscription pill in the badge row.
163+ const badgeRow = container . querySelector (
164+ '.googlesitekit-frequency-selector__badge-row'
165+ ) ;
166+ expect ( badgeRow ) . toBeInTheDocument ( ) ;
178167 expect (
179- monthlyCard . querySelector (
180- '.googlesitekit-frequency-selector__saved-indicator '
168+ badgeRow . querySelector (
169+ '.googlesitekit-frequency-selector__current-subscription '
181170 )
182171 ) . toBeInTheDocument ( ) ;
183172
173+ // Check that the monthly card is selected.
174+ const monthlyLabel = getByText ( 'Monthly' ) ;
175+ const monthlyCard = monthlyLabel . closest (
176+ '.googlesitekit-frequency-selector__card'
177+ ) ;
184178 expect (
185179 monthlyCard . classList . contains (
186180 'googlesitekit-frequency-selector__card--selected'
0 commit comments