Skip to content

[DataGrid] Tweak display: flex and DataGridDisplayMode.Table #2341

[DataGrid] Tweak display: flex and DataGridDisplayMode.Table

[DataGrid] Tweak display: flex and DataGridDisplayMode.Table #2341

GitHub Actions / Core Tests succeeded Jan 12, 2025 in 0s

912 passed, 2 failed and 30 skipped

Tests failed

❌ TestResults/runneradmin_fv-az1785-210_2025-01-12_21_35_26.trx

944 tests were completed in 4s with 912 passed, 2 failed and 30 skipped.

Test suite Passed Failed Skipped Time
Microsoft.FluentUI.AspNetCore.Components.Tests._ToDo.Stack.FluentSlackTests 1✅ 2ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Accordion.FluentAccordionItemTests 13✅ 36ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Accordion.FluentAccordionTests 9✅ 17ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Anchor.FluentAnchorTests 34✅ 96ms
Microsoft.FluentUI.AspNetCore.Components.Tests.AnchoredRegion.FluentAnchoredRegionTests 36✅ 740ms
Microsoft.FluentUI.AspNetCore.Components.Tests.AppBar.FluentAppBarItemTests 6✅ 41ms
Microsoft.FluentUI.AspNetCore.Components.Tests.AppBar.FluentAppBarTests 4✅ 61ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Badge.FluentBadgeTests 17✅ 135ms
Microsoft.FluentUI.AspNetCore.Components.Tests.BodyContent.FluentBodyContentTests 2✅ 12ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Breadcrumb.FluentBreadcrumbItemTests 29✅ 160ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Breadcrumb.FluentBreadcrumbTests 5✅ 13ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Button.FluentButtonTests 64✅ 199ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Card.FluentCardTests 13✅ 51ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Checkbox.FluentCheckboxTests 18✅ 33ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Checkbox.FluentCheckboxThreeStatesTests 8✅ 25ms
Microsoft.FluentUI.AspNetCore.Components.Tests.CollapsibleRegion.FluentCollapsibleRegionTests 4✅ 9ms
Microsoft.FluentUI.AspNetCore.Components.Tests.CounterBadge.FluentCounterBadgeTests 28✅ 97ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.DataGridSortByTests 4✅ 129ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridColumSelectTests 22✅ 1❌ 850ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridTests 3✅ 1❌ 2s
Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.GridSortTests 10✅ 107ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.CalendarExtendedTests 1✅ 0ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.FluentCalendarSelectionTests 7✅ 155ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.FluentCalendarTests 49✅ 1s
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.FluentDatePickerTests 12✅ 77ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.FluentTimePickerTests 6✅ 29ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.RangeOfTests 7✅ 8ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.ToDateTimeExtensionsTests 25✅ 5ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DateTime.ToTimeAgoTests 31✅ 72ms
Microsoft.FluentUI.AspNetCore.Components.Tests.DesignSystemProvider.FluentDesignSystemProviderTests 1✅ 19ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Dialog.FluentDialogServiceTests 5✅ 118ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Dialog.FluentDialogTests 3✅ 35ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Divider.FluentDividerTests 6✅ 16ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Drag.FluentDragTests 1✅ 6ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Emojis.FluentEmojiTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Extensions.AdditionalAttributesExtensionsShould 24✅ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Flipper.FluentFlipperTests 2✅ 6ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Footer.FluentFooterTests 1✅ 3ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Forms.FluentValidationSummaryTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Grid.FluentGridTests 23✅ 48ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Header.FluentHeaderTests 3✅ 5ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Highlighter.FluentHighlighterTests 1✅ 513ms
Microsoft.FluentUI.AspNetCore.Components.Tests.HorizontalScroll.FluentHorizontalScrollTests 1✅ 8ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Icons.FluentIconTests 22✅ 51ms
Microsoft.FluentUI.AspNetCore.Components.Tests.InputFile.FluentInputFileTests 11✅ 55ms
Microsoft.FluentUI.AspNetCore.Components.Tests.KeyCodeProvider.FluentKeyCodeTests 13✅ 22ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Label.FluentInputLabelTests 5✅ 11ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Label.FluentLabelTests 20✅ 50ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Layout.FluentLayoutTests 4✅ 74ms
Microsoft.FluentUI.AspNetCore.Components.Tests.List.FluentAutocompleteTests 22✅ 538ms
Microsoft.FluentUI.AspNetCore.Components.Tests.List.FluentComboboxTests 3✅ 30ms
Microsoft.FluentUI.AspNetCore.Components.Tests.List.FluentListboxTests 6✅ 57ms
Microsoft.FluentUI.AspNetCore.Components.Tests.List.FluentPersonaTests 7✅ 59ms
Microsoft.FluentUI.AspNetCore.Components.Tests.List.FluentSelectTests 13✅ 84ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Main.FluentMainTests 1✅ 4ms
Microsoft.FluentUI.AspNetCore.Components.Tests.MainLayout.FluentMainLayoutTests 1✅ 107ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Menu.FluentMenuItemTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Menu.FluentMenuTests 1✅ 4ms
Microsoft.FluentUI.AspNetCore.Components.Tests.MenuButton.FluentMenuButtonTests 2✅ 13ms
Microsoft.FluentUI.AspNetCore.Components.Tests.MessageBar.FluentMessageBarTests 4✅ 20ms
Microsoft.FluentUI.AspNetCore.Components.Tests.MessageBar.MessageServiceTests 4✅ 76ms
Microsoft.FluentUI.AspNetCore.Components.Tests.NavMenu.FluentNavGroupTests 9✅ 61ms
Microsoft.FluentUI.AspNetCore.Components.Tests.NavMenu.FluentNavLinkTests 11✅ 117ms
Microsoft.FluentUI.AspNetCore.Components.Tests.NavMenu.FluentNavMenuTests 8✅ 29ms
Microsoft.FluentUI.AspNetCore.Components.Tests.NumberField.FluentNumberFieldTests 32✅ 81ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Overflow.FluentOverflowItemTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Overflow.FluentOverflowTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Overlay.FluentOverlayTests 1✅ 5ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Pagination.FluentPaginatorTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Popover.FluentPopoverTests 1✅ 6ms
Microsoft.FluentUI.AspNetCore.Components.Tests.PresenceBadge.FluentPresenceBadgeTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.ProfileMenu.FluentProfileMenuTests 5✅ 58ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Progress.FluentProgressRingTests 8✅ 27ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Progress.FluentProgressTests 7✅ 20ms
Microsoft.FluentUI.AspNetCore.Components.Tests.PullToRefresh.FluentPullToRefreshTests 20✅ 125ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Radio.FluentRadioGroupTests 1✅ 6ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Radio.FluentRadioTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Rating.FluentRatingTests 13✅ 69ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Search.FluentSearchTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Skeleton.FluentSkeletonTests 1✅ 5ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Slider.FluentSliderLabelTests 1✅ 29ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Slider.FluentSliderTests 7✅ 28ms
Microsoft.FluentUI.AspNetCore.Components.Tests.SortableList.FluentSortableListTests 3✅ 9ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Spacer.FluentSpacerTests 1✅ 2ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Splitter.FluentMultiSplitterTests 9✅ 77ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Splitter.FluentSplitterTests 15✅ 48ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Stack.FluentStackTests 1✅ 4ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Switch.FluentSwitchTests 1✅ 4ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Tabs.FluentTabsTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Tabs.FluentTabTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.TextArea.FluentTextAreaTests 1✅ 5ms
Microsoft.FluentUI.AspNetCore.Components.Tests.TextField.FluentTextFieldTests 1✅ 7ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Toast.FluentToastProviderTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Toast.FluentToastTests 1⚪ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Toolbar.FluentToolbarTests 1✅ 5ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Tooltip.FluentTooltipTests 2✅ 13ms
Microsoft.FluentUI.AspNetCore.Components.Tests.TreeView.FluentTreeViewItemsTests 11✅ 81ms
Microsoft.FluentUI.AspNetCore.Components.Tests.TreeView.FluentTreeViewTests 3✅ 17ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Utilities.CssBuilderTests 18✅ 2ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Utilities.DebounceActionTests 9⚪ 9ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Utilities.DebounceTaskTests 8⚪ 8ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Utilities.InlineStyleBuilderTests 7✅ 7ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Utilities.SplitterTests 3✅ 8ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Utilities.StyleBuilderTests 11✅ 1ms
Microsoft.FluentUI.AspNetCore.Components.Tests.Wizard.FluentWizardTests 21✅ 281ms

❌ Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridColumSelectTests

✅ FluentDataGrid_ColumSelect_MultiSelect_Customized_Rendering
✅ FluentDataGrid_ColumSelect_MultiSelect_NotSelectFromEntireRow
✅ FluentDataGrid_ColumSelect_MultiSelect_Property
✅ FluentDataGrid_ColumSelect_MultiSelect_Rendering
✅ FluentDataGrid_ColumSelect_MultiSelect_SelectAll_Property
✅ FluentDataGrid_ColumSelect_MultiSelect_SelectAll_SelectedItems
✅ FluentDataGrid_ColumSelect_MultiSelect_SelectedItems
✅ FluentDataGrid_ColumSelect_Selectable_MultiSelect_Property
✅ FluentDataGrid_ColumSelect_Selectable_MultiSelect_SelectedItems
✅ FluentDataGrid_ColumSelect_Selectable_SingleSelect_Property
✅ FluentDataGrid_ColumSelect_Selectable_SingleSelect_SelectedItems
✅ FluentDataGrid_ColumSelect_Selectable_SingleStickySelect_Property
✅ FluentDataGrid_ColumSelect_Selectable_SingleStickySelect_SelectedItems
✅ FluentDataGrid_ColumSelect_SelectAll_Disabled
✅ FluentDataGrid_ColumSelect_SingleSelect_NotSelectFromEntireRow
✅ FluentDataGrid_ColumSelect_SingleSelect_Property
✅ FluentDataGrid_ColumSelect_SingleSelect_Rendering
✅ FluentDataGrid_ColumSelect_SingleSelect_SelectedItems
✅ FluentDataGrid_ColumSelect_SingleStickySameItemSelect_SelectedItems
✅ FluentDataGrid_ColumSelect_SingleStickySelect_Property
❌ FluentDataGrid_ColumSelect_SingleStickySelect_Rendering
	Bunit.HtmlEqualException : HTML comparison failed. 
	
	The following errors were found:
	  1: The value of the attribute table(1) > thead(1) > tr(1) > th(1)[class] and actual attribute table(1) > thead(0) > tr(0) > th(0)[class] are different.
	  2: The value of the attribute table(1) > thead(1) > tr(1) > th(1)[style] and actual attribute table(1) > thead(0) > tr(0) > th(0)[style] are different.
	  3: The value of the attribute table(1) > thead(1) > tr(1) > th(3)[class] and actual attribute table(1) > thead(0) > tr(0) > th(1)[class] are different.
	  4: The value of the attribute table(1) > thead(1) > tr(1) > th(3)[style] and actual attribute table(1) > thead(0) > tr(0) > th(1)[style] are different.
	
	Actual HTML: 
	<table id="xxx" class="fluent-data-grid grid" style="grid-template-columns: 50px auto;" aria-rowcount="4"    >
	  <thead >
	    <tr class="fluent-data-grid-row" data-row-index="0" role="row" row-type="header"     >
	      <th col-index="1" class="column-header select-all col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-top: calc(var(--design-unit) * 2.5px); height: 32px; min-height: 44px;"     scope="col" aria-sort="none" ></th>
	      <th col-index="2" class="column-header col-justify-start" style="grid-column: 2; height: 32px; min-height: 44px;"     scope="col" aria-sort="none" >
	        <div class="col-title" style="width: calc(100% - 20px);" >
	          <div class="col-title-text" >Name</div>
	        </div>
	      </th>
	    </tr>
	  </thead>
	  <tbody >
	    <tr class="fluent-data-grid-row" data-row-index="2" role="row"     aria-rowindex="2" >
	      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
	        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
	          <title>Row unselected</title>
	          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
	        </svg>
	      </td>
	      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Jean Martin</td>
	    </tr>
	    <tr class="fluent-data-grid-row" data-row-index="3" role="row"     aria-rowindex="3" >
	      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
	        <svg style="width: 20px; fill: var(--accent-fill-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"   row-selected="">
	          <title>Row selected.</title>
	          <path d="M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-13a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-7 8a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"></path>
	        </svg>
	      </td>
	      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Kenji Sato</td>
	    </tr>
	    <tr class="fluent-data-grid-row" data-row-index="4" role="row"     aria-rowindex="4" >
	      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
	        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
	          <title>Row unselected</title>
	          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
	        </svg>
	      </td>
	      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Julie Smith</td>
	    </tr>
	  </tbody>
	</table>
	
	Expected HTML: 
	<table id="xxx" class="fluent-data-grid grid" style="grid-template-columns: 50px auto;" aria-rowcount="4"    >
	  <thead >
	    <tr class="fluent-data-grid-row" data-row-index="0" role="row" row-type="header"     >
	      <th col-index="1" class="column-header select-all col-justify-center col-sort-desc" style="grid-column: 1; text-align: center; align-content: center; padding-top: calc(var(--design-unit) * 2.5px); height: 32px; min-height: 44px; display: flex;"     scope="col" aria-sort="none" ></th>
	      <th col-index="2" class="column-header col-justify-start col-sort-desc" style="grid-column: 2; height: 32px; min-height: 44px; display: flex;"     scope="col" aria-sort="none" >
	        <div class="col-title" style="width: calc(100% - 20px);" >
	          <div class="col-title-text" >Name</div>
	        </div>
	      </th>
	    </tr>
	  </thead>
	  <tbody >
	    <tr class="fluent-data-grid-row" data-row-index="2" role="row"     aria-rowindex="2" >
	      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
	        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
	          <title>Row unselected</title>
	          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
	        </svg>
	      </td>
	      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Jean Martin</td>
	    </tr>
	    <tr class="fluent-data-grid-row" data-row-index="3" role="row"     aria-rowindex="3" >
	      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
	        <svg style="width: 20px; fill: var(--accent-fill-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"   row-selected="">
	          <title>Row selected.</title>
	          <path d="M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-13a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-7 8a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"></path>
	        </svg>
	      </td>
	      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Kenji Sato</td>
	    </tr>
	    <tr class="fluent-data-grid-row" data-row-index="4" role="row"     aria-rowindex="4" >
	      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
	        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
	          <title>Row unselected</title>
	          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
	        </svg>
	      </td>
	      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Julie Smith</td>
	    </tr>
	  </tbody>
	</table>
	
✅ FluentDataGrid_ColumSelect_SingleStickySelect_SelectedItems
✅ FluentDataGrid_ColumSelect_SwitchMultiToSingleSelect

❌ Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridTests

✅ FluentDataGrid_Default
✅ FluentDataGrid_With_Empty_Items_Stays_Loading_Until_Changed
❌ FluentDataGrid_With_ItemProvider_And_Uncontrolled_Loading_Starts_Loading
	Bunit.Extensions.WaitForHelpers.WaitForFailedException : The state predicate did not pass before the timeout period passed. Check count: 0. Component render count: 6. Total render count: 6.
✅ FluentDataGrid_With_ItemProvider_Stays_Loading_Until_ChangedAsync

Annotations

Check failure on line 113 in tests/Core/FluentAssert.cs

See this annotation in the file changed.

@github-actions github-actions / Core Tests

Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridColumSelectTests ► FluentDataGrid_ColumSelect_SingleStickySelect_Rendering

Failed test found in:
  TestResults/runneradmin_fv-az1785-210_2025-01-12_21_35_26.trx
Error:
  Bunit.HtmlEqualException : HTML comparison failed. 
  
  The following errors were found:
    1: The value of the attribute table(1) > thead(1) > tr(1) > th(1)[class] and actual attribute table(1) > thead(0) > tr(0) > th(0)[class] are different.
    2: The value of the attribute table(1) > thead(1) > tr(1) > th(1)[style] and actual attribute table(1) > thead(0) > tr(0) > th(0)[style] are different.
    3: The value of the attribute table(1) > thead(1) > tr(1) > th(3)[class] and actual attribute table(1) > thead(0) > tr(0) > th(1)[class] are different.
    4: The value of the attribute table(1) > thead(1) > tr(1) > th(3)[style] and actual attribute table(1) > thead(0) > tr(0) > th(1)[style] are different.
  
  Actual HTML: 
  <table id="xxx" class="fluent-data-grid grid" style="grid-template-columns: 50px auto;" aria-rowcount="4"    >
    <thead >
      <tr class="fluent-data-grid-row" data-row-index="0" role="row" row-type="header"     >
        <th col-index="1" class="column-header select-all col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-top: calc(var(--design-unit) * 2.5px); height: 32px; min-height: 44px;"     scope="col" aria-sort="none" ></th>
        <th col-index="2" class="column-header col-justify-start" style="grid-column: 2; height: 32px; min-height: 44px;"     scope="col" aria-sort="none" >
          <div class="col-title" style="width: calc(100% - 20px);" >
            <div class="col-title-text" >Name</div>
          </div>
        </th>
      </tr>
    </thead>
    <tbody >
      <tr class="fluent-data-grid-row" data-row-index="2" role="row"     aria-rowindex="2" >
        <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
          <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
            <title>Row unselected</title>
            <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
          </svg>
        </td>
        <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Jean Martin</td>
      </tr>
      <tr class="fluent-data-grid-row" data-row-index="3" role="row"     aria-rowindex="3" >
        <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
          <svg style="width: 20px; fill: var(--accent-fill-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"   row-selected="">
            <title>Row selected.</title>
            <path d="M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-13a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-7 8a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"></path>
          </svg>
        </td>
        <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Kenji Sato</td>
      </tr>
      <tr class="fluent-data-grid-row" data-row-index="4" role="row"     aria-rowindex="4" >
        <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
          <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
            <title>Row unselected</title>
            <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
          </svg>
        </td>
        <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Julie Smith</td>
      </tr>
    </tbody>
  </table>
  
  Expected HTML: 
  <table id="xxx" class="fluent-data-grid grid" style="grid-template-columns: 50px auto;" aria-rowcount="4"    >
    <thead >
      <tr class="fluent-data-grid-row" data-row-index="0" role="row" row-type="header"     >
        <th col-index="1" class="column-header select-all col-justify-center col-sort-desc" style="grid-column: 1; text-align: center; align-content: center; padding-top: calc(var(--design-unit) * 2.5px); height: 32px; min-height: 44px; display: flex;"     scope="col" aria-sort="none" ></th>
        <th col-index="2" class="column-header col-justify-start col-sort-desc" style="grid-column: 2; height: 32px; min-height: 44px; display: flex;"     scope="col" aria-sort="none" >
          <div class="col-title" style="width: calc(100% - 20px);" >
            <div class="col-title-text" >Name</div>
          </div>
        </th>
      </tr>
    </thead>
    <tbody >
      <tr class="fluent-data-grid-row" data-row-index="2" role="row"     aria-rowindex="2" >
        <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
          <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
            <title>Row unselected</title>
            <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
          </svg>
        </td>
        <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Jean Martin</td>
      </tr>
      <tr class="fluent-data-grid-row" data-row-index="3" role="row"     aria-rowindex="3" >
        <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
          <svg style="width: 20px; fill: var(--accent-fill-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"   row-selected="">
            <title>Row selected.</title>
            <path d="M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-13a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-7 8a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"></path>
          </svg>
        </td>
        <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Kenji Sato</td>
      </tr>
      <tr class="fluent-data-grid-row" data-row-index="4" role="row"     aria-rowindex="4" >
        <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
          <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
            <title>Row unselected</title>
            <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
          </svg>
        </td>
        <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Julie Smith</td>
      </tr>
    </tbody>
  </table>
  
Raw output
Bunit.HtmlEqualException : HTML comparison failed. 

The following errors were found:
  1: The value of the attribute table(1) > thead(1) > tr(1) > th(1)[class] and actual attribute table(1) > thead(0) > tr(0) > th(0)[class] are different.
  2: The value of the attribute table(1) > thead(1) > tr(1) > th(1)[style] and actual attribute table(1) > thead(0) > tr(0) > th(0)[style] are different.
  3: The value of the attribute table(1) > thead(1) > tr(1) > th(3)[class] and actual attribute table(1) > thead(0) > tr(0) > th(1)[class] are different.
  4: The value of the attribute table(1) > thead(1) > tr(1) > th(3)[style] and actual attribute table(1) > thead(0) > tr(0) > th(1)[style] are different.

Actual HTML: 
<table id="xxx" class="fluent-data-grid grid" style="grid-template-columns: 50px auto;" aria-rowcount="4"    >
  <thead >
    <tr class="fluent-data-grid-row" data-row-index="0" role="row" row-type="header"     >
      <th col-index="1" class="column-header select-all col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-top: calc(var(--design-unit) * 2.5px); height: 32px; min-height: 44px;"     scope="col" aria-sort="none" ></th>
      <th col-index="2" class="column-header col-justify-start" style="grid-column: 2; height: 32px; min-height: 44px;"     scope="col" aria-sort="none" >
        <div class="col-title" style="width: calc(100% - 20px);" >
          <div class="col-title-text" >Name</div>
        </div>
      </th>
    </tr>
  </thead>
  <tbody >
    <tr class="fluent-data-grid-row" data-row-index="2" role="row"     aria-rowindex="2" >
      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
          <title>Row unselected</title>
          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
        </svg>
      </td>
      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Jean Martin</td>
    </tr>
    <tr class="fluent-data-grid-row" data-row-index="3" role="row"     aria-rowindex="3" >
      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
        <svg style="width: 20px; fill: var(--accent-fill-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"   row-selected="">
          <title>Row selected.</title>
          <path d="M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-13a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-7 8a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"></path>
        </svg>
      </td>
      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Kenji Sato</td>
    </tr>
    <tr class="fluent-data-grid-row" data-row-index="4" role="row"     aria-rowindex="4" >
      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
          <title>Row unselected</title>
          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
        </svg>
      </td>
      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Julie Smith</td>
    </tr>
  </tbody>
</table>

Expected HTML: 
<table id="xxx" class="fluent-data-grid grid" style="grid-template-columns: 50px auto;" aria-rowcount="4"    >
  <thead >
    <tr class="fluent-data-grid-row" data-row-index="0" role="row" row-type="header"     >
      <th col-index="1" class="column-header select-all col-justify-center col-sort-desc" style="grid-column: 1; text-align: center; align-content: center; padding-top: calc(var(--design-unit) * 2.5px); height: 32px; min-height: 44px; display: flex;"     scope="col" aria-sort="none" ></th>
      <th col-index="2" class="column-header col-justify-start col-sort-desc" style="grid-column: 2; height: 32px; min-height: 44px; display: flex;"     scope="col" aria-sort="none" >
        <div class="col-title" style="width: calc(100% - 20px);" >
          <div class="col-title-text" >Name</div>
        </div>
      </th>
    </tr>
  </thead>
  <tbody >
    <tr class="fluent-data-grid-row" data-row-index="2" role="row"     aria-rowindex="2" >
      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
          <title>Row unselected</title>
          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
        </svg>
      </td>
      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Jean Martin</td>
    </tr>
    <tr class="fluent-data-grid-row" data-row-index="3" role="row"     aria-rowindex="3" >
      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
        <svg style="width: 20px; fill: var(--accent-fill-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"   row-selected="">
          <title>Row selected.</title>
          <path d="M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-13a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-7 8a7 7 0 1 1 14 0 7 7 0 0 1-14 0Z"></path>
        </svg>
      </td>
      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Kenji Sato</td>
    </tr>
    <tr class="fluent-data-grid-row" data-row-index="4" role="row"     aria-rowindex="4" >
      <td col-index="1" class="col-justify-center" style="grid-column: 1; text-align: center; align-content: center; padding-inline-start: calc(((var(--design-unit)* 3) + var(--focus-stroke-width) - var(--stroke-width))* 1px); padding-top: calc(var(--design-unit) * 1.5px); height: 32px;" role="gridcell" tabindex="0"    >
        <svg style="width: 20px; fill: var(--neutral-fill-inverse-rest);" focusable="false" viewBox="0 0 20 20" aria-hidden="true"  >
          <title>Row unselected</title>
          <path d="M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14Zm-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"></path>
        </svg>
      </td>
      <td col-index="2" class="col-justify-start" style="grid-column: 2; height: 32px;" role="gridcell" tabindex="0"    >Julie Smith</td>
    </tr>
  </tbody>
</table>

   at Microsoft.FluentUI.AspNetCore.Components.Tests.FluentAssert.Verify(IRenderedFragment actual, Func`2 received, String filename, String memberName, String suffix) in D:\a\fluentui-blazor\fluentui-blazor\tests\Core\FluentAssert.cs:line 113
   at Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridColumSelectTests.FluentDataGrid_ColumSelect_SingleStickySelect_Rendering() in D:\a\fluentui-blazor\fluentui-blazor\tests\Core\DataGrid\FluentDataGridColumSelectTests.razor:line 164
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)

Check failure on line 143 in tests/Core/DataGrid/FluentDataGridTests.razor

See this annotation in the file changed.

@github-actions github-actions / Core Tests

Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridTests ► FluentDataGrid_With_ItemProvider_And_Uncontrolled_Loading_Starts_Loading

Failed test found in:
  TestResults/runneradmin_fv-az1785-210_2025-01-12_21_35_26.trx
Error:
  Bunit.Extensions.WaitForHelpers.WaitForFailedException : The state predicate did not pass before the timeout period passed. Check count: 0. Component render count: 6. Total render count: 6.
Raw output
Bunit.Extensions.WaitForHelpers.WaitForFailedException : The state predicate did not pass before the timeout period passed. Check count: 0. Component render count: 6. Total render count: 6.
   at Bunit.RenderedFragmentWaitForHelperExtensions.WaitForState(IRenderedFragmentBase renderedFragment, Func`1 statePredicate, Nullable`1 timeout) in /_/src/bunit.core/Extensions/WaitForHelpers/RenderedFragmentWaitForHelperExtensions.cs:line 32
   at Microsoft.FluentUI.AspNetCore.Components.Tests.DataGrid.FluentDataGridTests.FluentDataGrid_With_ItemProvider_And_Uncontrolled_Loading_Starts_Loading() in D:\a\fluentui-blazor\fluentui-blazor\tests\Core\DataGrid\FluentDataGridTests.razor:line 143
--- End of stack trace from previous location ---