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

LG-4799: Code test harnesses #2697

Open
wants to merge 41 commits into
base: LG-4657-code-improvements-integration
Choose a base branch
from

Conversation

shaneeza
Copy link
Collaborator

@shaneeza shaneeza commented Feb 5, 2025

✍️ Proposed changes

🎟 Jira ticket: Name of ticket

✅ Checklist

For bug fixes, new features & breaking changes

  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • I have run pnpm changeset and documented my changes

For new components

  • I have added my new package to the global tsconfig
  • I have added my new package to the Table of Contents on the global README
  • I have verified the Live Example looks as intended on the design website.

🧪 How to test changes

Copy link

changeset-bot bot commented Feb 5, 2025

🦋 Changeset detected

Latest commit: 4e7bc78

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 19 packages
Name Type
@leafygreen-ui/code Major
@leafygreen-ui/select Minor
@leafygreen-ui/button Minor
@lg-chat/lg-markdown Patch
@leafygreen-ui/date-picker Patch
@leafygreen-ui/number-input Patch
@leafygreen-ui/pagination Patch
@lg-chat/chat-disclaimer Patch
@lg-chat/input-bar Patch
@lg-chat/message-feed Patch
@lg-chat/message-feedback Patch
@leafygreen-ui/confirmation-modal Patch
@leafygreen-ui/copyable Patch
@leafygreen-ui/empty-state Patch
@leafygreen-ui/form-footer Patch
@leafygreen-ui/guide-cue Patch
@leafygreen-ui/marketing-modal Patch
@leafygreen-ui/split-button Patch
@lg-chat/message Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Feb 6, 2025

Size Change: +915 B (+0.07%)

Total Size: 1.4 MB

Filename Size Change
packages/code/dist/esm/index.js 10.7 kB +469 B (+4.57%) 🔍
packages/code/dist/index.js 11.3 kB +446 B (+4.1%)
ℹ️ View Unchanged
Filename Size
charts/core/dist/esm/index.js 15.4 kB
charts/core/dist/index.js 15.6 kB
chat/avatar/dist/esm/index.js 1.36 kB
chat/avatar/dist/index.js 1.52 kB
chat/chat-disclaimer/dist/esm/index.js 566 B
chat/chat-disclaimer/dist/index.js 755 B
chat/chat-window/dist/esm/index.js 1.62 kB
chat/chat-window/dist/index.js 1.79 kB
chat/fixed-chat-window/dist/esm/index.js 2.39 kB
chat/fixed-chat-window/dist/index.js 2.57 kB
chat/input-bar/dist/esm/index.js 6.9 kB
chat/input-bar/dist/index.js 7.11 kB
chat/leafygreen-chat-provider/dist/esm/index.js 873 B
chat/leafygreen-chat-provider/dist/index.js 1.02 kB
chat/lg-markdown/dist/esm/index.js 1.44 kB
chat/lg-markdown/dist/index.js 1.59 kB
chat/message-feed/dist/esm/index.js 2.79 kB
chat/message-feed/dist/index.js 2.96 kB
chat/message-feedback/dist/esm/index.js 2.54 kB
chat/message-feedback/dist/index.js 2.78 kB
chat/message-prompts/dist/esm/index.js 1.72 kB
chat/message-prompts/dist/index.js 1.86 kB
chat/message-rating/dist/esm/index.js 2.52 kB
chat/message-rating/dist/index.js 2.71 kB
chat/message/dist/esm/index.js 3.81 kB
chat/message/dist/index.js 3.98 kB
chat/rich-links/dist/esm/index.js 2.68 kB
chat/rich-links/dist/index.js 2.89 kB
chat/title-bar/dist/esm/index.js 1.37 kB
chat/title-bar/dist/index.js 1.58 kB
packages/a11y/dist/esm/index.js 1.7 kB
packages/a11y/dist/index.js 1.82 kB
packages/avatar/dist/esm/index.js 2.35 kB
packages/avatar/dist/index.js 2.53 kB
packages/badge/dist/esm/index.js 1.41 kB
packages/badge/dist/index.js 1.59 kB
packages/banner/dist/esm/index.js 3.07 kB
packages/banner/dist/index.js 3.36 kB
packages/box/dist/esm/index.js 486 B
packages/box/dist/index.js 627 B
packages/button/dist/esm/index.js 4.86 kB
packages/button/dist/index.js 5.05 kB
packages/callout/dist/esm/index.js 1.54 kB
packages/callout/dist/index.js 1.71 kB
packages/card/dist/esm/index.js 1.51 kB
packages/card/dist/index.js 1.69 kB
packages/checkbox/dist/esm/index.js 4.2 kB
packages/checkbox/dist/index.js 4.39 kB
packages/chip/dist/esm/index.js 3.2 kB
packages/chip/dist/index.js 3.4 kB
packages/combobox/dist/esm/index.js 11.6 kB
packages/combobox/dist/index.js 11.8 kB
packages/confirmation-modal/dist/esm/index.js 2.52 kB
packages/confirmation-modal/dist/index.js 2.74 kB
packages/copyable/dist/esm/index.js 2.78 kB
packages/copyable/dist/index.js 2.99 kB
packages/date-picker/dist/esm/index.js 13.7 kB
packages/date-picker/dist/index.js 14 kB
packages/date-utils/dist/esm/index.js 3.48 kB
packages/date-utils/dist/index.js 3.6 kB
packages/descendants/dist/esm/index.js 2.82 kB
packages/descendants/dist/index.js 2.93 kB
packages/emotion/dist/esm/index.js 345 B
packages/emotion/dist/index.js 555 B
packages/empty-state/dist/esm/index.js 1.77 kB
packages/empty-state/dist/index.js 1.94 kB
packages/expandable-card/dist/esm/index.js 2.85 kB
packages/expandable-card/dist/index.js 3.03 kB
packages/form-field/dist/esm/index.js 4.31 kB
packages/form-field/dist/index.js 4.46 kB
packages/form-footer/dist/esm/index.js 1.71 kB
packages/form-footer/dist/index.js 1.91 kB
packages/guide-cue/dist/esm/index.js 6.36 kB
packages/guide-cue/dist/index.js 6.56 kB
packages/hooks/dist/esm/index.js 3.36 kB
packages/hooks/dist/index.js 3.47 kB
packages/icon-button/dist/esm/index.js 2.23 kB
packages/icon-button/dist/index.js 2.43 kB
packages/icon/dist/ActivityFeed.js 1.95 kB
packages/icon/dist/AddFile.js 1.72 kB
packages/icon/dist/AllProducts.js 1.79 kB
packages/icon/dist/Apps.js 1.39 kB
packages/icon/dist/Array.js 1.51 kB
packages/icon/dist/ArrowDown.js 1.64 kB
packages/icon/dist/ArrowLeft.js 1.65 kB
packages/icon/dist/ArrowRight.js 1.64 kB
packages/icon/dist/ArrowUp.js 1.64 kB
packages/icon/dist/Beaker.js 2.07 kB
packages/icon/dist/Bell.js 1.6 kB
packages/icon/dist/Biometric.js 2.17 kB
packages/icon/dist/Boolean.js 1.44 kB
packages/icon/dist/Building.js 1.59 kB
packages/icon/dist/Bulb.js 1.64 kB
packages/icon/dist/Calendar.js 1.59 kB
packages/icon/dist/Camera.js 1.68 kB
packages/icon/dist/Cap.js 1.8 kB
packages/icon/dist/CaretDown.js 1.46 kB
packages/icon/dist/CaretLeft.js 1.46 kB
packages/icon/dist/CaretRight.js 1.46 kB
packages/icon/dist/CaretUp.js 1.46 kB
packages/icon/dist/ChartFilled.js 1.56 kB
packages/icon/dist/Charts.js 1.53 kB
packages/icon/dist/Checkmark.js 1.6 kB
packages/icon/dist/CheckmarkWithCircle.js 1.67 kB
packages/icon/dist/ChevronDown.js 1.56 kB
packages/icon/dist/ChevronLeft.js 1.56 kB
packages/icon/dist/ChevronRight.js 1.57 kB
packages/icon/dist/ChevronUp.js 1.55 kB
packages/icon/dist/Circle.js 1.33 kB
packages/icon/dist/Clock.js 1.62 kB
packages/icon/dist/ClockWithArrow.js 1.91 kB
packages/icon/dist/Clone.js 1.5 kB
packages/icon/dist/Cloud.js 1.67 kB
packages/icon/dist/Code.js 1.88 kB
packages/icon/dist/CodeBlock.js 1.81 kB
packages/icon/dist/Coin.js 1.93 kB
packages/icon/dist/Colon.js 1.44 kB
packages/icon/dist/Connect.js 1.92 kB
packages/icon/dist/Copy.js 1.87 kB
packages/icon/dist/CreditCard.js 1.42 kB
packages/icon/dist/CurlyBraces.js 2.02 kB
packages/icon/dist/Cursor.js 1.55 kB
packages/icon/dist/Dashboard.js 1.56 kB
packages/icon/dist/Database.js 2.02 kB
packages/icon/dist/Diagram.js 1.64 kB
packages/icon/dist/Diagram2.js 1.65 kB
packages/icon/dist/Diagram3.js 1.62 kB
packages/icon/dist/Disconnect.js 1.86 kB
packages/icon/dist/Download.js 1.65 kB
packages/icon/dist/Drag.js 1.6 kB
packages/icon/dist/Edit.js 1.51 kB
packages/icon/dist/Ellipsis.js 1.48 kB
packages/icon/dist/Email.js 1.7 kB
packages/icon/dist/EmptyDatabase.js 4.29 kB
packages/icon/dist/EmptyFolder.js 2.08 kB
packages/icon/dist/Eraser.js 1.77 kB
packages/icon/dist/Escalation.js 1.67 kB
packages/icon/dist/esm/ActivityFeed.js 1.74 kB
packages/icon/dist/esm/AddFile.js 1.51 kB
packages/icon/dist/esm/AllProducts.js 1.59 kB
packages/icon/dist/esm/Apps.js 1.2 kB
packages/icon/dist/esm/Array.js 1.31 kB
packages/icon/dist/esm/ArrowDown.js 1.44 kB
packages/icon/dist/esm/ArrowLeft.js 1.44 kB
packages/icon/dist/esm/ArrowRight.js 1.43 kB
packages/icon/dist/esm/ArrowUp.js 1.43 kB
packages/icon/dist/esm/Beaker.js 1.86 kB
packages/icon/dist/esm/Bell.js 1.4 kB
packages/icon/dist/esm/Biometric.js 1.96 kB
packages/icon/dist/esm/Boolean.js 1.24 kB
packages/icon/dist/esm/Building.js 1.39 kB
packages/icon/dist/esm/Bulb.js 1.44 kB
packages/icon/dist/esm/Calendar.js 1.39 kB
packages/icon/dist/esm/Camera.js 1.48 kB
packages/icon/dist/esm/Cap.js 1.59 kB
packages/icon/dist/esm/CaretDown.js 1.26 kB
packages/icon/dist/esm/CaretLeft.js 1.26 kB
packages/icon/dist/esm/CaretRight.js 1.26 kB
packages/icon/dist/esm/CaretUp.js 1.26 kB
packages/icon/dist/esm/ChartFilled.js 1.35 kB
packages/icon/dist/esm/Charts.js 1.33 kB
packages/icon/dist/esm/Checkmark.js 1.4 kB
packages/icon/dist/esm/CheckmarkWithCircle.js 1.46 kB
packages/icon/dist/esm/ChevronDown.js 1.36 kB
packages/icon/dist/esm/ChevronLeft.js 1.36 kB
packages/icon/dist/esm/ChevronRight.js 1.38 kB
packages/icon/dist/esm/ChevronUp.js 1.35 kB
packages/icon/dist/esm/Circle.js 1.13 kB
packages/icon/dist/esm/Clock.js 1.42 kB
packages/icon/dist/esm/ClockWithArrow.js 1.7 kB
packages/icon/dist/esm/Clone.js 1.29 kB
packages/icon/dist/esm/Cloud.js 1.47 kB
packages/icon/dist/esm/Code.js 1.68 kB
packages/icon/dist/esm/CodeBlock.js 1.61 kB
packages/icon/dist/esm/Coin.js 1.72 kB
packages/icon/dist/esm/Colon.js 1.25 kB
packages/icon/dist/esm/Connect.js 1.72 kB
packages/icon/dist/esm/Copy.js 1.67 kB
packages/icon/dist/esm/CreditCard.js 1.22 kB
packages/icon/dist/esm/CurlyBraces.js 1.82 kB
packages/icon/dist/esm/Cursor.js 1.35 kB
packages/icon/dist/esm/Dashboard.js 1.36 kB
packages/icon/dist/esm/Database.js 1.81 kB
packages/icon/dist/esm/Diagram.js 1.44 kB
packages/icon/dist/esm/Diagram2.js 1.44 kB
packages/icon/dist/esm/Diagram3.js 1.42 kB
packages/icon/dist/esm/Disconnect.js 1.65 kB
packages/icon/dist/esm/Download.js 1.45 kB
packages/icon/dist/esm/Drag.js 1.41 kB
packages/icon/dist/esm/Edit.js 1.31 kB
packages/icon/dist/esm/Ellipsis.js 1.29 kB
packages/icon/dist/esm/Email.js 1.5 kB
packages/icon/dist/esm/EmptyDatabase.js 4.07 kB
packages/icon/dist/esm/EmptyFolder.js 1.88 kB
packages/icon/dist/esm/Eraser.js 1.56 kB
packages/icon/dist/esm/Escalation.js 1.46 kB
packages/icon/dist/esm/Export.js 1.57 kB
packages/icon/dist/esm/Favorite.js 1.53 kB
packages/icon/dist/esm/Federation.js 1.84 kB
packages/icon/dist/esm/File.js 1.33 kB
packages/icon/dist/esm/Filter.js 1.32 kB
packages/icon/dist/esm/Folder.js 1.23 kB
packages/icon/dist/esm/Format.js 1.65 kB
packages/icon/dist/esm/FullScreenEnter.js 1.48 kB
packages/icon/dist/esm/FullScreenExit.js 1.49 kB
packages/icon/dist/esm/Gauge.js 1.52 kB
packages/icon/dist/esm/GlobeAmericas.js 1.44 kB
packages/icon/dist/esm/GovernmentBuilding.js 1.47 kB
packages/icon/dist/esm/Hash.js 1.62 kB
packages/icon/dist/esm/Highlight.js 1.67 kB
packages/icon/dist/esm/Home.js 1.58 kB
packages/icon/dist/esm/HorizontalDrag.js 1.41 kB
packages/icon/dist/esm/Import.js 1.56 kB
packages/icon/dist/esm/ImportantWithCircle.js 1.33 kB
packages/icon/dist/esm/index.js 29.8 kB
packages/icon/dist/esm/InfoWithCircle.js 1.36 kB
packages/icon/dist/esm/InternalEmployee.js 1.65 kB
packages/icon/dist/esm/InviteUser.js 1.67 kB
packages/icon/dist/esm/Key.js 1.47 kB
packages/icon/dist/esm/Laptop.js 1.46 kB
packages/icon/dist/esm/LightningBolt.js 1.33 kB
packages/icon/dist/esm/Link.js 1.83 kB
packages/icon/dist/esm/List.js 1.47 kB
packages/icon/dist/esm/Lock.js 1.43 kB
packages/icon/dist/esm/LogIn.js 1.5 kB
packages/icon/dist/esm/LogOut.js 1.56 kB
packages/icon/dist/esm/MagnifyingGlass.js 1.4 kB
packages/icon/dist/esm/Megaphone.js 1.37 kB
packages/icon/dist/esm/Menu.js 1.28 kB
packages/icon/dist/esm/Minus.js 1.23 kB
packages/icon/dist/esm/Mobile.js 1.23 kB
packages/icon/dist/esm/Moon.js 1.41 kB
packages/icon/dist/esm/MultiDirectionArrow.js 1.45 kB
packages/icon/dist/esm/MultiLayers.js 2.4 kB
packages/icon/dist/esm/NavCollapse.js 1.47 kB
packages/icon/dist/esm/NavExpand.js 1.48 kB
packages/icon/dist/esm/NoFilter.js 1.46 kB
packages/icon/dist/esm/NotAllowed.js 1.35 kB
packages/icon/dist/esm/Note.js 1.38 kB
packages/icon/dist/esm/OpenNewTab.js 1.66 kB
packages/icon/dist/esm/Pause.js 1.28 kB
packages/icon/dist/esm/Pending.js 1.26 kB
packages/icon/dist/esm/Person.js 1.45 kB
packages/icon/dist/esm/PersonGroup.js 1.65 kB
packages/icon/dist/esm/PersonWithLock.js 1.66 kB
packages/icon/dist/esm/Pin.js 1.39 kB
packages/icon/dist/esm/Play.js 1.27 kB
packages/icon/dist/esm/Plus.js 1.29 kB
packages/icon/dist/esm/PlusWithCircle.js 1.32 kB
packages/icon/dist/esm/Primary.js 1.34 kB
packages/icon/dist/esm/Project.js 1.38 kB
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.69 kB
packages/icon/dist/esm/Read.js 1.98 kB
packages/icon/dist/esm/Recommended.js 2.16 kB
packages/icon/dist/esm/Redo.js 1.63 kB
packages/icon/dist/esm/Refresh.js 1.7 kB
packages/icon/dist/esm/Relationship.js 1.39 kB
packages/icon/dist/esm/ReplicaSet.js 1.54 kB
packages/icon/dist/esm/Resize.js 1.36 kB
packages/icon/dist/esm/Return.js 1.46 kB
packages/icon/dist/esm/Revert.js 1.5 kB
packages/icon/dist/esm/Save.js 1.89 kB
packages/icon/dist/esm/SearchIndex.js 2.02 kB
packages/icon/dist/esm/Secondary.js 1.58 kB
packages/icon/dist/esm/Serverless.js 1.53 kB
packages/icon/dist/esm/Settings.js 1.96 kB
packages/icon/dist/esm/ShardedCluster.js 1.91 kB
packages/icon/dist/esm/Shell.js 1.45 kB
packages/icon/dist/esm/SMS.js 1.41 kB
packages/icon/dist/esm/SortAscending.js 1.49 kB
packages/icon/dist/esm/SortDescending.js 1.48 kB
packages/icon/dist/esm/Sparkle.js 1.81 kB
packages/icon/dist/esm/SplitHorizontal.js 1.25 kB
packages/icon/dist/esm/SplitVertical.js 1.25 kB
packages/icon/dist/esm/Stitch.js 1.29 kB
packages/icon/dist/esm/Stop.js 1.14 kB
packages/icon/dist/esm/String.js 1.4 kB
packages/icon/dist/esm/Sun.js 1.62 kB
packages/icon/dist/esm/Support.js 1.48 kB
packages/icon/dist/esm/Sweep.js 1.5 kB
packages/icon/dist/esm/Table.js 1.28 kB
packages/icon/dist/esm/Tag.js 1.31 kB
packages/icon/dist/esm/ThumbsDown.js 1.6 kB
packages/icon/dist/esm/ThumbsUp.js 1.6 kB
packages/icon/dist/esm/TimeSeries.js 1.64 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.78 kB
packages/icon/dist/esm/Trash.js 1.31 kB
packages/icon/dist/esm/Undo.js 1.62 kB
packages/icon/dist/esm/University.js 1.81 kB
packages/icon/dist/esm/Unlock.js 1.5 kB
packages/icon/dist/esm/Unsorted.js 1.53 kB
packages/icon/dist/esm/UpDownCarets.js 1.38 kB
packages/icon/dist/esm/Upload.js 1.59 kB
packages/icon/dist/esm/VerticalEllipsis.js 1.3 kB
packages/icon/dist/esm/Visibility.js 1.61 kB
packages/icon/dist/esm/VisibilityOff.js 2.01 kB
packages/icon/dist/esm/Warning.js 1.38 kB
packages/icon/dist/esm/Wizard.js 1.72 kB
packages/icon/dist/esm/Wrench.js 1.72 kB
packages/icon/dist/esm/Write.js 1.99 kB
packages/icon/dist/esm/X.js 1.42 kB
packages/icon/dist/esm/XWithCircle.js 1.36 kB
packages/icon/dist/Export.js 1.78 kB
packages/icon/dist/Favorite.js 1.74 kB
packages/icon/dist/Federation.js 2.05 kB
packages/icon/dist/File.js 1.53 kB
packages/icon/dist/Filter.js 1.52 kB
packages/icon/dist/Folder.js 1.43 kB
packages/icon/dist/Format.js 1.85 kB
packages/icon/dist/FullScreenEnter.js 1.68 kB
packages/icon/dist/FullScreenExit.js 1.69 kB
packages/icon/dist/Gauge.js 1.72 kB
packages/icon/dist/GlobeAmericas.js 1.64 kB
packages/icon/dist/GovernmentBuilding.js 1.67 kB
packages/icon/dist/Hash.js 1.83 kB
packages/icon/dist/Highlight.js 1.87 kB
packages/icon/dist/Home.js 1.79 kB
packages/icon/dist/HorizontalDrag.js 1.61 kB
packages/icon/dist/Import.js 1.77 kB
packages/icon/dist/ImportantWithCircle.js 1.53 kB
packages/icon/dist/index.js 30.1 kB
packages/icon/dist/InfoWithCircle.js 1.56 kB
packages/icon/dist/InternalEmployee.js 1.86 kB
packages/icon/dist/InviteUser.js 1.87 kB
packages/icon/dist/Key.js 1.67 kB
packages/icon/dist/Laptop.js 1.65 kB
packages/icon/dist/LightningBolt.js 1.53 kB
packages/icon/dist/Link.js 2.04 kB
packages/icon/dist/List.js 1.67 kB
packages/icon/dist/Lock.js 1.63 kB
packages/icon/dist/LogIn.js 1.7 kB
packages/icon/dist/LogOut.js 1.76 kB
packages/icon/dist/MagnifyingGlass.js 1.6 kB
packages/icon/dist/Megaphone.js 1.57 kB
packages/icon/dist/Menu.js 1.48 kB
packages/icon/dist/Minus.js 1.43 kB
packages/icon/dist/Mobile.js 1.43 kB
packages/icon/dist/Moon.js 1.62 kB
packages/icon/dist/MultiDirectionArrow.js 1.65 kB
packages/icon/dist/MultiLayers.js 2.62 kB
packages/icon/dist/NavCollapse.js 1.67 kB
packages/icon/dist/NavExpand.js 1.68 kB
packages/icon/dist/NoFilter.js 1.66 kB
packages/icon/dist/NotAllowed.js 1.55 kB
packages/icon/dist/Note.js 1.58 kB
packages/icon/dist/OpenNewTab.js 1.87 kB
packages/icon/dist/Pause.js 1.49 kB
packages/icon/dist/Pending.js 1.46 kB
packages/icon/dist/Person.js 1.65 kB
packages/icon/dist/PersonGroup.js 1.86 kB
packages/icon/dist/PersonWithLock.js 1.86 kB
packages/icon/dist/Pin.js 1.59 kB
packages/icon/dist/Play.js 1.47 kB
packages/icon/dist/Plus.js 1.49 kB
packages/icon/dist/PlusWithCircle.js 1.52 kB
packages/icon/dist/Primary.js 1.54 kB
packages/icon/dist/Project.js 1.58 kB
packages/icon/dist/QuestionMarkWithCircle.js 1.9 kB
packages/icon/dist/Read.js 2.19 kB
packages/icon/dist/Recommended.js 2.37 kB
packages/icon/dist/Redo.js 1.84 kB
packages/icon/dist/Refresh.js 1.9 kB
packages/icon/dist/Relationship.js 1.59 kB
packages/icon/dist/ReplicaSet.js 1.75 kB
packages/icon/dist/Resize.js 1.56 kB
packages/icon/dist/Return.js 1.66 kB
packages/icon/dist/Revert.js 1.7 kB
packages/icon/dist/Save.js 2.09 kB
packages/icon/dist/SearchIndex.js 2.22 kB
packages/icon/dist/Secondary.js 1.78 kB
packages/icon/dist/Serverless.js 1.74 kB
packages/icon/dist/Settings.js 2.16 kB
packages/icon/dist/ShardedCluster.js 2.12 kB
packages/icon/dist/Shell.js 1.65 kB
packages/icon/dist/SMS.js 1.6 kB
packages/icon/dist/SortAscending.js 1.69 kB
packages/icon/dist/SortDescending.js 1.69 kB
packages/icon/dist/Sparkle.js 2.02 kB
packages/icon/dist/SplitHorizontal.js 1.45 kB
packages/icon/dist/SplitVertical.js 1.45 kB
packages/icon/dist/Stitch.js 1.49 kB
packages/icon/dist/Stop.js 1.33 kB
packages/icon/dist/String.js 1.6 kB
packages/icon/dist/Sun.js 1.81 kB
packages/icon/dist/Support.js 1.69 kB
packages/icon/dist/Sweep.js 1.7 kB
packages/icon/dist/Table.js 1.48 kB
packages/icon/dist/Tag.js 1.51 kB
packages/icon/dist/ThumbsDown.js 1.81 kB
packages/icon/dist/ThumbsUp.js 1.8 kB
packages/icon/dist/TimeSeries.js 1.86 kB
packages/icon/dist/TimeSeriesCollection.js 1.99 kB
packages/icon/dist/Trash.js 1.51 kB
packages/icon/dist/Undo.js 1.83 kB
packages/icon/dist/University.js 2.02 kB
packages/icon/dist/Unlock.js 1.7 kB
packages/icon/dist/Unsorted.js 1.74 kB
packages/icon/dist/UpDownCarets.js 1.59 kB
packages/icon/dist/Upload.js 1.79 kB
packages/icon/dist/VerticalEllipsis.js 1.5 kB
packages/icon/dist/Visibility.js 1.81 kB
packages/icon/dist/VisibilityOff.js 2.22 kB
packages/icon/dist/Warning.js 1.58 kB
packages/icon/dist/Wizard.js 1.93 kB
packages/icon/dist/Wrench.js 1.92 kB
packages/icon/dist/Write.js 2.2 kB
packages/icon/dist/X.js 1.62 kB
packages/icon/dist/XWithCircle.js 1.56 kB
packages/info-sprinkle/dist/esm/index.js 1.83 kB
packages/info-sprinkle/dist/index.js 2.02 kB
packages/inline-definition/dist/esm/index.js 1.69 kB
packages/inline-definition/dist/index.js 1.85 kB
packages/input-option/dist/esm/index.js 2.67 kB
packages/input-option/dist/index.js 2.81 kB
packages/leafygreen-provider/dist/esm/index.js 1.86 kB
packages/leafygreen-provider/dist/index.js 2.02 kB
packages/lib/dist/esm/index.js 2.43 kB
packages/lib/dist/index.js 2.6 kB
packages/loading-indicator/dist/esm/index.js 3.38 kB
packages/loading-indicator/dist/index.js 3.55 kB
packages/logo/dist/esm/index.js 39 kB
packages/logo/dist/index.js 39.3 kB
packages/marketing-modal/dist/esm/index.js 3.49 kB
packages/marketing-modal/dist/index.js 3.69 kB
packages/menu/dist/esm/index.js 7.86 kB
packages/menu/dist/index.js 8.15 kB
packages/modal/dist/esm/index.js 3.23 kB
packages/modal/dist/index.js 3.44 kB
packages/number-input/dist/esm/index.js 5.59 kB
packages/number-input/dist/index.js 5.76 kB
packages/ordered-list/dist/esm/index.js 1.32 kB
packages/ordered-list/dist/index.js 1.49 kB
packages/pagination/dist/esm/index.js 1.68 kB
packages/pagination/dist/index.js 1.88 kB
packages/palette/dist/esm/index.js 411 B
packages/palette/dist/index.js 562 B
packages/password-input/dist/esm/index.js 4.43 kB
packages/password-input/dist/index.js 4.65 kB
packages/pipeline/dist/esm/index.js 7.81 kB
packages/pipeline/dist/index.js 8.08 kB
packages/polymorphic/dist/esm/index.js 1.27 kB
packages/polymorphic/dist/index.js 1.4 kB
packages/popover/dist/esm/index.js 4.94 kB
packages/popover/dist/index.js 5.08 kB
packages/portal/dist/esm/index.js 929 B
packages/portal/dist/index.js 1.09 kB
packages/radio-box-group/dist/esm/index.js 2.85 kB
packages/radio-box-group/dist/index.js 2.99 kB
packages/radio-group/dist/esm/index.js 3.25 kB
packages/radio-group/dist/index.js 3.38 kB
packages/ripple/dist/esm/index.js 956 B
packages/ripple/dist/index.js 1.05 kB
packages/search-input/dist/esm/index.js 5.89 kB
packages/search-input/dist/index.js 6.1 kB
packages/segmented-control/dist/esm/index.js 5.44 kB
packages/segmented-control/dist/index.js 5.57 kB
packages/select/dist/esm/index.js 8.9 kB
packages/select/dist/index.js 9.09 kB
packages/side-nav/dist/esm/index.js 7.45 kB
packages/side-nav/dist/index.js 7.68 kB
packages/skeleton-loader/dist/esm/index.js 3.19 kB
packages/skeleton-loader/dist/index.js 3.39 kB
packages/split-button/dist/esm/index.js 3.48 kB
packages/split-button/dist/index.js 3.62 kB
packages/stepper/dist/esm/index.js 3.47 kB
packages/stepper/dist/index.js 3.67 kB
packages/table/dist/esm/index.js 8.27 kB
packages/table/dist/index.js 8.49 kB
packages/tabs/dist/esm/index.js 5.41 kB
packages/tabs/dist/index.js 5.54 kB
packages/testing-lib/dist/esm/index.js 4.52 kB
packages/testing-lib/dist/index.js 4.74 kB
packages/testing-lib/dist/renderHookServer.js 391 B
packages/testing-lib/dist/renderHookServerV17.js 239 B
packages/text-area/dist/esm/index.js 2.38 kB
packages/text-area/dist/index.js 2.54 kB
packages/text-input/dist/esm/index.js 2.68 kB
packages/text-input/dist/index.js 2.84 kB
packages/toast/dist/esm/index.js 8.21 kB
packages/toast/dist/index.js 8.49 kB
packages/toggle/dist/esm/index.js 3.05 kB
packages/toggle/dist/index.js 3.23 kB
packages/tokens/dist/esm/index.js 1.96 kB
packages/tokens/dist/index.js 2.06 kB
packages/tooltip/dist/esm/index.js 4.3 kB
packages/tooltip/dist/index.js 4.58 kB
packages/typography/dist/esm/index.js 5.6 kB
packages/typography/dist/index.js 5.75 kB
tools/build/dist/esm/index.js 5.75 kB
tools/build/dist/index.js 5.96 kB
tools/cli/dist/esm/index.js 1.98 kB
tools/cli/dist/index.js 2.13 kB
tools/codemods/dist/_virtual/_rollupPluginBabelHelpers.js 940 B
tools/codemods/dist/codemods/consolidate-props/transform.js 378 B
tools/codemods/dist/codemods/popover-v12/transform.js 1.11 kB
tools/codemods/dist/codemods/rename-component-prop/transform.js 317 B
tools/codemods/dist/codemods/update-component-prop-value/transform.js 330 B
tools/codemods/dist/constants.js 148 B
tools/codemods/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs 935 B
tools/codemods/dist/esm/codemods/consolidate-props/transform.mjs 376 B
tools/codemods/dist/esm/codemods/popover-v12/transform.mjs 1.09 kB
tools/codemods/dist/esm/codemods/rename-component-prop/transform.mjs 314 B
tools/codemods/dist/esm/codemods/update-component-prop-value/transform.mjs 330 B
tools/codemods/dist/esm/constants.mjs 148 B
tools/codemods/dist/esm/index.js 4.24 kB
tools/codemods/dist/esm/types.mjs 765 B
tools/codemods/dist/esm/utils/imports/getImportSpecifiersForDeclaration.mjs 280 B
tools/codemods/dist/esm/utils/jsx/getJSXAttributes.mjs 161 B
tools/codemods/dist/esm/utils/jsx/insertJSXComment/insertJSXComment.mjs 373 B
tools/codemods/dist/esm/utils/transformations/addJSXAttributes/addJSXAttributes.mjs 414 B
tools/codemods/dist/esm/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.mjs 666 B
tools/codemods/dist/esm/utils/transformations/removeJSXAttributes/removeJSXAttributes.mjs 362 B
tools/codemods/dist/esm/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.mjs 280 B
tools/codemods/dist/index.js 4.48 kB
tools/codemods/dist/types.js 765 B
tools/codemods/dist/utils/imports/getImportSpecifiersForDeclaration.js 283 B
tools/codemods/dist/utils/jsx/getJSXAttributes.js 165 B
tools/codemods/dist/utils/jsx/insertJSXComment/insertJSXComment.js 373 B
tools/codemods/dist/utils/transformations/addJSXAttributes/addJSXAttributes.js 412 B
tools/codemods/dist/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.js 664 B
tools/codemods/dist/utils/transformations/removeJSXAttributes/removeJSXAttributes.js 366 B
tools/codemods/dist/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.js 283 B
tools/create/dist/esm/index.js 2.88 kB
tools/create/dist/index.js 3.05 kB
tools/install/dist/esm/index.js 885 B
tools/install/dist/index.js 1.03 kB
tools/link/dist/esm/index.js 5.04 kB
tools/link/dist/index.js 5.15 kB
tools/lint/dist/esm/index.js 3.77 kB
tools/lint/dist/index.js 3.92 kB
tools/meta/dist/esm/index.js 1.54 kB
tools/meta/dist/index.js 1.69 kB
tools/slackbot/dist/esm/index.js 6.1 kB
tools/slackbot/dist/index.js 6.27 kB
tools/storybook-addon/dist/esm/index.js 4.68 kB
tools/storybook-addon/dist/esm/main.js 4.64 kB
tools/storybook-addon/dist/esm/manager.js 554 B
tools/storybook-addon/dist/esm/preview.js 1.6 kB
tools/storybook-addon/dist/index.js 4.79 kB
tools/storybook-addon/dist/main.js 4.74 kB
tools/storybook-addon/dist/manager.js 686 B
tools/storybook-addon/dist/preview.js 1.69 kB
tools/storybook-decorators/dist/esm/index.js 3.29 kB
tools/storybook-decorators/dist/index.js 3.55 kB
tools/storybook-utils/dist/esm/index.js 1.05 kB
tools/storybook-utils/dist/index.js 1.21 kB
tools/test-harnesses/dist/esm/index.js 1.78 kB
tools/test-harnesses/dist/index.js 1.9 kB
tools/test/dist/esm/index.js 1.69 kB
tools/test/dist/index.js 1.82 kB
tools/update/dist/esm/index.js 730 B
tools/update/dist/index.js 896 B
tools/validate/dist/esm/index.js 6.86 kB
tools/validate/dist/index.js 7.08 kB

compressed-size-action

| Util | Description | Returns |
| -------------- | ------------------------------------------ | ----------------------- |
| `getButton()` | Returns the expand button element | `HTMLElement` \| `null` |
| `isExpanded()` | Returns whether the code block is expanded | `boolean` |
Copy link
Collaborator Author

@shaneeza shaneeza Feb 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if including isExpanded here makes sense. The util is getExpandButton, but isExpanded doesn't really need to be associated with the button since it's testing whether or not the code snippet is expanded or collapsed. Thoughts?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The expanded state seems like it should be checked for on the Code instance rather than the ExpandButton instance

@shaneeza shaneeza marked this pull request as ready for review February 6, 2025 18:51
@shaneeza shaneeza requested a review from a team as a code owner February 6, 2025 18:51
@shaneeza shaneeza requested review from tsck and removed request for a team February 6, 2025 18:51
@shaneeza shaneeza changed the title LG-4799: Code test harness LG-4799: Code test harnesses Feb 6, 2025
@shaneeza shaneeza requested a review from stephl3 February 7, 2025 21:47
.changeset/chatty-ears-exercise.md Outdated Show resolved Hide resolved
Comment on lines 154 to 156
showLineNumbers={true}
onCopy={() => {}}
darkMode={true}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be worth dropping these to narrow focus unless they're being tested for below

Comment on lines 161 to 162
showCustomActionButtons
customActionButtons={customActionButtons}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

likewise wondering if these should be dropped to narrow focus. if they're necessary for the copy button, can we explicitly show what's being passed to customActionButtons?

Comment on lines 221 to 222
const testUtils1 = getTestUtils('lg-code-1'); // data-lgid
const testUtils2 = getTestUtils('lg-code-2'); // data-lgid
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: comments don't seem necessary to me

Comment on lines 197 to 201
import { Tabs, Tab, getTestUtils } from '@leafygreen-ui/tabs';

...

test('tabs', () => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { Tabs, Tab, getTestUtils } from '@leafygreen-ui/tabs';
...
test('tabs', () => {
import Code, { getTestUtils, Panel } from '@leafygreen-ui/code';
...
test('code', () => {

| Util | Description | Returns |
| -------------- | ------------------------------------------ | ----------------------- |
| `getButton()` | Returns the expand button element | `HTMLElement` \| `null` |
| `isExpanded()` | Returns whether the code block is expanded | `boolean` |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The expanded state seems like it should be checked for on the Code instance rather than the ExpandButton instance

Comment on lines 50 to 53

return {
...renderResults,
};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you think about the pattern of calling getTestUtils in the render* test util? then we can do this in the spec file:
const { testUtilName } renderCode();

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I used to do this, but Adam had a point that in the test utils spec file, we should call the test util in each individual test to ensure that it works as expected.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't quite follow. how does that differ from calling it in this helper function? doesn't the getTestUtils still get called in each spec (just wrapped in the render* helper func)?


const { getCopyButton } = getTestUtils();

expect(getCopyButton().getButton()).toBeInTheDocument();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple thoughts here:

  1. I think the first util should be named get*Utils to more explicitly suggest it's an object of other utils. e.g. getCopyButtonUtils().getButton()

  2. what do you think about updating this API to be more reusable across different buttons? especially helpful if we need to add test utils for other panel buttons now or in the future

thinking something like:

  • getButtonUtilsByType('copy').getButton()
  • getButtonUtilsByType('expand').getButton()

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. I agree with this 👍🏽

  2. I like this idea. However, I'm a little worried that consumers might assume they can test custom icon buttons with this util. I'm not testing custom icons because consumers add those with a slot prop.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm also wondering, if we keep getCopyButtonUtils and getExpandButtonUtils, I could simplify getExpandButtonUtils to getExpandButton and return the element and not a util object since this button is never disabled, and no one needs to test that.

language: languageOptions[0].displayName,
panel: (
<Panel onChange={() => {}} languageOptions={languageOptions} />
),
});
expect(getByTestId('lg-code-select')).toBeDefined();
const { getLanguageSwitcher } = getTestUtils();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similar to above, I think getLanguageSwitcherUtils is a more appropriate name

Comment on lines 45 to 50
/**
* Determines whether or not the syntax will be rendered in dark mode.
*
* @default `false`
*/
darkMode?: boolean;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: could swap with DarkModeProps

@tsck tsck removed their request for review February 11, 2025 14:57
@shaneeza
Copy link
Collaborator Author

We discussed this during dev sync, and we're going to try and use other test harnesses inside of this test harness

…ngodb/leafygreen-ui into LG-4799-code-test-harness
@shaneeza shaneeza requested a review from stephl3 February 12, 2025 21:31
.changeset/chatty-ears-exercise.md Outdated Show resolved Hide resolved
| `getOptionByValue(value: string)` | Returns the option element by its value | `HTMLElement` \| `null` |
| `isDisabled()` | Returns whether the language switcher is disabled | `boolean` |

### CopyButtonUtils
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did we want any utils for the other panel buttons?

Comment on lines 50 to 53

return {
...renderResults,
};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't quite follow. how does that differ from calling it in this helper function? doesn't the getTestUtils still get called in each spec (just wrapped in the render* helper func)?

panel: <Panel onChange={() => {}} />,
});
const { getLanguageSwitcherUtils } = getTestUtils();
const input = getLanguageSwitcherUtils().getInput();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rm?

panel: <Panel languageOptions={languageOptions} />,
});
const { getLanguageSwitcherUtils } = getTestUtils();
const input = getLanguageSwitcherUtils().getInput();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rm?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh i can replace this with _ but I need to call this so that i can test that this test will throw. Do you have other ideas on how to prevent this?

panel: <Panel onChange={() => {}} languageOptions={[]} />,
});
const { getLanguageSwitcherUtils } = getTestUtils();
const input = getLanguageSwitcherUtils().getInput();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rm?

@@ -3,7 +3,7 @@ import { Theme } from '@leafygreen-ui/lib';
import { palette } from '@leafygreen-ui/palette';
import { color, transitionDuration } from '@leafygreen-ui/tokens';

export const getCopyButtonStyles = ({
export const getCopyButtonUtilsStyles = ({
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this intentionally renamed or picked up when replacing all?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah this was from replace all

isDisabled: () => boolean;
}

export interface LanguageSwitcherUtils {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since we're using getTestUtils from the select package now, what do you think about exporting and using the type as well?

I did something similar here for button: https://github.com/mongodb/leafygreen-ui/pull/2724/files#diff-7df5bb9ce245bf9a0263e61b168e928df000ff49720321089b1a0f811c1ded4dR4

);
};

const getCopyButtonUtils = () => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did you want to do the same thing as you did for language switcher for this button?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, thanks for catching this

};

const getLanguageSwitcherUtils = () => {
const testUtils = getSelectTestUtils(LGIDs.select);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something I'm realizing we don't currently support with test harnesses is identifying the correct subcomponent in a given component. If we render multiple Code instances, we can pass in a unique data-lgid which will change the root node's lgid, and we have examples of this in the README files

I don't think we currently support that for the language switchers or the buttons in Code, label/description in TextInput. Is that right?

Since we're already thinking about renaming LGIDs, I'm wondering if we might want to make it a function instead?
constants file

const LGID_ROOT = 'lg_code';
const getLgIds = (root: string) => ({
  root,
  button: ${root}-button,
  ...
});

component file

const Component = ({
  'data-lgid': dataLgId = LGID_ROOT,
  ...
}) => {
  const lgIds = getLgIds(dataLgId);

  ...

  return (
    <RootComponent data-lgid={lgIds.root}>
      <Button data-lgid={lgIds.button}>Text</Button>
    </RootComponent>
  );

Also could take the approach of interpolating. It seems like either might still require passing the dataLgId prop down for nested components, so we should think through that. We can discuss further in dev sync; I think I've got the same issue in Drawer

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oof good catch

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this, and funnily enough, Kræn just made a ticket about this https://jira.mongodb.org/browse/LG-4898

@shaneeza shaneeza requested a review from stephl3 February 14, 2025 20:24
Copy link
Collaborator

@stephl3 stephl3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

proactively approving since I'll be out and don't want to block this. Only possibly blocking thing is the README update unless there's a better way to approach that

/**
* LGIDs for the code snippet.
*/
lgids: GetLgIdsReturnType;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
lgids: GetLgIdsReturnType;
lgIds: GetLgIdsReturnType;

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alternatively, I wonder if Panel could extends LgIdProps as well as opposed to needing to pass this lgIds object through the context

Comment on lines +254 to +263
### LanguageSwitcherUtils

| Util | Description | Returns |
| --------------------------------- | ------------------------------------------------- | ----------------------- |
| `getInput()` | Returns the language switcher trigger | `HTMLButtonElement` |
| `getOptions()` | Returns all options in the language switcher | `Array<HTMLElement>` |
| `getOptionByValue(value: string)` | Returns the option element by its value | `HTMLElement` \| `null` |
| `isDisabled()` | Returns whether the language switcher is disabled | `boolean` |

### CopyButtonUtils
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicating the select and button utils here means that any time they change in the select or button package, whoever makes said change would have to know to change it here as well to maintain parity. To avoid introducing that maintenance burden, could we instead link to those respective README files?

I did something similar with DrawerTabs: https://github.com/mongodb/leafygreen-ui/pull/2720/files#diff-733f2a760f041bf05129bf53f9f893ce03179ce087309e4b15034d8cf98362d3R69


import {
getCodeStyles,
getCodeWrapperStyles,
getCopyButtonWithoutPanelStyles,
getCopyButtonUtilsWithoutPanelStyles,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix

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

Successfully merging this pull request may close these issues.

2 participants