diff --git a/packages/authentication/CHANGELOG.md b/packages/authentication/CHANGELOG.md index 75ba3bc0..3a50a7d1 100644 --- a/packages/authentication/CHANGELOG.md +++ b/packages/authentication/CHANGELOG.md @@ -1,24 +1,27 @@ # @baseapp-frontend/authentication +## 5.0.1 + +### Patch Changes + +- Fix component tests after dependencies update. + ## 5.0.0 ### Major Changes - **BREAKING:** Removed SSR support from authentication functions and hooks - - Added `'use client'` directive to `getUser` and `useJWTUser` - these are now client-side only - Removed `noSSR` parameter from `getUser`, `useJWTUser`, and related types - For server-side user retrieval, use the new `getUserSSR` function instead - **BREAKING:** Removed deprecated functions and hooks - - Deleted `getUserAsync` function and all related tests - Deleted `useUser` hook (deprecated) and all related tests - Deleted `withUser` HOC and all related tests - Updated exports in main index file to reflect removals - **BREAKING:** Updated `useUpdateUser` token refresh API - - Now requires explicit `refreshToken` parameter for `refreshAccessToken` call - Updated function signature to match new token utilities @@ -463,7 +466,6 @@ ### Patch Changes - Redesigning `useLogout` hook - - It now returns an object instead of a function - It now uses `resetQueries` instead of `invalidateQueries` in order to reset the user cache properly. diff --git a/packages/authentication/modules/tests/utils/providers/withAuthenticationTestProviders/index.tsx b/packages/authentication/modules/tests/utils/providers/withAuthenticationTestProviders/index.tsx index 045c9e0e..f42d3a67 100644 --- a/packages/authentication/modules/tests/utils/providers/withAuthenticationTestProviders/index.tsx +++ b/packages/authentication/modules/tests/utils/providers/withAuthenticationTestProviders/index.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' -import { CookieProvider } from '@baseapp-frontend/utils' +import { CookieProvider } from '@baseapp-frontend/utils/hooks/useCookie' import { MinimalProfile } from '../../../../../types/profile' import { CURRENT_PROFILE_KEY_NAME, CurrentProfileProvider } from '../../../../profile' @@ -9,7 +9,7 @@ import { WithAuthenticationTestProvidersProps } from './types' const withAuthenticationTestProviders = (Component: FC) => ({ context, initialCookies, ...props }: Props & WithAuthenticationTestProvidersProps) => { - const currentProfile = context?.parameters?.initialProfile + const currentProfile = context?.parameters?.initialProfile ?? null return ( @@ -18,7 +18,7 @@ const withAuthenticationTestProviders = ...initialCookies, }} > - + diff --git a/packages/authentication/package.json b/packages/authentication/package.json index ea1ad4df..ba93bc03 100644 --- a/packages/authentication/package.json +++ b/packages/authentication/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/authentication", "description": "Authentication modules.", - "version": "5.0.0", + "version": "5.0.1", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 8d9bdb24..7e311b6e 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,14 @@ # @baseapp-frontend/components +## 1.2.2 + +### Patch Changes + +- Fix component tests after dependencies update. +- Updated dependencies + - @baseapp-frontend/authentication@5.0.1 + - @baseapp-frontend/design-system@1.0.19 + ## 1.2.1 ### Patch Changes diff --git a/packages/components/modules/comments/web/Comments/__tests__/Comments.cy.tsx b/packages/components/modules/comments/web/Comments/__tests__/Comments.cy.tsx index c518efd5..b3e4fd09 100644 --- a/packages/components/modules/comments/web/Comments/__tests__/Comments.cy.tsx +++ b/packages/components/modules/comments/web/Comments/__tests__/Comments.cy.tsx @@ -8,6 +8,9 @@ import { commentDeleteMockData, commentEditMockData, commentsNextPageMockData, + commentsTestMockData, + commentsWithElevenRepliesMockData, + commentsWithNextPageMockData, likeACommentMockData, pinACommentMockData, replytoCommentMockData, @@ -17,29 +20,27 @@ import { unlikeACommentMockData, unpinACommentMockData, } from './__mocks__/requests' -import { - commentCreateResolver, - commentReplyResolver, - commentsResolver, - commentsWithElevenRepliesResolver, - commentsWithNextPageResolver, -} from './__mocks__/resolvers' +import { commentCreateResolver, commentReplyResolver } from './__mocks__/resolvers' import CommentsForTesting from './__utils__/CommentsForTesting' describe('Comments', () => { it('should render comments and be able to interact with it', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() - cy.mockNextRouter() - .then((router) => { - cy.mount( - - - , - ) - }) - .then(() => { - resolveMostRecentOperation({ mockResolvers: commentsResolver }) - }) + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'CommentsForTestingQuery', + data: commentsTestMockData, + }) + + cy.mockNextRouter().then((router) => { + cy.mount( + + + , + ) + }) + cy.findByText('This is a regular comment.').should('exist') cy.step('Create a comment and check if it was created') @@ -184,20 +185,23 @@ describe('Comments', () => { }) it('should render more comments when the bottom is reached', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'CommentsForTestingQuery', + data: commentsWithNextPageMockData, + }) + cy.viewport(500, 350) - cy.mockNextRouter() - .then((router) => { - cy.mount( - - - , - ) - }) - .then(() => { - resolveMostRecentOperation({ mockResolvers: commentsWithNextPageResolver }) - }) + cy.mockNextRouter().then((router) => { + cy.mount( + + + , + ) + }) cy.step('See the first four comments') cy.findByText('First comment').should('exist') @@ -205,6 +209,7 @@ describe('Comments', () => { cy.findByText('Third comment').should('exist') cy.findByText('Fourth comment').should('exist') cy.findByLabelText('loading more comments').should('not.exist') + cy.findByText('Fifth comment').should('not.exist') cy.findByText('Sixth comment').should('not.exist') cy.findByText('Seventh comment').should('not.exist') @@ -215,10 +220,12 @@ describe('Comments', () => { cy.step('Scroll to the bottom and see the next 5 comments') cy.findByText('Fourth comment').should('exist').scrollIntoView() + cy.wait(100) cy.findByText('Fifth comment').should('exist').scrollIntoView() cy.findByLabelText('loading more comments') .should('exist') + .scrollIntoView() .then(() => { resolveMostRecentOperation({ data: commentsNextPageMockData }) }) @@ -240,18 +247,21 @@ describe('Comments', () => { } cy.stub(Router, 'useRouter').returns(router) cy.viewport(500, 1000) - const { environment, resolveMostRecentOperation } = createTestEnvironment() - cy.mockNextRouter() - .then((router) => { - cy.mount( - - - , - ) - }) - .then(() => { - resolveMostRecentOperation({ mockResolvers: commentsWithElevenRepliesResolver }) - }) + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'CommentsForTestingQuery', + data: commentsWithElevenRepliesMockData, + }) + cy.mockNextRouter().then((router) => { + cy.mount( + + + , + ) + }) + cy.step('See the first comment and its replies') cy.findByRole('button', { name: /reply to comment comment-with-eleven-replies/i }) .click() diff --git a/packages/components/modules/comments/web/Comments/__tests__/__mocks__/requests.ts b/packages/components/modules/comments/web/Comments/__tests__/__mocks__/requests.ts index 2ce41e67..afffaa17 100644 --- a/packages/components/modules/comments/web/Comments/__tests__/__mocks__/requests.ts +++ b/packages/components/modules/comments/web/Comments/__tests__/__mocks__/requests.ts @@ -903,3 +903,288 @@ export const thirdPageOfRepliesCommentWithElevenRepliesMockData = { }, }, } + +export const commentsTestMockData = { + data: { + target: { + id: 'test-id', + __typename: 'Page', + __isCommentsInterface: 'Page', + isCommentsEnabled: true, + commentsCount: { total: 2 }, + comments: { + edges: [ + { + node: { + id: 'comment-1', + __typename: 'Comment', + pk: 1, + body: 'This is a pinned comment.', + isPinned: true, + created: '2024-04-11T17:08:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: true, + canDelete: true, + canReport: true, + canPin: true, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://cdn.example.com/avatar1.png', + }, + }, + reactionsCount: { total: 2 }, + myReaction: null, + __isReactionsInterface: 'Comment', + __isCommentsInterface: 'Comment', + }, + }, + { + node: { + id: 'comment-2', + __typename: 'Comment', + pk: 2, + body: 'This is a regular comment.', + isPinned: false, + created: '2024-04-21T19:18:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: false, + canDelete: false, + canReport: true, + canPin: false, + user: { + id: 'user-2', + pk: 2, + fullName: 'Jane Smith', + avatar: { + url: 'https://cdn.example.com/avatar2.png', + }, + }, + reactionsCount: { total: 3 }, + myReaction: { + id: 'reaction-1', + reactionType: 'LIKE', + }, + __isReactionsInterface: 'Comment', + __isCommentsInterface: 'Comment', + }, + }, + ], + pageInfo: { + endCursor: 'cursor-2', + hasNextPage: false, + }, + }, + }, + }, +} + +export const commentsWithNextPageMockData = { + data: { + target: { + id: 'test-id', + __typename: 'Page', + __isCommentsInterface: 'Page', + isCommentsEnabled: true, + commentsCount: { total: 10 }, + comments: { + edges: [ + { + node: { + __typename: 'Comment', + id: 'comment-1', + pk: 1, + body: 'First comment', + isPinned: true, + created: '2024-04-11T17:08:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: true, + canDelete: true, + canReport: true, + canPin: true, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', + }, + }, + reactionsCount: { + total: 0, + }, + myReaction: null, + }, + cursor: 'cursor-1', + }, + { + node: { + __typename: 'Comment', + id: 'comment-2', + pk: 2, + body: 'Second comment', + isPinned: false, + created: '2024-04-21T19:18:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: false, + canDelete: false, + canReport: true, + canPin: false, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', + }, + }, + reactionsCount: { + total: 0, + }, + myReaction: null, + }, + cursor: 'cursor-2', + }, + { + node: { + __typename: 'Comment', + id: 'comment-3', + pk: 3, + body: 'Third comment', + isPinned: false, + created: '2024-04-21T19:18:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: false, + canDelete: false, + canReport: true, + canPin: false, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', + }, + }, + reactionsCount: { + total: 0, + }, + myReaction: null, + }, + cursor: 'cursor-3', + }, + { + node: { + __typename: 'Comment', + id: 'comment-4', + pk: 4, + body: 'Fourth comment', + isPinned: false, + created: '2024-04-21T19:18:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: false, + canDelete: false, + canReport: true, + canPin: false, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', + }, + }, + reactionsCount: { + total: 0, + }, + myReaction: null, + }, + cursor: 'cursor-4', + }, + { + node: { + __typename: 'Comment', + id: 'comment-5', + pk: 5, + body: 'Fifth comment', + isPinned: false, + created: '2024-04-21T19:18:58.505961+00:00', + commentsCount: { total: 0 }, + canChange: false, + canDelete: false, + canReport: true, + canPin: false, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', + }, + }, + reactionsCount: { + total: 0, + }, + myReaction: null, + }, + cursor: 'cursor-5', + }, + ], + pageInfo: { + endCursor: 'cursor-5', + hasNextPage: true, + }, + }, + }, + }, +} + +export const commentsWithElevenRepliesMockData = { + data: { + target: { + id: 'test-id', + __typename: 'Page', + __isCommentsInterface: 'Page', + isCommentsEnabled: true, + commentsCount: { total: 5 }, + comments: { + edges: [ + { + node: { + __typename: 'Comment', + id: 'comment-with-eleven-replies', + pk: 11, + body: 'This is comment with eleven replies.', + isPinned: false, + created: '2024-04-11T17:08:58.505961+00:00', + commentsCount: { total: 11 }, + canChange: true, + canDelete: true, + canReport: true, + canPin: true, + user: { + id: 'user-1', + pk: 1, + fullName: 'John Doe', + avatar: { + url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', + }, + }, + cursor: 'cursor-1', + reactionsCount: { + total: 2, + }, + myReaction: null, + }, + }, + ], + pageInfo: { + endCursor: 'cursor-1', + hasNextPage: false, + }, + }, + }, + }, +} diff --git a/packages/components/modules/comments/web/Comments/__tests__/__mocks__/resolvers.ts b/packages/components/modules/comments/web/Comments/__tests__/__mocks__/resolvers.ts index a6b79964..4618dae0 100644 --- a/packages/components/modules/comments/web/Comments/__tests__/__mocks__/resolvers.ts +++ b/packages/components/modules/comments/web/Comments/__tests__/__mocks__/resolvers.ts @@ -5,83 +5,6 @@ type MockResolverContext = MockPayloadGenerator.MockResolverContext let commentIdCounter = 0 -export const commentsResolver: MockResolvers = { - Node: () => ({ - __typename: 'Page', - __isCommentsInterface: 'Page', - id: 'test-id', - isCommentsEnabled: true, - commentsCount: { - total: 5, - }, - comments: { - edges: [ - { - node: { - __typename: 'Comment', - id: 'comment-1', - pk: 1, - body: 'This is a pinned comment.', - isPinned: true, - created: '2024-04-11T17:08:58.505961+00:00', - commentsCount: { total: 2 }, - canChange: true, - canDelete: true, - canReport: true, - canPin: true, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - reactionsCount: { - total: 2, - }, - myReaction: null, - }, - }, - { - node: { - __typename: 'Comment', - id: 'comment-2', - pk: 2, - body: 'This is a regular comment.', - isPinned: false, - created: '2024-04-21T19:18:58.505961+00:00', - commentsCount: { total: 1 }, - canChange: false, - canDelete: false, - canReport: true, - canPin: false, - user: { - id: 'user-2', - pk: 2, - fullName: 'Jane Smith', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/c/9/19/resized/50/50/cb95449a94688af33f6e9bb090cf2936.png', - }, - }, - reactionsCount: { - total: 3, - }, - myReaction: { - id: 'UmVhY3Rpb246MTA0', - reactionType: 'LIKE', - }, - }, - }, - ], - pageInfo: { - endCursor: 'cursor-2', - hasNextPage: false, - }, - }, - }), -} - export const commentCreateResolver: MockResolvers = { CommentCreatePayload: ({ args }: MockResolverContext) => { const { input } = args as Record @@ -186,211 +109,3 @@ export const commentReplyResolver: MockResolvers = { } }, } - -export const commentsWithNextPageResolver: MockResolvers = { - Node: () => ({ - __typename: 'Page', - __isCommentsInterface: 'Page', - id: 'test-id', - isCommentsEnabled: true, - commentsCount: { - total: 10, - }, - comments: { - edges: [ - { - node: { - __typename: 'Comment', - id: 'comment-1', - pk: 1, - body: 'First comment', - isPinned: true, - created: '2024-04-11T17:08:58.505961+00:00', - commentsCount: { total: 0 }, - canChange: true, - canDelete: true, - canReport: true, - canPin: true, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - reactionsCount: { - total: 0, - }, - myReaction: null, - }, - cursor: 'cursor-1', - }, - { - node: { - __typename: 'Comment', - id: 'comment-2', - pk: 2, - body: 'Second comment', - isPinned: false, - created: '2024-04-21T19:18:58.505961+00:00', - commentsCount: { total: 0 }, - canChange: false, - canDelete: false, - canReport: true, - canPin: false, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - reactionsCount: { - total: 0, - }, - myReaction: null, - }, - cursor: 'cursor-2', - }, - { - node: { - __typename: 'Comment', - id: 'comment-3', - pk: 3, - body: 'Third comment', - isPinned: false, - created: '2024-04-21T19:18:58.505961+00:00', - commentsCount: { total: 0 }, - canChange: false, - canDelete: false, - canReport: true, - canPin: false, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - reactionsCount: { - total: 0, - }, - myReaction: null, - }, - cursor: 'cursor-3', - }, - { - node: { - __typename: 'Comment', - id: 'comment-4', - pk: 4, - body: 'Fourth comment', - isPinned: false, - created: '2024-04-21T19:18:58.505961+00:00', - commentsCount: { total: 0 }, - canChange: false, - canDelete: false, - canReport: true, - canPin: false, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - reactionsCount: { - total: 0, - }, - myReaction: null, - }, - cursor: 'cursor-4', - }, - { - node: { - __typename: 'Comment', - id: 'comment-5', - pk: 5, - body: 'Fifth comment', - isPinned: false, - created: '2024-04-21T19:18:58.505961+00:00', - commentsCount: { total: 0 }, - canChange: false, - canDelete: false, - canReport: true, - canPin: false, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - reactionsCount: { - total: 0, - }, - myReaction: null, - }, - cursor: 'cursor-5', - }, - ], - pageInfo: { - endCursor: 'cursor-5', - hasNextPage: true, - }, - }, - }), -} - -export const commentsWithElevenRepliesResolver: MockResolvers = { - Node: () => ({ - __typename: 'Page', - __isCommentsInterface: 'Page', - id: 'test-id', - isCommentsEnabled: true, - commentsCount: { - total: 5, - }, - comments: { - edges: [ - { - node: { - __typename: 'Comment', - id: 'comment-with-eleven-replies', - pk: 11, - body: 'This is comment with eleven replies.', - isPinned: false, - created: '2024-04-11T17:08:58.505961+00:00', - commentsCount: { total: 11 }, - canChange: true, - canDelete: true, - canReport: true, - canPin: true, - user: { - id: 'user-1', - pk: 1, - fullName: 'John Doe', - avatar: { - url: 'https://nyc3.digitaloceanspaces.com/baseapp-production-storage/media/user-avatars/5/6/4/resized/50/50/185a04dfdaa512d218cf9b7a5097e3c9.png', - }, - }, - cursor: 'cursor-1', - reactionsCount: { - total: 2, - }, - myReaction: null, - }, - }, - ], - pageInfo: { - endCursor: 'cursor-1', - hasNextPage: false, - }, - }, - }), -} diff --git a/packages/components/modules/navigations/web/Header/AccountMenu/AccountPopover/__tests__/AccountPopover.cy.tsx b/packages/components/modules/navigations/web/Header/AccountMenu/AccountPopover/__tests__/AccountPopover.cy.tsx index 49bf2625..f34f53b4 100644 --- a/packages/components/modules/navigations/web/Header/AccountMenu/AccountPopover/__tests__/AccountPopover.cy.tsx +++ b/packages/components/modules/navigations/web/Header/AccountMenu/AccountPopover/__tests__/AccountPopover.cy.tsx @@ -34,12 +34,7 @@ describe('AccountPopover', () => { it('should render the account popover without profile and be able to interact with it', () => { const { environment } = createTestEnvironment() - cy.mount( - , - ) + cy.mount() cy.findByRole('button').click() @@ -57,7 +52,11 @@ describe('AccountPopover', () => { cy.mount( , ) @@ -126,7 +125,11 @@ describe('AccountPopover', () => { cy.mount( { cy.viewport(375, 667) cy.mount( - - - , + , ) cy.findByRole('presentation').should('be.visible') @@ -92,13 +96,14 @@ describe('NavCentered', () => { cy.viewport(1280, 800) cy.mount( - - - , + , ) cy.get('[role="presentation"]').should('not.exist') @@ -122,9 +127,14 @@ describe('NavCentered', () => { cy.viewport(800, 600) cy.mount( - - - , + , ) cy.get('[role="presentation"]').within(() => { diff --git a/packages/components/modules/navigations/web/NavCentered/__tests__/NavCenteredForTesting/index.tsx b/packages/components/modules/navigations/web/NavCentered/__tests__/NavCenteredForTesting/index.tsx new file mode 100644 index 00000000..c5db550e --- /dev/null +++ b/packages/components/modules/navigations/web/NavCentered/__tests__/NavCenteredForTesting/index.tsx @@ -0,0 +1,6 @@ +import NavCentered from '../..' +import { withComponentCompleteTestProviders } from '../../../../../tests/web' + +const NavCenteredForTesting = withComponentCompleteTestProviders(NavCentered) + +export default NavCenteredForTesting diff --git a/packages/components/modules/navigations/web/NavMini/__tests__/NavMini.cy.tsx b/packages/components/modules/navigations/web/NavMini/__tests__/NavMini.cy.tsx index 9e461e7a..89c85791 100644 --- a/packages/components/modules/navigations/web/NavMini/__tests__/NavMini.cy.tsx +++ b/packages/components/modules/navigations/web/NavMini/__tests__/NavMini.cy.tsx @@ -1,4 +1,3 @@ -import { ThemeProvider } from '@baseapp-frontend/design-system/providers/web' import type { ThemeProviderProps } from '@baseapp-frontend/design-system/providers/web' import { type PresetType, @@ -12,9 +11,9 @@ import { typography, } from '@baseapp-frontend/design-system/styles/web' -import NavMini from '..' +import NavMiniForTesting from './NavMiniForTesting' -const createTheme = (mode: ThemeMode = 'light'): ThemeProviderProps => ({ +const customTheme = (mode: ThemeMode = 'light'): ThemeProviderProps => ({ palette: createPalette(mode), breakpoints, settings: { @@ -67,9 +66,15 @@ describe('NavMini Component', () => { it('displays a compact navigation with accessible icons and labels', () => { cy.mount( - - - , + , ) cy.findByRole('navigation') @@ -101,9 +106,12 @@ describe('NavMini Component', () => { it('expands to vertical layout when toggle button is clicked', () => { const setSettings = cy.stub().as('setSettings') cy.mount( - - - , + , ) cy.findByRole('navigation') @@ -120,9 +128,12 @@ describe('NavMini Component', () => { }) cy.mount( - - - , + , ) setSettings({ themeLayout: 'mini' }) @@ -134,9 +145,12 @@ describe('NavMini Component', () => { it('displays logo and toggle button in accessible positions', () => { cy.mount( - - - , + , ) cy.findByRole('img', { name: /logo/i }) diff --git a/packages/components/modules/navigations/web/NavMini/__tests__/NavMiniForTesting/index.tsx b/packages/components/modules/navigations/web/NavMini/__tests__/NavMiniForTesting/index.tsx new file mode 100644 index 00000000..7b3abf21 --- /dev/null +++ b/packages/components/modules/navigations/web/NavMini/__tests__/NavMiniForTesting/index.tsx @@ -0,0 +1,6 @@ +import NavMini from '../..' +import { withComponentCompleteTestProviders } from '../../../../../tests/web' + +const NavMiniForTesting = withComponentCompleteTestProviders(NavMini) + +export default NavMiniForTesting diff --git a/packages/components/modules/navigations/web/NavMini/index.tsx b/packages/components/modules/navigations/web/NavMini/index.tsx index 91419943..1bddf85f 100644 --- a/packages/components/modules/navigations/web/NavMini/index.tsx +++ b/packages/components/modules/navigations/web/NavMini/index.tsx @@ -31,6 +31,7 @@ const NavMini: FC = ({ return ( { beforeEach(() => { cy.viewport(1280, 800) - mockSetSettings = cy.stub() }) it('renders navigation items in different layout modes', () => { @@ -101,11 +86,15 @@ describe('NavigationLayout', () => { } cy.mount( - - -
Content
-
-
, + +
Content
+
, ) cy.findByRole('banner').should('be.visible') @@ -116,11 +105,9 @@ describe('NavigationLayout', () => { }) cy.mount( - - -
Content
-
-
, + +
Content
+
, ) cy.findByRole('banner').should('be.visible') @@ -131,11 +118,15 @@ describe('NavigationLayout', () => { }) cy.mount( - - -
Content
-
-
, + +
Content
+
, ) cy.findByRole('banner').should('be.visible') @@ -148,11 +139,15 @@ describe('NavigationLayout', () => { it('interacts with navigation toggle button and sees navigation open/close', () => { cy.mount( - - -
Content
-
-
, + +
Content
+
, ) cy.contains('Dashboard').should('exist') @@ -164,16 +159,21 @@ describe('NavigationLayout', () => { cy.viewport(1280, 800) cy.get('button').filter(':visible').last().click() - cy.wrap(mockSetSettings).should('have.been.calledWith', { themeLayout: 'mini' }) + cy.get('[data-testid="nav-mini"]').should('exist') }) it('displays logo and account menu correctly', () => { cy.mount( - - -
Content
-
-
, + +
Content
+
, ) cy.get('[data-testid="logo-icon"]').should('exist') @@ -185,11 +185,16 @@ describe('NavigationLayout', () => { const CustomAccountMenu = () =>
Custom Account Menu
cy.mount( - - -
Content
-
-
, + +
Content
+
, ) cy.get('[data-testid="custom-account-menu"]').should('exist') @@ -198,18 +203,19 @@ describe('NavigationLayout', () => { it('displays additional component in AccountMenuProps', () => { cy.mount( - - , - }} - > -
Content
-
-
, + , + }} + ThemeTestProviderProps={{ + customTheme: defaultTheme, + }} + > +
Content
+
, ) cy.get('[data-testid="additional-component"]') diff --git a/packages/components/modules/navigations/web/NavigationLayout/__tests__/NavigationLayoutForTesting/index.tsx b/packages/components/modules/navigations/web/NavigationLayout/__tests__/NavigationLayoutForTesting/index.tsx new file mode 100644 index 00000000..2649bc02 --- /dev/null +++ b/packages/components/modules/navigations/web/NavigationLayout/__tests__/NavigationLayoutForTesting/index.tsx @@ -0,0 +1,6 @@ +import NavigationLayout from '../..' +import { withComponentCompleteTestProviders } from '../../../../../tests/web' + +const NavigationLayoutForTesting = withComponentCompleteTestProviders(NavigationLayout) + +export default NavigationLayoutForTesting diff --git a/packages/components/modules/notifications/web/NotificationsPopover/__tests__/NotificationsPopover.cy.tsx b/packages/components/modules/notifications/web/NotificationsPopover/__tests__/NotificationsPopover.cy.tsx index 77391904..e5ee1353 100644 --- a/packages/components/modules/notifications/web/NotificationsPopover/__tests__/NotificationsPopover.cy.tsx +++ b/packages/components/modules/notifications/web/NotificationsPopover/__tests__/NotificationsPopover.cy.tsx @@ -14,16 +14,18 @@ import { describe('Notifications', () => { it('should render show notification drawer with empty state', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() cy.viewport(1024, 768) - cy.mount().then(() => { - resolveMostRecentOperation({ - data: unreadNotificationsEmptyMockData, - }) + queueOperationResolver({ + queryName: 'NotificationsPopoverQuery', + data: unreadNotificationsEmptyMockData, }) + cy.mount() + cy.step('See the notification bell and icon') cy.findByRole('presentation').should('not.exist') cy.findByRole('button', { name: /see notifications/i }) @@ -55,14 +57,16 @@ describe('Notifications', () => { }) it('should render notifications and be able to interact with it', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() cy.viewport('iphone-x') - cy.mount().then(() => { - resolveMostRecentOperation({ - data: unreadNotificationsMockData, - }) + + queueOperationResolver({ + queryName: 'NotificationsPopoverQuery', + data: unreadNotificationsMockData, }) + cy.mount() cy.step('See the notification bell and icon') cy.findByRole('presentation').should('not.exist') @@ -138,7 +142,13 @@ describe('Notifications', () => { }) it('should render custom components for list', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'NotificationsPopoverQuery', + data: unreadNotificationsMockData, + }) cy.mount( { }) it('should render custom components for item', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'NotificationsPopoverQuery', + data: unreadNotificationsMockData, + }) cy.mount( { NotificationItem: CustomNotificationItemForTesting, }} />, - ).then(() => { - resolveMostRecentOperation({ - data: unreadNotificationsMockData, - }) - }) + ) cy.step('See the notification bell and icon') cy.findByRole('presentation').should('not.exist') cy.findByRole('button', { name: /see notifications/i }) @@ -217,7 +229,13 @@ describe('Notifications', () => { }) it('should render custom components for list anditem', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'NotificationsPopoverQuery', + data: unreadNotificationsMockData, + }) cy.mount( { NotificationItem: CustomNotificationItemForTesting, }} />, - ).then(() => { - resolveMostRecentOperation({ - data: unreadNotificationsMockData, - }) - }) + ) cy.step('See the notification bell and icon') cy.findByRole('presentation').should('not.exist') cy.findByRole('button', { name: /see notifications/i }) diff --git a/packages/components/modules/profiles/web/ProfileMembers/__tests__/Members.cy.tsx b/packages/components/modules/profiles/web/ProfileMembers/__tests__/Members.cy.tsx index 3d3da9ba..056b0c69 100644 --- a/packages/components/modules/profiles/web/ProfileMembers/__tests__/Members.cy.tsx +++ b/packages/components/modules/profiles/web/ProfileMembers/__tests__/Members.cy.tsx @@ -15,11 +15,33 @@ describe('Members', () => { }) it('renders MembersListItem correctly', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() - cy.mount().then(() => { - resolveMostRecentOperation({ data: allRolesMembersListMockData }) + const { environment, queueOperationResolver } = createTestEnvironment() + + queueOperationResolver({ + queryName: 'UserMembersListPaginationQuery', + data: allRolesMembersListMockData, }) + cy.mount( + , + ) + cy.step('Pending Profile') cy.findByText('Pending Profile').should('exist') cy.findByText('Pending').should('exist') @@ -94,11 +116,34 @@ describe('Members', () => { }) it('can change role of MembersListItem and it shows confirm dialog', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() - cy.mount().then(() => { - resolveMostRecentOperation({ data: simpleMembersListMockData }) + const { environment, resolveMostRecentOperation, queueOperationResolver } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'UserMembersListPaginationQuery', + data: simpleMembersListMockData, }) + cy.mount( + , + ) + cy.step("it opens the role's dropdown") cy.findByText('Manager Profile').should('exist') cy.findByText('Manager').should('exist').click() @@ -131,10 +176,14 @@ describe('Members', () => { }) it('renders MembersList correctly', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() - cy.mount().then(() => { - resolveMostRecentOperation({ data: fullMembersListMockData }) + const { environment, queueOperationResolver, resolveMostRecentOperation } = + createTestEnvironment() + + queueOperationResolver({ + queryName: 'UserMembersListPaginationQuery', + data: fullMembersListMockData, }) + cy.mount() const numberOfMembers = fullMembersListMockData.data.profile.members.edges.length + 1 cy.step('should render the correct number of members and the search bar') @@ -171,10 +220,12 @@ describe('Members', () => { }) it('can filter members by name', () => { - const { environment, resolveMostRecentOperation } = createTestEnvironment() - cy.mount().then(() => { - resolveMostRecentOperation({ data: simpleMembersListMockData }) + const { environment, queueOperationResolver } = createTestEnvironment() + queueOperationResolver({ + queryName: 'UserMembersListPaginationQuery', + data: simpleMembersListMockData, }) + cy.mount() cy.step('show all members') cy.findByText('Manager Profile').should('exist') diff --git a/packages/components/modules/profiles/web/ProfileMembers/__tests__/__mocks__/requests.ts b/packages/components/modules/profiles/web/ProfileMembers/__tests__/__mocks__/requests.ts index 65621577..2dfc7c91 100644 --- a/packages/components/modules/profiles/web/ProfileMembers/__tests__/__mocks__/requests.ts +++ b/packages/components/modules/profiles/web/ProfileMembers/__tests__/__mocks__/requests.ts @@ -9,7 +9,7 @@ const createNodeProfile = ( ) => { return { node: { - id: `id-${index}`, + id: `role-id-${index}`, user: { profile: { id: `id-${index}`, @@ -17,7 +17,7 @@ const createNodeProfile = ( image: image || null, urlPath: null, }, - id: `id-${index}`, + id: `user-id-${index}`, }, role: 'MANAGER', status: status, diff --git a/packages/components/package.json b/packages/components/package.json index 2480f06d..6a3e1743 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/components", "description": "BaseApp components modules such as comments, notifications, messages, and more.", - "version": "1.2.1", + "version": "1.2.2", "sideEffects": false, "scripts": { "babel:transpile": "babel modules -d tmp-babel --extensions .ts,.tsx --ignore '**/__tests__/**','**/__storybook__/**'", diff --git a/packages/design-system/CHANGELOG.md b/packages/design-system/CHANGELOG.md index b5d684c8..bcae1c9b 100644 --- a/packages/design-system/CHANGELOG.md +++ b/packages/design-system/CHANGELOG.md @@ -1,5 +1,11 @@ # @baseapp-frontend/design-system +## 1.0.20 + +### Patch Changes + +- Fix component tests after dependencies update. + ## 1.0.19 ### Patch Changes diff --git a/packages/design-system/components/web/scrollbars/Scrollbar/styled.ts b/packages/design-system/components/web/scrollbars/Scrollbar/styled.ts index 5c4eb626..e78a8803 100644 --- a/packages/design-system/components/web/scrollbars/Scrollbar/styled.ts +++ b/packages/design-system/components/web/scrollbars/Scrollbar/styled.ts @@ -1,7 +1,6 @@ 'use client' import { alpha, styled } from '@mui/material/styles' -// @ts-expect-error - simplebar-react has module resolution issues import SimpleBar from 'simplebar-react' export const StyledRootScrollbar = styled('div')(() => ({ diff --git a/packages/design-system/components/web/scrollbars/Scrollbar/types.ts b/packages/design-system/components/web/scrollbars/Scrollbar/types.ts index 623e90a3..07311844 100644 --- a/packages/design-system/components/web/scrollbars/Scrollbar/types.ts +++ b/packages/design-system/components/web/scrollbars/Scrollbar/types.ts @@ -1,5 +1,4 @@ import { SxProps, Theme } from '@mui/material/styles' -// @ts-expect-error - simplebar-react has module resolution issues import { Props } from 'simplebar-react' export interface ScrollbarProps extends Props { diff --git a/packages/design-system/package.json b/packages/design-system/package.json index c5c47785..4f362821 100644 --- a/packages/design-system/package.json +++ b/packages/design-system/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/design-system", "description": "Design System components and configurations.", - "version": "1.0.19", + "version": "1.0.20", "sideEffects": false, "scripts": { "tsup:bundle": "tsup --tsconfig tsconfig.build.json", diff --git a/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/index.tsx b/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/index.tsx index af5a9c08..3d8b2c63 100644 --- a/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/index.tsx +++ b/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/index.tsx @@ -5,7 +5,9 @@ import { NotificationProvider } from '@baseapp-frontend/utils' import createCache from '@emotion/cache' import { CacheProvider } from '@emotion/react' +import { UISettingsProvider } from '../../../../../hooks/web' import { SnackbarProvider } from '../../../../../providers/web' +import { createPalette } from '../../../../../styles/web/palette' import ReactSuspenseWithLoading from '../ReactSuspenseWithLoading' import ThemeTestProvider from '../ThemeTestProvider' import { WithDesignSystemProviderProps } from './types' @@ -13,8 +15,12 @@ import { WithDesignSystemProviderProps } from './types' const withDesignSystemProvider = (Component: FC) => (props: Props & WithDesignSystemProviderProps) => { - const { ThemeTestProviderProps, ReactSuspenseWithLoadingProps, ...restProps } = props as Props & - WithDesignSystemProviderProps + const { + ThemeTestProviderProps, + ReactSuspenseWithLoadingProps, + UISettingsProviderProps, + ...restProps + } = props as Props & WithDesignSystemProviderProps const emotionCache = createCache({ key: 'test-key' }) return ( @@ -23,7 +29,12 @@ const withDesignSystemProvider = - + + + diff --git a/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/types.ts b/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/types.ts index 4d24bb67..0f94b9be 100644 --- a/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/types.ts +++ b/packages/design-system/tests/web/utils/providers/withDesignSystemTestProviders/types.ts @@ -1,9 +1,11 @@ import { PropsWithChildren } from 'react' +import { UISettingsProviderProps } from '../../../../../hooks/web' import { ReactSuspenseWithLoadingProps } from '../ReactSuspenseWithLoading/types' import { ThemeTestProviderProps } from '../ThemeTestProvider/types' export interface WithDesignSystemProviderProps extends PropsWithChildren { ThemeTestProviderProps: ThemeTestProviderProps ReactSuspenseWithLoadingProps: ReactSuspenseWithLoadingProps + UISettingsProviderProps: UISettingsProviderProps } diff --git a/packages/wagtail/CHANGELOG.md b/packages/wagtail/CHANGELOG.md index fc8338d3..6723c10e 100644 --- a/packages/wagtail/CHANGELOG.md +++ b/packages/wagtail/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/wagtail +## 1.0.32 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/design-system@1.0.19 + ## 1.0.31 ### Patch Changes diff --git a/packages/wagtail/package.json b/packages/wagtail/package.json index c25ee305..10d21014 100644 --- a/packages/wagtail/package.json +++ b/packages/wagtail/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/wagtail", "description": "BaseApp Wagtail", - "version": "1.0.31", + "version": "1.0.32", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 925a88f6..f9fc0c82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,8 +55,8 @@ catalogs: specifier: 4.12.7 version: 4.12.7 simplebar-react: - specifier: 3.3.1 - version: 3.3.1 + specifier: 3.2.5 + version: 3.2.5 tsup: specifier: 8.3.6 version: 8.3.6 @@ -889,10 +889,10 @@ importers: version: 8.57.1 eslint-config-airbnb: specifier: catalog:lint - version: 19.0.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1) + version: 19.0.4(eslint-plugin-import@2.32.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1) eslint-config-airbnb-typescript: specifier: catalog:lint - version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) + version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-plugin-import@2.32.0)(eslint@8.57.1) eslint-config-next: specifier: catalog:lint version: 13.5.11(eslint@8.57.1)(typescript@5.8.3) @@ -901,7 +901,7 @@ importers: version: 8.10.0(eslint@8.57.1) eslint-plugin-import: specifier: catalog:lint - version: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + version: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: specifier: catalog:lint version: 6.10.2(eslint@8.57.1) @@ -1033,7 +1033,7 @@ importers: version: 15.11.2(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.1.4)(react@19.1.0))(react@19.1.0) simplebar-react: specifier: 'catalog:' - version: 3.3.1(react@19.1.0) + version: 3.2.5(react@19.1.0) zustand: specifier: 'catalog:' version: 5.0.4(@types/react@19.1.4)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) @@ -9970,11 +9970,11 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - simplebar-core@1.3.1: - resolution: {integrity: sha512-d2JFNivCgxykWz9//MhUbpmxXmL4qDfZpUulmeY4KE1cq2amr+6rZhIOv6JyCprWP3yFlayYb0J5ApKV81r6Sg==} + simplebar-core@1.3.2: + resolution: {integrity: sha512-qKgTTuTqapjsFGkNhCjyPhysnbZGpQqNmjk0nOYjFN5ordC/Wjvg+RbYCyMSnW60l/Z0ZS82GbNltly6PMUH1w==} - simplebar-react@3.3.1: - resolution: {integrity: sha512-+jcY1Sd6HA2asoySOb5G+YTKboiNsQ0e0TP5JxoC3fw3PpiKTUx4sCj9fEr6Rz9CkViQmazLM4OipMFU18Mf4A==} + simplebar-react@3.2.5: + resolution: {integrity: sha512-ZstHCBF1Is2Lj+Un8NUYSHVCmn8ufi25ylP9UH2bDnASa+V+M+6/thGhUZOZ7YNpFFHTNgVIID3FHdwRqNuqZA==} peerDependencies: react: '>=16.8.0' @@ -17504,28 +17504,28 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: confusing-browser-globals: 1.0.11 eslint: 8.57.1 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) object.assign: 4.1.7 object.entries: 1.1.9 semver: 6.3.1 - eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.32.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.5(eslint@8.57.1))(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.32.0)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -17539,8 +17539,8 @@ snapshots: '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) @@ -17563,7 +17563,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1(supports-color@8.1.1) @@ -17574,22 +17574,22 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.9.2 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -17600,7 +17600,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -21724,15 +21724,15 @@ snapshots: dependencies: is-arrayish: 0.3.2 - simplebar-core@1.3.1: + simplebar-core@1.3.2: dependencies: lodash: 4.17.21 lodash-es: 4.17.21 - simplebar-react@3.3.1(react@19.1.0): + simplebar-react@3.2.5(react@19.1.0): dependencies: react: 19.1.0 - simplebar-core: 1.3.1 + simplebar-core: 1.3.2 sisteransi@1.0.5: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4c18b9c4..d03a8e54 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -19,7 +19,7 @@ catalog: react-international-phone: 4.5.0 react-hook-form: 7.56.4 react-virtuoso: 4.12.7 - simplebar-react: 3.3.1 + simplebar-react: 3.2.5 tsup: 8.3.6 typescript: 5.8.3 zod: 3.25.7