[PF-2031] Cut picasso-provider → picasso-notification source-import cycle - #4964
Conversation
…ycle Move the NotificationsProvider maxNotifications integration test out of provider's src to a Cypress component spec, and drop the LightWithNotificationsAndFavicon storybook example (the equivalent demonstration already lives in picasso-notification's use-notification/story/MaxNotifications.example.tsx). Both files imported useNotifications from @toptal/picasso-notification even though notification is not declared as a dep of provider, which created the only source-import edge in the provider → notification → tailwind-merge → test-utils → provider cycle that PF-2031 publish forensics flagged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
📖 Storybook Preview 🚀 Your Storybook preview is ready: View Storybook 📍 Preview URL: This preview is updated automatically when you push changes to this PR. |
|
🎉 Alpha packages are ready! PR: #4964 Installation commands: These alpha packages were built from the latest commit in this PR. |
… spec
Switch the two count-assertion selectors in
cypress/component/NotificationsProvider.spec.tsx from
`cy.get(\`[data-testid=...\`])` to `cy.getByTestId(...)`, matching the
selector style already used a couple of lines above for the trigger
button and elsewhere in cypress/component/ (e.g. NotificationStream.spec.tsx).
`getByTestId` is a thin alias for `cy.get('[data-testid=X]')` defined in
cypress/support/commands.jsx, so behavior is identical.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This PR only deletes a Jest test and a storybook example and adds a Cypress component spec. None of those files ship in @toptal/picasso-provider's dist-package, so the patch-level changeset is noise rather than a published version bump. Removes .changeset/cut-provider-notification-cycle.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
📖 Storybook Preview 🚀 Your Storybook preview is ready: View Storybook 📍 Preview URL: This preview is updated automatically when you push changes to this PR. |
|
📖 Storybook Preview 🚀 Your Storybook preview is ready: View Storybook 📍 Preview URL: This preview is updated automatically when you push changes to this PR. |
|
🗑️ Storybook preview cleaned up The preview deployment has been automatically removed since this PR was closed. |
PF-2031
Summary
provider → notification → tailwind-merge → test-utils → providercycle that PF-2031 publish forensics flaggedNotificationsProvidermaxNotificationstest tocypress/component/NotificationsProvider.spec.tsx(integration test, where it always belonged)PicassoLight with notifications and faviconstorybook example — its content is already covered by@toptal/picasso-notification'suse-notification/story/MaxNotifications.example.tsxWhy
Two files in
packages/picasso-provider/src/importeduseNotificationsfrom@toptal/picasso-notificationeven thoughpicasso-notificationis not declared as a dep ofpicasso-provider. This created the only source-import edge in the 5-edge cycle nx flagged during PF-2031 alpha publishing. The other 4 edges are legitimatepackage.jsondeps.Even though
nx release publishhardcodesnxIgnoreCycles: trueand the cycle was therefore non-fatal, removing the structural source-import edge is the right cleanup: it shrinks the cycle topology and makes future debugging easier.Verification
pnpm nx release publish --dry-runon this branch:The flagged cycle (now
provider ↔ @toptal/picasso— pre-existing 2-cycle from umbrella story imports, unrelated to PF-2031) is non-fatal. All 90 projects reach the publish step. Exit 0.Test plan
cypress/component/NotificationsProvider.spec.tsxruns in CI and the twomaxNotificationscases pass (default cap of 5, custom cap of 2)PicassoLight with notifications and favicon(intentional)