@@ -18,7 +18,12 @@ const dropdown = html.match(/<select\b[^>]*data-site-theme-select[^>]*>([\s\S]*?
1818assert . deepEqual ( [ ...dropdown . matchAll ( / < o p t i o n v a l u e = " ( [ ^ " ] + ) " / g) ] . map ( ( match ) => match [ 1 ] ) , [ 'sovereign' , ...expected ] ) ;
1919assert . match ( dropdown , / < o p t i o n v a l u e = " s o v e r e i g n " s e l e c t e d > / ) ;
2020assert . match ( html , / < l a b e l c l a s s = " s i t e - t h e m e " h i d d e n > / , 'Do not expose a nonfunctional dropdown without JavaScript' ) ;
21+ assert . match ( html , / < s e l e c t [ ^ > ] * a r i a - l a b e l = " S i t e c o l o r t h e m e " [ ^ > ] * t i t l e = " T h e m e : S o v e r e i g n \( o r i g i n a l \) " / ) ;
22+ assert . match ( html , / < s v g c l a s s = " s i t e - t h e m e _ _ i c o n " [ ^ > ] * a r i a - h i d d e n = " t r u e " / ) ;
23+ assert . match ( palettes , / \. s i t e - t h e m e : h a s \( s e l e c t : f o c u s - v i s i b l e \) / , 'The icon wrapper must expose native select focus' ) ;
2124assert . match ( html , / d a t a - t h e m e - s t a t u s a r i a - l i v e = " p o l i t e " / ) ;
25+ assert . match ( html , / c l a s s = " s m - b u t t o n s i t e - n a v _ _ c t a " / , 'Only the navbar CTA uses the compact outline treatment' ) ;
26+ assert . match ( html , / c l a s s = " s m - b u t t o n s m - b u t t o n - - p r i m a r y " h r e f = " h t t p s : \/ \/ i s o \. o m a r c h y \. o r g \/ / , 'The hero keeps its larger filled download button' ) ;
2227
2328class Element {
2429 dataset = { } ;
@@ -81,6 +86,7 @@ const { image, status, preview, body, select, inputs, storage, events, context }
8186assert . deepEqual ( Object . keys ( context . themes ) , expected , 'Markup and module choices must stay synchronized' ) ;
8287assert . equal ( body . dataset . siteTheme , 'sovereign' ) ;
8388assert . equal ( select . value , 'sovereign' ) ;
89+ assert . equal ( select . title , 'Theme: Sovereign (original)' ) ;
8490assert . equal ( select . label . hidden , false ) ;
8591assert . equal ( inputs . some ( ( input ) => input . checked ) , false ) ;
8692assert . equal ( storage . size , 0 , 'Do not write a preference before a user chooses one' ) ;
@@ -100,6 +106,7 @@ for (const input of inputs) {
100106 assert . equal ( preview . dataset . themePreview , input . value ) ;
101107 assert . equal ( body . dataset . siteTheme , input . value ) ;
102108 assert . equal ( select . value , input . value ) ;
109+ assert . equal ( select . title , `Theme: ${ theme . name } ` ) ;
103110 assert . equal ( storage . get ( 'omarchy-sovereign-theme' ) , input . value ) ;
104111 assert . equal ( image . src , theme . image ) ;
105112 assert . equal ( image . alt , theme . alt ) ;
@@ -122,6 +129,7 @@ for (const value of expected) {
122129
123130select . value = 'sovereign' ;
124131select . change ( ) ;
132+ assert . equal ( select . title , 'Theme: Sovereign (original)' ) ;
125133assert . equal ( body . dataset . siteTheme , 'sovereign' ) ;
126134assert . equal ( inputs . some ( ( input ) => input . checked ) , false ) ;
127135assert . equal ( preview . dataset . themePreview , 'tokyo-night' ) ;
0 commit comments