Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: enable Jest aliases for converged packages #18337

Merged
merged 2 commits into from
May 27, 2021

Conversation

layershifter
Copy link
Member

@layershifter layershifter commented May 26, 2021

Pull request checklist

  • Addresses an existing issue: Fixes #0000
  • Include a change request file using $ yarn change

Description of changes

This PR adds Jest aliases to avoid "build first" requirement for converged packages. It's done via lerna-alias as it's the simplest solution (and one-liner) and we have Lerna configured in this repo.

This solution is a short-term workaround to solve long standing DX problem.

Before
$ yarn workspace @fluentui/make-styles clean
$ yarn workspace @fluentui/react-make-styles clean
$ yarn workspace @fluentui/react-make-styles test

🚨 Tests require "build all first":

  ● Test suite failed to run

    Configuration error:

    Could not locate module @fluentui/make-styles mapped as:
    @fluentui/make-styles/lib-commonjs/index.

    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/^@fluentui\/make-styles$/": "@fluentui/make-styles/lib-commonjs/index"
      },
      "resolver": null
    }

After
$ yarn workspace @fluentui/make-styles clean
$ yarn workspace @fluentui/react-make-styles clean
$ yarn workspace @fluentui/react-make-styles test

✅ Tests are passing.

 PASS  src/makeStyles.test.tsx
 PASS  src/createDOMRenderer.test.tsx
 PASS  src/renderToStyleElements-node.test.tsx
[1:21:20 PM] ■ finished 'jest' in 5.38s

@codesandbox-ci
Copy link

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 06322c7:

Sandbox Source
Fluent UI Button Configuration
codesandbox-react-template Configuration
codesandbox-react-northstar-template Configuration

@size-auditor
Copy link

size-auditor bot commented May 26, 2021

Asset size changes

Size Auditor did not detect a change in bundle size for any component!

Baseline commit: 4416402a1d21f980db0274cb7662f9653e4acd2c (build)

@fabricteam
Copy link
Collaborator

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 950 953 5000
BaseButton mount 1055 1008 5000
Breadcrumb mount 2881 2806 1000
ButtonNext mount 549 569 5000
Checkbox mount 1699 1743 5000
CheckboxBase mount 1521 1447 5000
ChoiceGroup mount 5439 5457 5000
ComboBox mount 1092 1094 1000
CommandBar mount 11096 10843 1000
ContextualMenu mount 6705 6627 1000
DefaultButton mount 1276 1303 5000
DetailsRow mount 4082 4180 5000
DetailsRowFast mount 4193 4217 5000
DetailsRowNoStyles mount 3927 3959 5000
Dialog mount 2366 2289 1000
DocumentCardTitle mount 186 161 1000
Dropdown mount 3634 3932 5000
FocusTrapZone mount 1959 1932 5000
FocusZone mount 1898 2007 5000
IconButton mount 1929 1978 5000
Label mount 395 361 5000
Layer mount 1995 2029 5000
Link mount 526 507 5000
MakeStyles mount 1856 1893 50000
MenuButton mount 1695 1650 5000
MessageBar mount 2196 2197 5000
Nav mount 3633 3556 1000
OverflowSet mount 1106 1147 5000
Panel mount 2237 2149 1000
Persona mount 907 928 1000
Pivot mount 1545 1555 1000
PrimaryButton mount 1428 1409 5000
Rating mount 8848 8740 5000
SearchBox mount 1534 1509 5000
Shimmer mount 2897 2863 5000
Slider mount 2190 2196 5000
SpinButton mount 5514 5513 5000
Spinner mount 455 479 5000
SplitButton mount 3500 3609 5000
Stack mount 544 592 5000
StackWithIntrinsicChildren mount 1775 1768 5000
StackWithTextChildren mount 5300 5300 5000
SwatchColorPicker mount 11442 11420 5000
Tabs mount 1538 1547 1000
TagPicker mount 2679 2705 5000
TeachingBubble mount 12676 12881 5000
Text mount 485 488 5000
TextField mount 1583 1585 5000
ThemeProvider mount 1333 1314 5000
ThemeProvider virtual-rerender 631 671 5000
ThemeProviderNext mount 7073 7474 5000
Toggle mount 918 941 5000
buttonNative mount 114 129 5000

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
AttachmentMinimalPerf.default 208 183 1.14:1
FlexMinimalPerf.default 354 313 1.13:1
AccordionMinimalPerf.default 203 184 1.1:1
ListCommonPerf.default 792 728 1.09:1
AnimationMinimalPerf.default 476 442 1.08:1
HeaderSlotsPerf.default 926 860 1.08:1
ChatWithPopoverPerf.default 448 423 1.06:1
GridMinimalPerf.default 408 384 1.06:1
TextMinimalPerf.default 423 399 1.06:1
LabelMinimalPerf.default 462 441 1.05:1
ListWith60ListItems.default 768 729 1.05:1
ReactionMinimalPerf.default 464 444 1.05:1
RefMinimalPerf.default 254 243 1.05:1
TooltipMinimalPerf.default 1149 1098 1.05:1
TreeWith60ListItems.default 208 198 1.05:1
VideoMinimalPerf.default 748 714 1.05:1
AvatarMinimalPerf.default 231 222 1.04:1
InputMinimalPerf.default 1451 1400 1.04:1
RadioGroupMinimalPerf.default 529 507 1.04:1
TreeMinimalPerf.default 912 873 1.04:1
CheckboxMinimalPerf.default 3079 2984 1.03:1
ImageMinimalPerf.default 449 434 1.03:1
ItemLayoutMinimalPerf.default 1471 1425 1.03:1
PopupMinimalPerf.default 624 604 1.03:1
IconMinimalPerf.default 706 683 1.03:1
AttachmentSlotsPerf.default 1307 1276 1.02:1
BoxMinimalPerf.default 431 422 1.02:1
DialogMinimalPerf.default 854 836 1.02:1
HeaderMinimalPerf.default 424 415 1.02:1
LoaderMinimalPerf.default 767 755 1.02:1
MenuMinimalPerf.default 936 920 1.02:1
RosterPerf.default 1278 1256 1.02:1
ProviderMinimalPerf.default 1177 1157 1.02:1
StatusMinimalPerf.default 789 772 1.02:1
TableManyItemsPerf.default 2222 2185 1.02:1
DropdownManyItemsPerf.default 762 751 1.01:1
MenuButtonMinimalPerf.default 1799 1784 1.01:1
PortalMinimalPerf.default 172 171 1.01:1
SkeletonMinimalPerf.default 417 412 1.01:1
SliderMinimalPerf.default 1761 1738 1.01:1
TextAreaMinimalPerf.default 607 603 1.01:1
ToolbarMinimalPerf.default 1097 1083 1.01:1
ButtonOverridesMissPerf.default 1907 1908 1:1
CarouselMinimalPerf.default 538 536 1:1
ChatMinimalPerf.default 708 708 1:1
DatepickerMinimalPerf.default 6076 6069 1:1
DropdownMinimalPerf.default 3341 3351 1:1
EmbedMinimalPerf.default 4757 4753 1:1
FormMinimalPerf.default 486 488 1:1
SplitButtonMinimalPerf.default 4193 4179 1:1
CustomToolbarPrototype.default 4336 4318 1:1
ButtonMinimalPerf.default 191 193 0.99:1
ButtonSlotsPerf.default 616 623 0.99:1
ProviderMergeThemesPerf.default 1789 1814 0.99:1
ListNestedPerf.default 645 658 0.98:1
CardMinimalPerf.default 648 668 0.97:1
DividerMinimalPerf.default 424 437 0.97:1
SegmentMinimalPerf.default 402 416 0.97:1
TableMinimalPerf.default 457 471 0.97:1
AlertMinimalPerf.default 302 313 0.96:1
LayoutMinimalPerf.default 411 427 0.96:1
ChatDuplicateMessagesPerf.default 328 347 0.95:1
ListMinimalPerf.default 589 623 0.95:1

@layershifter
Copy link
Member Author

Merging as a workaround, #16889 will move us to a better approach. As @Hotell mention there is a problem with jest-serializer-make-styles that should be handled separately.

● Validation Error:

  Module @fluentui/jest-serializer-make-styles in the snapshotSerializers option was not found.
         <rootDir> is: office-ui-fabric-react\packages\react-image

  Configuration Documentation:
  https://jestjs.io/docs/configuration.html

It could be solved via #18144.

@layershifter layershifter merged commit 5379823 into master May 27, 2021
@layershifter layershifter deleted the chore/add-jest-aliases branch May 27, 2021 10:10
@layershifter layershifter restored the chore/add-jest-aliases branch May 31, 2021 15:11
@layershifter layershifter deleted the chore/add-jest-aliases branch May 31, 2021 15:11
layershifter added a commit that referenced this pull request May 31, 2021
…18396)

* Revert "chore: enable Jest aliases for converged packages (#18337)"

* Change files

* Change files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants