@@ -1187,6 +1187,95 @@ describe('MatTabNavBar with a default config', () => {
1187
1187
} ) ;
1188
1188
} ) ;
1189
1189
1190
+ describe ( 'MatTabGroup labels aligned with a config' , ( ) => {
1191
+ it ( 'should work with start align' , ( ) => {
1192
+ const fixture = TestBed . configureTestingModule ( {
1193
+ imports : [ MatTabsModule , BrowserAnimationsModule , TabsWithAlignConfig ] ,
1194
+ providers : [
1195
+ {
1196
+ provide : MAT_TABS_CONFIG ,
1197
+ useValue : { alignTabs : 'start' } ,
1198
+ } ,
1199
+ ] ,
1200
+ } ) . createComponent ( TabsWithAlignConfig ) ;
1201
+ fixture . detectChanges ( ) ;
1202
+
1203
+ const tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="start"]' ) ;
1204
+ expect ( tabElement ) . toBeTruthy ( ) ;
1205
+ } ) ;
1206
+
1207
+ it ( 'should work with center align' , ( ) => {
1208
+ const fixture = TestBed . configureTestingModule ( {
1209
+ imports : [ MatTabsModule , BrowserAnimationsModule , TabsWithAlignConfig ] ,
1210
+ providers : [
1211
+ {
1212
+ provide : MAT_TABS_CONFIG ,
1213
+ useValue : { alignTabs : 'center' } ,
1214
+ } ,
1215
+ ] ,
1216
+ } ) . createComponent ( TabsWithAlignConfig ) ;
1217
+ fixture . detectChanges ( ) ;
1218
+
1219
+ const tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="center"]' ) ;
1220
+ expect ( tabElement ) . toBeTruthy ( ) ;
1221
+ } ) ;
1222
+
1223
+ it ( 'should work with end align' , ( ) => {
1224
+ const fixture = TestBed . configureTestingModule ( {
1225
+ imports : [ MatTabsModule , BrowserAnimationsModule , TabsWithAlignConfig ] ,
1226
+ providers : [
1227
+ {
1228
+ provide : MAT_TABS_CONFIG ,
1229
+ useValue : { alignTabs : 'end' } ,
1230
+ } ,
1231
+ ] ,
1232
+ } ) . createComponent ( TabsWithAlignConfig ) ;
1233
+ fixture . detectChanges ( ) ;
1234
+
1235
+ const tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="end"]' ) ;
1236
+ expect ( tabElement ) . toBeTruthy ( ) ;
1237
+ } ) ;
1238
+
1239
+ it ( 'should not add align if default config doesnt set align' , ( ) => {
1240
+ const fixture = TestBed . configureTestingModule ( {
1241
+ imports : [ MatTabsModule , BrowserAnimationsModule , TabsWithAlignConfig ] ,
1242
+ } ) . createComponent ( TabsWithAlignConfig ) ;
1243
+ fixture . detectChanges ( ) ;
1244
+
1245
+ let tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="start"]' ) ;
1246
+ expect ( tabElement ) . toBeFalsy ( ) ;
1247
+
1248
+ tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="center"]' ) ;
1249
+ expect ( tabElement ) . toBeFalsy ( ) ;
1250
+
1251
+ tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="end"]' ) ;
1252
+ expect ( tabElement ) . toBeFalsy ( ) ;
1253
+
1254
+ tabElement = fixture . nativeElement . querySelector ( '.mat-mdc-tab-group' ) ;
1255
+ expect ( tabElement ) . toBeTruthy ( ) ;
1256
+ } ) ;
1257
+
1258
+ it ( 'should not break if config sets align on already aligned tabs' , ( ) => {
1259
+ const fixture = TestBed . configureTestingModule ( {
1260
+ imports : [ MatTabsModule , BrowserAnimationsModule , TabsWithAlignCenter ] ,
1261
+ providers : [ { provide : MAT_TABS_CONFIG , useValue : { alignTabs : 'end' } } ] ,
1262
+ } ) . createComponent ( TabsWithAlignCenter ) ;
1263
+ fixture . detectChanges ( ) ;
1264
+
1265
+ let tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="start"]' ) ;
1266
+ expect ( tabElement ) . toBeFalsy ( ) ;
1267
+
1268
+ tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="center"]' ) ;
1269
+ expect ( tabElement ) . toBeTruthy ( ) ;
1270
+
1271
+ tabElement = fixture . nativeElement . querySelector ( '[mat-align-tabs="end"]' ) ;
1272
+ expect ( tabElement ) . toBeFalsy ( ) ;
1273
+
1274
+ tabElement = fixture . nativeElement . querySelector ( '.mat-mdc-tab-group' ) ;
1275
+ expect ( tabElement ) . toBeTruthy ( ) ;
1276
+ } ) ;
1277
+ } ) ;
1278
+
1190
1279
@Component ( {
1191
1280
template : `
1192
1281
<mat-tab-group class="tab-group"
@@ -1547,3 +1636,35 @@ class TabsWithClassesTestApp {
1547
1636
labelClassList ?: string | string [ ] ;
1548
1637
bodyClassList ?: string | string [ ] ;
1549
1638
}
1639
+
1640
+ @Component ( {
1641
+ template : `
1642
+ <mat-tab-group>
1643
+ <mat-tab>
1644
+ First
1645
+ </mat-tab>
1646
+ <mat-tab>
1647
+ Second
1648
+ </mat-tab>
1649
+ </mat-tab-group>
1650
+ ` ,
1651
+ standalone : true ,
1652
+ imports : [ MatTabsModule ] ,
1653
+ } )
1654
+ class TabsWithAlignConfig { }
1655
+
1656
+ @Component ( {
1657
+ template : `
1658
+ <mat-tab-group mat-align-tabs="center">
1659
+ <mat-tab>
1660
+ First
1661
+ </mat-tab>
1662
+ <mat-tab>
1663
+ Second
1664
+ </mat-tab>
1665
+ </mat-tab-group>
1666
+ ` ,
1667
+ standalone : true ,
1668
+ imports : [ MatTabsModule ] ,
1669
+ } )
1670
+ class TabsWithAlignCenter { }
0 commit comments