@jmruthers/pace-core 0.2.7 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/dist/{DataTable-EEUDXPE5.js → DataTable-GX3XERFJ.js} +8 -4
  2. package/dist/{DataTable-C1AEm9Cx.d.ts → DataTable-ltTFXHS3.d.ts} +3 -1
  3. package/dist/{chunk-VYG4AXYW.js → chunk-5EL3KHOQ.js} +2 -2
  4. package/dist/{chunk-ETEJVKYK.js → chunk-6CR3MRZN.js} +1426 -62
  5. package/dist/chunk-6CR3MRZN.js.map +1 -0
  6. package/dist/chunk-AUE24LVR.js +268 -0
  7. package/dist/chunk-AUE24LVR.js.map +1 -0
  8. package/dist/chunk-COBPIXXQ.js +379 -0
  9. package/dist/chunk-COBPIXXQ.js.map +1 -0
  10. package/dist/{chunk-EWKPTNPO.js → chunk-GSNM5D6H.js} +388 -86
  11. package/dist/chunk-GSNM5D6H.js.map +1 -0
  12. package/dist/{chunk-2V3Y6YBC.js → chunk-OEGRKULD.js} +1 -42
  13. package/dist/chunk-OEGRKULD.js.map +1 -0
  14. package/dist/chunk-OYRY44Q2.js +62 -0
  15. package/dist/chunk-OYRY44Q2.js.map +1 -0
  16. package/dist/{chunk-RRUYHORU.js → chunk-T3XIA4AJ.js} +297 -433
  17. package/dist/chunk-T3XIA4AJ.js.map +1 -0
  18. package/dist/{chunk-HEMJ4SUJ.js → chunk-TGDCLPP2.js} +11 -7
  19. package/dist/{chunk-HEMJ4SUJ.js.map → chunk-TGDCLPP2.js.map} +1 -1
  20. package/dist/{chunk-HNDFPXUU.js → chunk-U6JDHVC2.js} +6 -4
  21. package/dist/{chunk-HNDFPXUU.js.map → chunk-U6JDHVC2.js.map} +1 -1
  22. package/dist/{chunk-TIVL4UQ7.js → chunk-XJK2J4N6.js} +6 -4
  23. package/dist/{chunk-TIVL4UQ7.js.map → chunk-XJK2J4N6.js.map} +1 -1
  24. package/dist/components.d.ts +2 -2
  25. package/dist/components.js +21 -20
  26. package/dist/components.js.map +1 -1
  27. package/dist/hooks.d.ts +1 -1
  28. package/dist/hooks.js +7 -7
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.js +26 -25
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers.js +8 -7
  33. package/dist/rbac/index.d.ts +806 -806
  34. package/dist/rbac/index.js +937 -1179
  35. package/dist/rbac/index.js.map +1 -1
  36. package/dist/{types-DiRQsGJs.d.ts → types-BRDU7N6w.d.ts} +12 -1
  37. package/dist/utils.d.ts +2 -2
  38. package/dist/utils.js +6 -6
  39. package/docs/api/classes/ErrorBoundary.md +1 -1
  40. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  41. package/docs/api/interfaces/AggregateConfig.md +4 -4
  42. package/docs/api/interfaces/ButtonProps.md +1 -1
  43. package/docs/api/interfaces/CardProps.md +1 -1
  44. package/docs/api/interfaces/ColorPalette.md +1 -1
  45. package/docs/api/interfaces/ColorShade.md +1 -1
  46. package/docs/api/interfaces/DataTableAction.md +21 -8
  47. package/docs/api/interfaces/DataTableColumn.md +1 -1
  48. package/docs/api/interfaces/DataTableProps.md +46 -33
  49. package/docs/api/interfaces/DataTableToolbarButton.md +7 -7
  50. package/docs/api/interfaces/EmptyStateConfig.md +5 -5
  51. package/docs/api/interfaces/EventContextType.md +1 -1
  52. package/docs/api/interfaces/EventLogoProps.md +1 -1
  53. package/docs/api/interfaces/EventProviderProps.md +1 -1
  54. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  55. package/docs/api/interfaces/FileUploadProps.md +1 -1
  56. package/docs/api/interfaces/FooterProps.md +1 -1
  57. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  58. package/docs/api/interfaces/InputProps.md +1 -1
  59. package/docs/api/interfaces/LabelProps.md +1 -1
  60. package/docs/api/interfaces/LoginFormProps.md +1 -1
  61. package/docs/api/interfaces/NavigationItem.md +1 -1
  62. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  63. package/docs/api/interfaces/Organisation.md +1 -1
  64. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  65. package/docs/api/interfaces/OrganisationMembership.md +2 -2
  66. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  67. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  68. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  69. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  70. package/docs/api/interfaces/PaletteData.md +1 -1
  71. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  72. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  73. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  74. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  75. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  76. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  77. package/docs/api/interfaces/StorageConfig.md +1 -1
  78. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  79. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  80. package/docs/api/interfaces/StorageListOptions.md +1 -1
  81. package/docs/api/interfaces/StorageListResult.md +1 -1
  82. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  83. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  84. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  85. package/docs/api/interfaces/StyleImport.md +1 -1
  86. package/docs/api/interfaces/ToastActionElement.md +1 -1
  87. package/docs/api/interfaces/ToastProps.md +1 -1
  88. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  89. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  90. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  91. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  92. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  93. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  94. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  95. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  96. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  97. package/docs/api/interfaces/UserEventAccess.md +1 -1
  98. package/docs/api/interfaces/UserMenuProps.md +1 -1
  99. package/docs/api/interfaces/UserProfile.md +1 -1
  100. package/docs/api/modules.md +3 -3
  101. package/package.json +5 -2
  102. package/src/__tests__/REBUILD_PLAN.md +223 -0
  103. package/src/__tests__/TESTING_GUIDELINES.md +341 -0
  104. package/src/__tests__/fixtures/mocks.ts +93 -0
  105. package/src/__tests__/helpers/component-test-utils.tsx +145 -0
  106. package/src/__tests__/helpers/test-utils.tsx +117 -0
  107. package/src/__tests__/integration/UserProfile.test.tsx +128 -0
  108. package/src/__tests__/setup.ts +37 -225
  109. package/src/__tests__/templates/component.test.template.tsx +97 -75
  110. package/src/__tests__/templates/hook.test.template.ts +173 -0
  111. package/src/__tests__/types/test.types.ts +106 -0
  112. package/src/components/Alert/Alert.test.tsx +496 -0
  113. package/src/components/Avatar/Avatar.test.tsx +484 -0
  114. package/src/components/Button/Button.test.tsx +662 -0
  115. package/src/components/Card/Card.test.tsx +593 -0
  116. package/src/components/Checkbox/Checkbox.test.tsx +461 -0
  117. package/src/components/DataTable/DataTable.tsx +9 -1
  118. package/src/components/DataTable/components/AccessDeniedPage.tsx +168 -0
  119. package/src/components/DataTable/components/ActionButtons.tsx +18 -1
  120. package/src/components/DataTable/components/DataTableCore.tsx +97 -11
  121. package/src/components/DataTable/components/DataTableToolbar.tsx +22 -10
  122. package/src/components/DataTable/components/UnifiedTableBody.tsx +33 -4
  123. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +1 -0
  124. package/src/components/DataTable/examples/HierarchicalExample.tsx +3 -0
  125. package/src/components/DataTable/examples/InitialPageSizeExample.tsx +3 -0
  126. package/src/components/DataTable/examples/PerformanceExample.tsx +3 -0
  127. package/src/components/DataTable/types.ts +39 -1
  128. package/src/components/Dialog/Dialog.test.tsx +1139 -0
  129. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +752 -0
  130. package/src/components/FileUpload/FileUpload.test.tsx +665 -0
  131. package/src/hooks/useCounter.test.ts +135 -0
  132. package/src/rbac/index.ts +3 -3
  133. package/dist/chunk-2V3Y6YBC.js.map +0 -1
  134. package/dist/chunk-BEZRLNK3.js +0 -1744
  135. package/dist/chunk-BEZRLNK3.js.map +0 -1
  136. package/dist/chunk-ETEJVKYK.js.map +0 -1
  137. package/dist/chunk-EWKPTNPO.js.map +0 -1
  138. package/dist/chunk-OHXGNT3K.js +0 -21
  139. package/dist/chunk-OHXGNT3K.js.map +0 -1
  140. package/dist/chunk-RRUYHORU.js.map +0 -1
  141. package/src/__tests__/README.md +0 -404
  142. package/src/__tests__/debug-provider.unit.test.tsx +0 -67
  143. package/src/__tests__/e2e/workflows.test.tsx +0 -373
  144. package/src/__tests__/hybridPermissions.unit.test.tsx +0 -474
  145. package/src/__tests__/index.integration.test.ts +0 -491
  146. package/src/__tests__/mocks/MockAuthProvider-standalone.tsx +0 -47
  147. package/src/__tests__/mocks/MockAuthProvider.tsx +0 -63
  148. package/src/__tests__/mocks/enhancedSupabaseMock.ts +0 -252
  149. package/src/__tests__/mocks/index.test.ts +0 -23
  150. package/src/__tests__/mocks/index.ts +0 -16
  151. package/src/__tests__/mocks/mockAuth.ts +0 -155
  152. package/src/__tests__/mocks/mockSupabase.ts +0 -83
  153. package/src/__tests__/mocks/mockSupabaseClient.ts +0 -63
  154. package/src/__tests__/mocks/providers.tsx +0 -22
  155. package/src/__tests__/patterns/__tests__/testPatterns.test.ts +0 -394
  156. package/src/__tests__/patterns/testPatterns.ts +0 -124
  157. package/src/__tests__/performance/componentPerformance.performance.test.ts +0 -27
  158. package/src/__tests__/performance/index.ts +0 -24
  159. package/src/__tests__/performance/performanceValidation.performance.test.ts +0 -15
  160. package/src/__tests__/security/security.unit.test.tsx +0 -7
  161. package/src/__tests__/security/securityValidation.security.test.tsx +0 -153
  162. package/src/__tests__/setupTests.d.ts +0 -1
  163. package/src/__tests__/shared/componentTestUtils.tsx +0 -475
  164. package/src/__tests__/shared/errorHandlingTestUtils.ts +0 -107
  165. package/src/__tests__/shared/index.ts +0 -81
  166. package/src/__tests__/shared/integrationTestUtils.tsx +0 -375
  167. package/src/__tests__/shared/performanceTestUtils.tsx +0 -476
  168. package/src/__tests__/shared/testUtils.optimized.tsx +0 -685
  169. package/src/__tests__/simple.test.tsx +0 -20
  170. package/src/__tests__/test-utils/dataFactories.ts +0 -60
  171. package/src/__tests__/test-utils/index.ts +0 -6
  172. package/src/__tests__/typeSafety.unit.test.ts +0 -65
  173. package/src/__tests__/unifiedAuth.unit.test.tsx +0 -151
  174. package/src/__tests__/utils/accessibilityHelpers.ts +0 -254
  175. package/src/__tests__/utils/assertions.ts +0 -50
  176. package/src/__tests__/utils/deterministicHelpers.ts +0 -31
  177. package/src/__tests__/utils/edgeCaseConfig.test.ts +0 -75
  178. package/src/__tests__/utils/edgeCaseConfig.ts +0 -98
  179. package/src/__tests__/utils/mockHelpers.ts +0 -149
  180. package/src/__tests__/utils/mockLoader.ts +0 -101
  181. package/src/__tests__/utils/performanceHelpers.ts +0 -55
  182. package/src/__tests__/utils/performanceTestHelpers.ts +0 -68
  183. package/src/__tests__/utils/testDataFactories.ts +0 -28
  184. package/src/__tests__/utils/testIsolation.ts +0 -67
  185. package/src/__tests__/utils/visualTestHelpers.ts +0 -20
  186. package/src/__tests__/visual/__snapshots__/componentSnapshots.visual.test.tsx.snap +0 -68
  187. package/src/__tests__/visual/__snapshots__/componentVisuals.visual.test.tsx.snap +0 -14
  188. package/src/__tests__/visual/__snapshots__/visualRegression.test.tsx.snap +0 -217
  189. package/src/__tests__/visual/__snapshots__/visualRegression.visual.test.tsx.snap +0 -24
  190. package/src/__tests__/visual/componentSnapshots.visual.test.tsx +0 -33
  191. package/src/__tests__/visual/componentVisuals.visual.test.tsx +0 -12
  192. package/src/__tests__/visual/visualRegression.visual.test.tsx +0 -20
  193. package/src/components/Alert/__tests__/Alert.unit.test.tsx +0 -381
  194. package/src/components/Avatar/__tests__/Avatar.unit.test.tsx +0 -232
  195. package/src/components/Button/__tests__/Button.accessibility.test.tsx +0 -131
  196. package/src/components/Button/__tests__/Button.comprehensive.test.tsx +0 -721
  197. package/src/components/Button/__tests__/Button.unit.test.tsx +0 -189
  198. package/src/components/Button/__tests__/EventSelector.integration.test.tsx +0 -285
  199. package/src/components/Card/__tests__/Card.accessibility.test.tsx +0 -394
  200. package/src/components/Card/__tests__/Card.comprehensive.test.tsx +0 -599
  201. package/src/components/Card/__tests__/Card.integration.test.tsx +0 -673
  202. package/src/components/Card/__tests__/Card.performance.test.tsx +0 -546
  203. package/src/components/Card/__tests__/Card.unit.test.tsx +0 -330
  204. package/src/components/Card/__tests__/Card.visual.test.tsx +0 -599
  205. package/src/components/Card/__tests__/README.md +0 -211
  206. package/src/components/Checkbox/__tests__/Checkbox.unit.test.tsx +0 -520
  207. package/src/components/DataTable/__tests__/DataTable.errorHandling.test.tsx +0 -251
  208. package/src/components/DataTable/__tests__/DataTable.hierarchical.test.tsx +0 -680
  209. package/src/components/DataTable/__tests__/DataTable.infinite-loop.test.tsx +0 -323
  210. package/src/components/DataTable/__tests__/DataTable.integration.test.tsx +0 -716
  211. package/src/components/DataTable/__tests__/DataTable.performance.test.tsx +0 -589
  212. package/src/components/DataTable/__tests__/DataTable.permissions.test.tsx +0 -316
  213. package/src/components/DataTable/__tests__/DataTable.regressionFixes.test.tsx +0 -546
  214. package/src/components/DataTable/__tests__/DataTable.selection.controlled.test.tsx +0 -386
  215. package/src/components/DataTable/__tests__/DataTable.selection.test.tsx +0 -338
  216. package/src/components/DataTable/__tests__/DataTable.sorting.test.tsx +0 -321
  217. package/src/components/DataTable/__tests__/DataTable.userWorkflows.test.tsx +0 -320
  218. package/src/components/DataTable/__tests__/DataTable.workflowValidation.test.tsx +0 -583
  219. package/src/components/DataTable/__tests__/DataTable.workflows.test.tsx +0 -711
  220. package/src/components/DataTable/__tests__/performance-regression.test.tsx +0 -777
  221. package/src/components/DataTable/__tests__/performance.test.tsx +0 -365
  222. package/src/components/DataTable/components/__tests__/ActionButtons.unit.test.tsx +0 -150
  223. package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +0 -224
  224. package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.unit.test.tsx +0 -244
  225. package/src/components/DataTable/components/__tests__/DataTable.accessibility.test.tsx +0 -629
  226. package/src/components/DataTable/components/__tests__/DataTable.integration.test.tsx +0 -470
  227. package/src/components/DataTable/components/__tests__/DataTable.performance.test.tsx +0 -160
  228. package/src/components/DataTable/components/__tests__/DataTable.real.test.tsx +0 -251
  229. package/src/components/DataTable/components/__tests__/DataTable.security.test.tsx +0 -171
  230. package/src/components/DataTable/components/__tests__/DataTable.unit.test.tsx +0 -290
  231. package/src/components/DataTable/components/__tests__/DataTableBody.unit.test.tsx +0 -147
  232. package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.unit.test.tsx +0 -182
  233. package/src/components/DataTable/components/__tests__/DataTableModals.unit.test.tsx +0 -123
  234. package/src/components/DataTable/components/__tests__/EditableRow.unit.test.tsx +0 -660
  235. package/src/components/DataTable/components/__tests__/EmptyState.unit.test.tsx +0 -256
  236. package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +0 -498
  237. package/src/components/DataTable/components/__tests__/FilterRow.unit.test.tsx +0 -112
  238. package/src/components/DataTable/components/__tests__/FilteringToggle.unit.test.tsx +0 -133
  239. package/src/components/DataTable/components/__tests__/GroupHeader.unit.test.tsx +0 -172
  240. package/src/components/DataTable/components/__tests__/GroupingDropdown.unit.test.tsx +0 -222
  241. package/src/components/DataTable/components/__tests__/ImportModal.unit.test.tsx +0 -780
  242. package/src/components/DataTable/components/__tests__/LoadingState.unit.test.tsx +0 -65
  243. package/src/components/DataTable/components/__tests__/PaginationControls.unit.test.tsx +0 -634
  244. package/src/components/DataTable/components/__tests__/StateComponents.unit.test.tsx +0 -48
  245. package/src/components/DataTable/components/__tests__/UnifiedTableBody.hierarchical.test.tsx +0 -541
  246. package/src/components/DataTable/components/__tests__/ViewRowModal.unit.test.tsx +0 -228
  247. package/src/components/DataTable/components/__tests__/VirtualizedDataTable.unit.test.tsx +0 -568
  248. package/src/components/DataTable/core/__tests__/ActionManager.unit.test.ts +0 -405
  249. package/src/components/DataTable/core/__tests__/ArchitectureIntegration.unit.test.tsx +0 -445
  250. package/src/components/DataTable/core/__tests__/ColumnFactory.unit.test.ts +0 -288
  251. package/src/components/DataTable/core/__tests__/ColumnManager.unit.test.ts +0 -623
  252. package/src/components/DataTable/core/__tests__/DataManager.unit.test.ts +0 -431
  253. package/src/components/DataTable/core/__tests__/DataTableContext.unit.test.tsx +0 -433
  254. package/src/components/DataTable/core/__tests__/LocalDataAdapter.unit.test.ts +0 -422
  255. package/src/components/DataTable/core/__tests__/PluginRegistry.unit.test.tsx +0 -207
  256. package/src/components/DataTable/core/__tests__/StateManager.unit.test.ts +0 -278
  257. package/src/components/DataTable/examples/__tests__/PerformanceExample.unit.test.tsx +0 -281
  258. package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.unit.test.ts +0 -407
  259. package/src/components/DataTable/hooks/__tests__/useColumnReordering.unit.test.ts +0 -679
  260. package/src/components/DataTable/utils/__tests__/debugTools.unit.test.ts +0 -267
  261. package/src/components/DataTable/utils/__tests__/errorHandling.unit.test.ts +0 -467
  262. package/src/components/DataTable/utils/__tests__/exportUtils.unit.test.ts +0 -380
  263. package/src/components/DataTable/utils/__tests__/flexibleImport.unit.test.ts +0 -233
  264. package/src/components/DataTable/utils/__tests__/performanceUtils.unit.test.ts +0 -414
  265. package/src/components/Dialog/__tests__/Dialog.accessibility.test.tsx +0 -521
  266. package/src/components/Dialog/__tests__/Dialog.auto-size.example.tsx +0 -157
  267. package/src/components/Dialog/__tests__/Dialog.enhanced.test.tsx +0 -538
  268. package/src/components/Dialog/__tests__/Dialog.unit.test.tsx +0 -1373
  269. package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +0 -151
  270. package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +0 -611
  271. package/src/components/ErrorBoundary/__tests__/ErrorBoundary.accessibility.test.tsx +0 -517
  272. package/src/components/ErrorBoundary/__tests__/ErrorBoundary.integration.test.tsx +0 -572
  273. package/src/components/ErrorBoundary/__tests__/ErrorBoundary.unit.test.tsx +0 -579
  274. package/src/components/EventSelector/__tests__/EventSelector.test.tsx +0 -528
  275. package/src/components/FileUpload/__tests__/FileUpload.integration.test.tsx +0 -992
  276. package/src/components/FileUpload/__tests__/FileUpload.real.test.tsx +0 -927
  277. package/src/components/FileUpload/__tests__/FileUpload.test.tsx +0 -855
  278. package/src/components/FileUpload/__tests__/FileUpload.unit.test.tsx +0 -1311
  279. package/src/components/FileUpload/__tests__/FileUpload.unmocked.test.tsx +0 -937
  280. package/src/components/Footer/__tests__/Footer.accessibility.test.tsx +0 -359
  281. package/src/components/Footer/__tests__/Footer.integration.test.tsx +0 -353
  282. package/src/components/Footer/__tests__/Footer.performance.test.tsx +0 -309
  283. package/src/components/Footer/__tests__/Footer.unit.test.tsx +0 -309
  284. package/src/components/Footer/__tests__/Footer.visual.test.tsx +0 -335
  285. package/src/components/Form/__tests__/Form.accessibility.test.tsx +0 -820
  286. package/src/components/Form/__tests__/Form.unit.test.tsx +0 -305
  287. package/src/components/Form/__tests__/FormErrorSummary.unit.test.tsx +0 -285
  288. package/src/components/Form/__tests__/FormFieldset.unit.test.tsx +0 -241
  289. package/src/components/Header/__tests__/Header.accessibility.test.tsx +0 -382
  290. package/src/components/Header/__tests__/Header.comprehensive.test.tsx +0 -509
  291. package/src/components/Header/__tests__/Header.unit.test.tsx +0 -335
  292. package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +0 -196
  293. package/src/components/InactivityWarningModal/__tests__/InactivityWarningModal.unit.test.tsx +0 -224
  294. package/src/components/Input/__tests__/Input.accessibility.test.tsx +0 -632
  295. package/src/components/Input/__tests__/Input.unit.test.tsx +0 -1121
  296. package/src/components/Label/__tests__/Label.accessibility.test.tsx +0 -239
  297. package/src/components/Label/__tests__/Label.unit.test.tsx +0 -331
  298. package/src/components/LoadingSpinner/__tests__/LoadingSpinner.accessibility.test.tsx +0 -116
  299. package/src/components/LoadingSpinner/__tests__/LoadingSpinner.unit.test.tsx +0 -144
  300. package/src/components/LoginForm/__tests__/LoginForm.accessibility.test.tsx +0 -201
  301. package/src/components/LoginForm/__tests__/LoginForm.unit.test.tsx +0 -119
  302. package/src/components/NavigationMenu/__tests__/NavigationMenu.accessibility.test.tsx +0 -378
  303. package/src/components/NavigationMenu/__tests__/NavigationMenu.enhanced.test.tsx +0 -768
  304. package/src/components/NavigationMenu/__tests__/NavigationMenu.integration.test.tsx +0 -576
  305. package/src/components/NavigationMenu/__tests__/NavigationMenu.performance.test.tsx +0 -585
  306. package/src/components/NavigationMenu/__tests__/NavigationMenu.real.component.test.tsx +0 -783
  307. package/src/components/NavigationMenu/__tests__/NavigationMenu.security.enhanced.test.tsx +0 -810
  308. package/src/components/NavigationMenu/__tests__/NavigationMenu.security.test.tsx +0 -494
  309. package/src/components/NavigationMenu/__tests__/NavigationMenu.unit.test.tsx +0 -331
  310. package/src/components/NavigationMenu/__tests__/NavigationMenu.userWorkflows.test.tsx +0 -347
  311. package/src/components/NavigationMenu/__tests__/NavigationMenu.workflows.test.tsx +0 -584
  312. package/src/components/OrganisationSelector/__tests__/OrganisationSelector.unit.test.tsx +0 -664
  313. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +0 -288
  314. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +0 -893
  315. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.performance.test.tsx +0 -629
  316. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +0 -782
  317. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -904
  318. package/src/components/PaceLoginPage/__tests__/PaceLoginPage.accessibility.test.tsx +0 -463
  319. package/src/components/PaceLoginPage/__tests__/PaceLoginPage.integration.test.tsx +0 -586
  320. package/src/components/PaceLoginPage/__tests__/PaceLoginPage.unit.test.tsx +0 -533
  321. package/src/components/PasswordReset/__tests__/PasswordChangeForm.accessibility.test.tsx +0 -408
  322. package/src/components/PasswordReset/__tests__/PasswordChangeForm.unit.test.tsx +0 -561
  323. package/src/components/PasswordReset/__tests__/PasswordReset.integration.test.tsx +0 -304
  324. package/src/components/PasswordReset/__tests__/PasswordResetForm.accessibility.test.tsx +0 -20
  325. package/src/components/PasswordReset/__tests__/PasswordResetForm.unit.test.tsx +0 -523
  326. package/src/components/PasswordReset/__tests__/__mocks__/UnifiedAuthProvider.ts +0 -29
  327. package/src/components/Print/__tests__/Print.comprehensive.test.tsx +0 -331
  328. package/src/components/PrintButton/__tests__/PrintButton.unit.test.tsx +0 -429
  329. package/src/components/PrintButton/__tests__/PrintButtonGroup.unit.test.tsx +0 -277
  330. package/src/components/PrintButton/__tests__/PrintToolbar.unit.test.tsx +0 -264
  331. package/src/components/PrintCard/__tests__/PrintCard.unit.test.tsx +0 -233
  332. package/src/components/PrintCard/__tests__/PrintCardContent.test.tsx +0 -284
  333. package/src/components/PrintCard/__tests__/PrintCardGrid.unit.test.tsx +0 -214
  334. package/src/components/PrintCard/__tests__/PrintCardImage.unit.test.tsx +0 -264
  335. package/src/components/PrintDataTable/__tests__/PrintDataTable.unit.test.tsx +0 -361
  336. package/src/components/PrintDataTable/__tests__/PrintTableGroup.unit.test.tsx +0 -314
  337. package/src/components/PrintDataTable/__tests__/PrintTableRow.unit.test.tsx +0 -362
  338. package/src/components/PrintFooter/__tests__/PrintFooter.unit.test.tsx +0 -500
  339. package/src/components/PrintFooter/__tests__/PrintFooterContent.unit.test.tsx +0 -321
  340. package/src/components/PrintFooter/__tests__/PrintFooterInfo.unit.test.tsx +0 -335
  341. package/src/components/PrintFooter/__tests__/PrintPageNumber.unit.test.tsx +0 -340
  342. package/src/components/PrintGrid/__tests__/PrintGrid.unit.test.tsx +0 -340
  343. package/src/components/PrintGrid/__tests__/PrintGridBreakpoint.unit.test.tsx +0 -261
  344. package/src/components/PrintGrid/__tests__/PrintGridContainer.unit.test.tsx +0 -338
  345. package/src/components/PrintGrid/__tests__/PrintGridItem.unit.test.tsx +0 -338
  346. package/src/components/PrintHeader/__tests__/PrintCoverHeader.unit.test.tsx +0 -309
  347. package/src/components/PrintHeader/__tests__/PrintHeader.unit.test.tsx +0 -202
  348. package/src/components/PrintLayout/__tests__/PrintLayout.unit.test.tsx +0 -238
  349. package/src/components/PrintPageBreak/__tests__/PrintPageBreak.unit.test.tsx +0 -263
  350. package/src/components/PrintPageBreak/__tests__/PrintPageBreakGroup.unit.test.tsx +0 -239
  351. package/src/components/PrintPageBreak/__tests__/PrintPageBreakIndicator.unit.test.tsx +0 -235
  352. package/src/components/PrintSection/__tests__/PrintColumn.unit.test.tsx +0 -385
  353. package/src/components/PrintSection/__tests__/PrintDivider.unit.test.tsx +0 -373
  354. package/src/components/PrintSection/__tests__/PrintSection.unit.test.tsx +0 -390
  355. package/src/components/PrintSection/__tests__/PrintSectionContent.unit.test.tsx +0 -321
  356. package/src/components/PrintSection/__tests__/PrintSectionHeader.unit.test.tsx +0 -334
  357. package/src/components/PrintText/__tests__/PrintText.unit.test.tsx +0 -351
  358. package/src/components/Progress/__tests__/Progress.accessibility.test.tsx +0 -240
  359. package/src/components/Progress/__tests__/Progress.unit.test.tsx +0 -242
  360. package/src/components/PublicLayout/__tests__/EventLogo.test.tsx +0 -761
  361. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.simplified.test.tsx +0 -228
  362. package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +0 -228
  363. package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +0 -459
  364. package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +0 -362
  365. package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +0 -522
  366. package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +0 -599
  367. package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +0 -513
  368. package/src/components/RBAC/__tests__/PagePermissionGuard.unit.test.tsx +0 -683
  369. package/src/components/RBAC/__tests__/RBAC.integration.test.tsx +0 -573
  370. package/src/components/RBAC/__tests__/RBACGuard.unit.test.tsx +0 -467
  371. package/src/components/RBAC/__tests__/RBACProvider.accessibility.test.tsx +0 -475
  372. package/src/components/RBAC/__tests__/RBACProvider.advanced.test.tsx +0 -569
  373. package/src/components/RBAC/__tests__/RBACProvider.integration.test.tsx +0 -352
  374. package/src/components/RBAC/__tests__/RBACProvider.unit.test.tsx +0 -128
  375. package/src/components/RBAC/__tests__/RoleBasedContent.unit.test.tsx +0 -657
  376. package/src/components/Select/__tests__/SearchableSelect.unit.test.tsx +0 -437
  377. package/src/components/Select/__tests__/Select.accessibility.test.tsx +0 -1202
  378. package/src/components/Select/__tests__/Select.actual.test.tsx +0 -774
  379. package/src/components/Select/__tests__/Select.comprehensive.test.tsx +0 -837
  380. package/src/components/Select/__tests__/Select.enhanced.test.tsx +0 -1101
  381. package/src/components/Select/__tests__/Select.integration.test.tsx +0 -772
  382. package/src/components/Select/__tests__/Select.performance.test.tsx +0 -695
  383. package/src/components/Select/__tests__/Select.real-world.test.tsx +0 -1046
  384. package/src/components/Select/__tests__/Select.search-algorithms.test.tsx +0 -968
  385. package/src/components/Select/__tests__/Select.unit.test.tsx +0 -647
  386. package/src/components/Select/__tests__/Select.utils.test.tsx +0 -890
  387. package/src/components/Table/__tests__/Table.accessibility.test.tsx +0 -233
  388. package/src/components/Table/__tests__/Table.unit.test.tsx +0 -235
  389. package/src/components/Toast/__tests__/Toast.accessibility.test.tsx +0 -238
  390. package/src/components/Toast/__tests__/Toast.integration.test.tsx +0 -699
  391. package/src/components/Toast/__tests__/Toast.unit.test.tsx +0 -750
  392. package/src/components/Tooltip/__tests__/Tooltip.accessibility.test.tsx +0 -121
  393. package/src/components/Tooltip/__tests__/Tooltip.unit.test.tsx +0 -185
  394. package/src/components/UserMenu/__tests__/UserMenu.accessibility.test.tsx +0 -139
  395. package/src/components/UserMenu/__tests__/UserMenu.integration.test.tsx +0 -188
  396. package/src/components/UserMenu/__tests__/UserMenu.unit.test.tsx +0 -458
  397. package/src/components/__tests__/EdgeCaseTesting.enhanced.test.tsx +0 -524
  398. package/src/components/__tests__/ErrorTesting.enhanced.test.tsx +0 -455
  399. package/src/components/__tests__/SuperAdminGuard.test.tsx +0 -456
  400. package/src/components/__tests__/SuperAdminGuard.unit.test.tsx +0 -456
  401. package/src/components/examples/__tests__/PermissionExample.unit.test.tsx +0 -360
  402. package/src/hooks/__tests__/hooks.integration.test.tsx +0 -575
  403. package/src/hooks/__tests__/useApiFetch.unit.test.ts +0 -115
  404. package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +0 -133
  405. package/src/hooks/__tests__/useDebounce.unit.test.ts +0 -82
  406. package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +0 -293
  407. package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +0 -385
  408. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +0 -286
  409. package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +0 -838
  410. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +0 -627
  411. package/src/hooks/__tests__/useRBAC.unit.test.ts +0 -911
  412. package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +0 -537
  413. package/src/hooks/__tests__/useToast.unit.test.tsx +0 -62
  414. package/src/hooks/__tests__/useZodForm.unit.test.tsx +0 -37
  415. package/src/hooks/public/__tests__/usePublicEvent.test.tsx +0 -397
  416. package/src/hooks/public/__tests__/usePublicEventLogo.test.tsx +0 -690
  417. package/src/hooks/public/__tests__/usePublicRouteParams.test.tsx +0 -449
  418. package/src/providers/__tests__/EventProvider.unit.test.tsx +0 -768
  419. package/src/providers/__tests__/OrganisationProvider.basic.test.tsx +0 -116
  420. package/src/providers/__tests__/OrganisationProvider.unit.test.tsx +0 -1312
  421. package/src/providers/__tests__/UnifiedAuthProvider.inactivity.test.tsx +0 -601
  422. package/src/providers/__tests__/UnifiedAuthProvider.unit.test.tsx +0 -683
  423. package/src/providers/__tests__/index.unit.test.ts +0 -78
  424. package/src/rbac/__tests__/PagePermissionGuard.test.tsx +0 -673
  425. package/src/rbac/__tests__/README.md +0 -170
  426. package/src/rbac/__tests__/RoleBasedRouter.test.tsx +0 -709
  427. package/src/rbac/__tests__/TestContext.tsx +0 -72
  428. package/src/rbac/__tests__/__mocks__/cache.ts +0 -144
  429. package/src/rbac/__tests__/__mocks__/supabase.ts +0 -152
  430. package/src/rbac/__tests__/adapters-hooks-comprehensive.test.tsx +0 -782
  431. package/src/rbac/__tests__/adapters-hooks.test.tsx +0 -561
  432. package/src/rbac/__tests__/adapters.comprehensive.test.tsx +0 -963
  433. package/src/rbac/__tests__/adapters.test.tsx +0 -444
  434. package/src/rbac/__tests__/api.test.ts +0 -620
  435. package/src/rbac/__tests__/audit-observability-comprehensive.test.ts +0 -792
  436. package/src/rbac/__tests__/audit-observability.test.ts +0 -549
  437. package/src/rbac/__tests__/audit.test.ts +0 -616
  438. package/src/rbac/__tests__/build-contract-compliance-simple.test.ts +0 -230
  439. package/src/rbac/__tests__/cache-invalidation-comprehensive.test.ts +0 -889
  440. package/src/rbac/__tests__/cache-invalidation.test.ts +0 -457
  441. package/src/rbac/__tests__/cache.test.ts +0 -458
  442. package/src/rbac/__tests__/components-navigation-guard.enhanced.test.tsx +0 -859
  443. package/src/rbac/__tests__/components-navigation-guard.test.tsx +0 -895
  444. package/src/rbac/__tests__/components-navigation-provider.test.tsx +0 -692
  445. package/src/rbac/__tests__/components-page-permission-guard.test.tsx +0 -673
  446. package/src/rbac/__tests__/components-page-permission-provider.test.tsx +0 -614
  447. package/src/rbac/__tests__/components-permission-enforcer.enhanced.fixed.test.tsx +0 -836
  448. package/src/rbac/__tests__/components-permission-enforcer.enhanced.test.tsx +0 -837
  449. package/src/rbac/__tests__/components-permission-enforcer.test.tsx +0 -825
  450. package/src/rbac/__tests__/components-role-based-router.test.tsx +0 -709
  451. package/src/rbac/__tests__/components-secure-data-provider.test.tsx +0 -607
  452. package/src/rbac/__tests__/config.test.ts +0 -583
  453. package/src/rbac/__tests__/core-logic-unit.test.ts +0 -190
  454. package/src/rbac/__tests__/core-permission-logic-comprehensive.test.ts +0 -1467
  455. package/src/rbac/__tests__/core-permission-logic-fixed.test.ts +0 -151
  456. package/src/rbac/__tests__/core-permission-logic-simple.test.ts +0 -968
  457. package/src/rbac/__tests__/core-permission-logic.test.ts +0 -966
  458. package/src/rbac/__tests__/edge-cases-comprehensive.test.ts +0 -988
  459. package/src/rbac/__tests__/edge-cases.test.ts +0 -654
  460. package/src/rbac/__tests__/engine.test.ts +0 -361
  461. package/src/rbac/__tests__/engine.unit.test.ts +0 -361
  462. package/src/rbac/__tests__/hooks.enhanced.test.tsx +0 -979
  463. package/src/rbac/__tests__/hooks.fixed.test.tsx +0 -475
  464. package/src/rbac/__tests__/hooks.test.tsx +0 -385
  465. package/src/rbac/__tests__/index.test.ts +0 -269
  466. package/src/rbac/__tests__/integration.enhanced.test.tsx +0 -824
  467. package/src/rbac/__tests__/page-permission-guard-super-admin.test.tsx +0 -261
  468. package/src/rbac/__tests__/performance.enhanced.test.tsx +0 -724
  469. package/src/rbac/__tests__/permissions.test.ts +0 -383
  470. package/src/rbac/__tests__/requires-event.test.ts +0 -330
  471. package/src/rbac/__tests__/scope-isolation-comprehensive.test.ts +0 -1349
  472. package/src/rbac/__tests__/scope-isolation.test.ts +0 -755
  473. package/src/rbac/__tests__/secure-client-rls-comprehensive.test.ts +0 -592
  474. package/src/rbac/__tests__/secure-client-rls.test.ts +0 -377
  475. package/src/rbac/__tests__/security.test.ts +0 -296
  476. package/src/rbac/__tests__/setup.ts +0 -228
  477. package/src/rbac/__tests__/test-utils-enhanced.tsx +0 -400
  478. package/src/rbac/__tests__/types.test.ts +0 -685
  479. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +0 -631
  480. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +0 -667
  481. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +0 -647
  482. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +0 -496
  483. package/src/rbac/testing/__tests__/index.test.tsx +0 -342
  484. package/src/rbac/utils/__tests__/eventContext.test.ts +0 -428
  485. package/src/rbac/utils/__tests__/eventContext.unit.test.ts +0 -428
  486. package/src/styles/__tests__/styles.unit.test.ts +0 -164
  487. package/src/test-dom-cleanup.test.tsx +0 -38
  488. package/src/theming/__tests__/README.md +0 -335
  489. package/src/theming/__tests__/runtime.accessibility.test.ts +0 -474
  490. package/src/theming/__tests__/runtime.error.test.ts +0 -616
  491. package/src/theming/__tests__/runtime.integration.test.ts +0 -376
  492. package/src/theming/__tests__/runtime.performance.test.ts +0 -411
  493. package/src/theming/__tests__/runtime.unit.test.ts +0 -470
  494. package/src/types/__tests__/database.unit.test.ts +0 -489
  495. package/src/types/__tests__/guards.unit.test.ts +0 -146
  496. package/src/types/__tests__/index.unit.test.ts +0 -77
  497. package/src/types/__tests__/organisation.unit.test.ts +0 -713
  498. package/src/types/__tests__/rbac.unit.test.ts +0 -621
  499. package/src/types/__tests__/security.unit.test.ts +0 -347
  500. package/src/types/__tests__/supabase.unit.test.ts +0 -658
  501. package/src/types/__tests__/theme.unit.test.ts +0 -218
  502. package/src/types/__tests__/unified.unit.test.ts +0 -537
  503. package/src/types/__tests__/validation.unit.test.ts +0 -616
  504. package/src/utils/__tests__/appConfig.unit.test.ts +0 -55
  505. package/src/utils/__tests__/appNameResolver.unit.test.ts +0 -137
  506. package/src/utils/__tests__/audit.unit.test.ts +0 -69
  507. package/src/utils/__tests__/auth-utils.unit.test.ts +0 -70
  508. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +0 -317
  509. package/src/utils/__tests__/cn.unit.test.ts +0 -34
  510. package/src/utils/__tests__/deviceFingerprint.unit.test.ts +0 -480
  511. package/src/utils/__tests__/dynamicUtils.unit.test.ts +0 -322
  512. package/src/utils/__tests__/formatDate.unit.test.ts +0 -109
  513. package/src/utils/__tests__/formatting.unit.test.ts +0 -66
  514. package/src/utils/__tests__/index.unit.test.ts +0 -251
  515. package/src/utils/__tests__/lazyLoad.unit.test.tsx +0 -304
  516. package/src/utils/__tests__/organisationContext.unit.test.ts +0 -192
  517. package/src/utils/__tests__/performanceBudgets.unit.test.ts +0 -259
  518. package/src/utils/__tests__/permissionTypes.unit.test.ts +0 -250
  519. package/src/utils/__tests__/permissionUtils.unit.test.ts +0 -362
  520. package/src/utils/__tests__/sanitization.unit.test.ts +0 -346
  521. package/src/utils/__tests__/schemaUtils.unit.test.ts +0 -441
  522. package/src/utils/__tests__/secureDataAccess.unit.test.ts +0 -334
  523. package/src/utils/__tests__/secureErrors.unit.test.ts +0 -377
  524. package/src/utils/__tests__/secureStorage.unit.test.ts +0 -293
  525. package/src/utils/__tests__/security.unit.test.ts +0 -127
  526. package/src/utils/__tests__/securityMonitor.unit.test.ts +0 -280
  527. package/src/utils/__tests__/sessionTracking.unit.test.ts +0 -370
  528. package/src/utils/__tests__/validation.unit.test.ts +0 -84
  529. package/src/utils/__tests__/validationUtils.unit.test.ts +0 -571
  530. package/src/utils/print/__tests__/PrintDataProcessor.unit.test.ts +0 -219
  531. package/src/utils/print/__tests__/usePrintOptimization.unit.test.tsx +0 -353
  532. package/src/utils/storage/__tests__/config.unit.test.ts +0 -206
  533. package/src/utils/storage/__tests__/helpers.unit.test.ts +0 -648
  534. package/src/utils/storage/__tests__/index.unit.test.ts +0 -167
  535. package/src/utils/storage/__tests__/types.unit.test.ts +0 -441
  536. package/src/validation/__tests__/common.unit.test.ts +0 -101
  537. package/src/validation/__tests__/csrf.unit.test.ts +0 -302
  538. package/src/validation/__tests__/passwordSchema.unit.test.ts +0 -98
  539. package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +0 -466
  540. /package/dist/{DataTable-EEUDXPE5.js.map → DataTable-GX3XERFJ.js.map} +0 -0
  541. /package/dist/{chunk-VYG4AXYW.js.map → chunk-5EL3KHOQ.js.map} +0 -0
@@ -1,470 +0,0 @@
1
- import React from 'react';
2
- import { render, screen, fireEvent, waitFor } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import { describe, it, expect, beforeEach, vi } from 'vitest';
5
- import '@testing-library/jest-dom';
6
- import { DataTable } from '../../DataTable';
7
- import type { SimpleColumn } from '../../types';
8
- import { createDefaultFeatures, createFeaturesWithEnabled } from '../../__tests__/test-utils';
9
-
10
- // Mock TanStack Table to avoid complex dependencies
11
- vi.mock('@tanstack/react-table', () => ({
12
- useReactTable: vi.fn(() => ({
13
- getCoreRowModel: () => (rows: any[]) => rows,
14
- getFilteredRowModel: () => (rows: any[]) => rows,
15
- getSortedRowModel: () => (rows: any[]) => rows,
16
- getPaginationRowModel: () => (rows: any[]) => rows,
17
- getGroupedRowModel: () => (rows: any[]) => rows,
18
- getExpandedRowModel: () => (rows: any[]) => rows,
19
- getAllColumns: () => [
20
- {
21
- id: 'name',
22
- columnDef: { header: 'Name' },
23
- getCanSort: () => true,
24
- getIsSorted: () => false,
25
- getToggleSortingHandler: () => () => {},
26
- getIsVisible: () => true,
27
- getCanFilter: () => true
28
- },
29
- {
30
- id: 'email',
31
- columnDef: { header: 'Email' },
32
- getCanSort: () => true,
33
- getIsSorted: () => false,
34
- getToggleSortingHandler: () => () => {},
35
- getIsVisible: () => true,
36
- getCanFilter: () => true
37
- },
38
- {
39
- id: 'role',
40
- columnDef: { header: 'Role' },
41
- getCanSort: () => false,
42
- getIsSorted: () => false,
43
- getToggleSortingHandler: () => () => {},
44
- getIsVisible: () => true,
45
- getCanFilter: () => true
46
- }
47
- ],
48
- getVisibleFlatColumns: () => [
49
- {
50
- id: 'name',
51
- columnDef: { header: 'Name' },
52
- getCanSort: () => true,
53
- getIsSorted: () => false,
54
- getToggleSortingHandler: () => () => {},
55
- getIsVisible: () => true,
56
- getCanFilter: () => true
57
- },
58
- {
59
- id: 'email',
60
- columnDef: { header: 'Email' },
61
- getCanSort: () => true,
62
- getIsSorted: () => false,
63
- getToggleSortingHandler: () => () => {},
64
- getIsVisible: () => true,
65
- getCanFilter: () => true
66
- },
67
- {
68
- id: 'role',
69
- columnDef: { header: 'Role' },
70
- getCanSort: () => false,
71
- getIsSorted: () => false,
72
- getToggleSortingHandler: () => () => {},
73
- getIsVisible: () => true,
74
- getCanFilter: () => true
75
- }
76
- ],
77
- getHeaderGroups: () => [{
78
- id: 'headerGroup',
79
- headers: [
80
- {
81
- id: 'name',
82
- isPlaceholder: false,
83
- column: {
84
- columnDef: { header: 'Name' },
85
- getCanSort: () => true,
86
- getIsSorted: () => false,
87
- getToggleSortingHandler: () => () => {},
88
- getIsVisible: () => true,
89
- getCanFilter: () => true
90
- },
91
- getContext: () => ({}),
92
- },
93
- {
94
- id: 'email',
95
- isPlaceholder: false,
96
- column: {
97
- columnDef: { header: 'Email' },
98
- getCanSort: () => true,
99
- getIsSorted: () => false,
100
- getToggleSortingHandler: () => () => {},
101
- getIsVisible: () => true,
102
- getCanFilter: () => true
103
- },
104
- getContext: () => ({}),
105
- },
106
- {
107
- id: 'role',
108
- isPlaceholder: false,
109
- column: {
110
- columnDef: { header: 'Role' },
111
- getCanSort: () => false,
112
- getIsSorted: () => false,
113
- getToggleSortingHandler: () => () => {},
114
- getIsVisible: () => true,
115
- getCanFilter: () => true
116
- },
117
- getContext: () => ({}),
118
- },
119
- ],
120
- }],
121
- getRowModel: () => ({
122
- rows: [
123
- {
124
- id: '1',
125
- getIsSelected: () => false,
126
- getVisibleCells: () => [
127
- {
128
- id: 'cell-1-name',
129
- column: { columnDef: { cell: 'John Doe' } },
130
- getContext: () => ({}),
131
- },
132
- {
133
- id: 'cell-1-email',
134
- column: { columnDef: { cell: 'john@example.com' } },
135
- getContext: () => ({}),
136
- },
137
- {
138
- id: 'cell-1-role',
139
- column: { columnDef: { cell: 'admin' } },
140
- getContext: () => ({}),
141
- },
142
- ],
143
- },
144
- ],
145
- }),
146
- getRowCount: () => 1,
147
- getPageCount: () => 1,
148
- getCanPreviousPage: () => false,
149
- getCanNextPage: () => false,
150
- previousPage: vi.fn(),
151
- nextPage: vi.fn(),
152
- setPageIndex: vi.fn(),
153
- setPageSize: vi.fn(),
154
- getState: () => ({
155
- sorting: [],
156
- columnFilters: [],
157
- columnVisibility: {},
158
- globalFilter: '',
159
- pagination: { pageIndex: 0, pageSize: 10 },
160
- grouping: [],
161
- expanded: {}
162
- }),
163
- setGlobalFilter: vi.fn(),
164
- setColumnVisibility: vi.fn(),
165
- setSorting: vi.fn(),
166
- setColumnFilters: vi.fn(),
167
- setPagination: vi.fn(),
168
- setGrouping: vi.fn(),
169
- setExpanded: vi.fn(),
170
- toggleAllRowsExpanded: vi.fn(),
171
- getIsAllRowsExpanded: () => false,
172
- getIsSomeRowsExpanded: () => false,
173
- resetExpanded: vi.fn(),
174
- })),
175
- getCoreRowModel: vi.fn(),
176
- getFilteredRowModel: vi.fn(),
177
- getSortedRowModel: vi.fn(),
178
- getPaginationRowModel: vi.fn(),
179
- getGroupedRowModel: vi.fn(),
180
- getExpandedRowModel: vi.fn(),
181
- flexRender: vi.fn((cell, context) => cell || 'Mocked Cell'),
182
- }));
183
-
184
- // Mock the DataTable context
185
- vi.mock('../../core/DataTableContext', () => ({
186
- DataTableProvider: ({ children }: any) => <div data-testid="data-table-provider">{children}</div>,
187
- useDataTableContext: () => ({
188
- stateManager: {
189
- getState: () => ({
190
- data: [],
191
- columns: [],
192
- columnVisibility: {},
193
- ui: {
194
- sorting: [],
195
- columnFilters: [],
196
- globalFilter: '',
197
- pagination: { pageIndex: 0, pageSize: 10 },
198
- grouping: [],
199
- editing: { rowId: null, data: {}, isCreating: false, creationData: {} },
200
- modals: { import: false, view: false, viewData: null }
201
- }
202
- }),
203
- subscribe: vi.fn(() => vi.fn()), // Add subscribe method that returns unsubscribe function
204
- updateSorting: vi.fn(),
205
- updateColumnFilters: vi.fn(),
206
- updateGlobalFilter: vi.fn(),
207
- updatePagination: vi.fn(),
208
- updateGrouping: vi.fn(),
209
- updateEditing: vi.fn(),
210
- updateModals: vi.fn(),
211
- setState: vi.fn(),
212
- },
213
- dataManager: {
214
- getData: () => [],
215
- setData: vi.fn(),
216
- addRow: vi.fn(),
217
- updateRow: vi.fn(),
218
- deleteRow: vi.fn(),
219
- },
220
- columnManager: {
221
- getColumns: () => [],
222
- setColumns: vi.fn(),
223
- addColumn: vi.fn(),
224
- removeColumn: vi.fn(),
225
- },
226
- actionManager: {
227
- getActions: () => [],
228
- addAction: vi.fn(),
229
- removeAction: vi.fn(),
230
- },
231
- }),
232
- }));
233
-
234
- // Mock individual components
235
-
236
- vi.mock('../DataTableToolbar', () => ({
237
- DataTableToolbar: () => <div data-testid="data-table-toolbar">Toolbar</div>,
238
- }));
239
-
240
- vi.mock('../DataTableBody', () => ({
241
- DataTableBody: () => <div data-testid="data-table-body">Body</div>,
242
- }));
243
-
244
- vi.mock('../DataTableModals', () => ({
245
- DataTableModals: () => <div data-testid="data-table-modals">Modals</div>,
246
- }));
247
-
248
- vi.mock('../PaginationControls', () => ({
249
- PaginationControls: () => <div data-testid="pagination-controls">Pagination</div>,
250
- }));
251
-
252
- vi.mock('../LoadingState', () => ({
253
- LoadingState: () => <div data-testid="loading-state">Loading...</div>,
254
- }));
255
-
256
- vi.mock('../DataTableErrorBoundary', () => ({
257
- DataTableErrorBoundary: ({ children }: any) => <div data-testid="error-boundary">{children}</div>,
258
- }));
259
-
260
- // Mock utils
261
- vi.mock('../../../utils/cn', () => ({
262
- cn: (...classes: any[]) => classes.filter(Boolean).join(' '),
263
- }));
264
-
265
- // Mock the performance hook
266
- vi.mock('../../../../hooks/useDataTablePerformance', () => ({
267
- useDataTablePerformance: vi.fn(() => ({
268
- paginationMode: 'client',
269
- isVirtualized: false,
270
- pageSizeOptions: [10, 25, 50, 100],
271
- processedData: [],
272
- totalCount: 0,
273
- isLoading: false,
274
- searchQuery: '',
275
- setSearchQuery: vi.fn(),
276
- fetchServerData: vi.fn(),
277
- serverData: null,
278
- memoryUsage: 0,
279
- cleanup: vi.fn(),
280
- })),
281
- }));
282
-
283
- // Mock performance components
284
- vi.mock('../EnhancedVirtualizedDataTable', () => ({
285
- EnhancedVirtualizedDataTable: () => <div data-testid="virtualized-table">Virtualized Table</div>,
286
- }));
287
-
288
- vi.mock('../EnhancedPaginationControls', () => ({
289
- EnhancedPaginationControls: () => <div data-testid="enhanced-pagination">Enhanced Pagination</div>,
290
- }));
291
-
292
- vi.mock('../EmptyState', () => ({
293
- EmptyState: () => <div data-testid="empty-state">No data</div>,
294
- }));
295
-
296
- // Test utilities
297
- const createTestData = (count: number) => {
298
- return Array.from({ length: count }, (_, i) => ({
299
- id: i + 1,
300
- name: `User ${i + 1}`,
301
- email: `user${i + 1}@example.com`,
302
- role: i % 2 === 0 ? 'admin' : 'user'
303
- }));
304
- };
305
-
306
- const createTestColumns = (): SimpleColumn[] => [
307
- { key: 'name', label: 'Name' },
308
- { key: 'email', label: 'Email' },
309
- { key: 'role', label: 'Role' }
310
- ];
311
-
312
- const createTestActions = () => [];
313
-
314
- describe('DataTable Integration Tests', () => {
315
- const user = userEvent.setup();
316
-
317
- beforeEach(() => {
318
- vi.clearAllMocks();
319
- });
320
-
321
- describe('User Workflows', () => {
322
- it('completes full CRUD workflow', async () => {
323
- const onEditRow = vi.fn();
324
- const onDeleteRow = vi.fn();
325
- const onCreateRow = vi.fn();
326
-
327
- const columns = createTestColumns();
328
- const data = createTestData(3);
329
-
330
- render(
331
- <DataTable
332
- columns={columns}
333
- data={data}
334
- features={createFeaturesWithEnabled(['editing', 'deletion', 'creation'])}
335
- onEditRow={onEditRow}
336
- onDeleteRow={onDeleteRow}
337
- onCreateRow={onCreateRow}
338
- />
339
- );
340
-
341
- expect(screen.getByRole('table')).toBeInTheDocument();
342
- });
343
-
344
- it('handles search and filter workflow', async () => {
345
- const columns = createTestColumns();
346
- const data = createTestData(5);
347
-
348
- render(
349
- <DataTable
350
- columns={columns}
351
- data={data}
352
- features={createFeaturesWithEnabled(['search'])}
353
- />
354
- );
355
-
356
- expect(screen.getByRole('table')).toBeInTheDocument();
357
- });
358
-
359
- it('handles pagination workflow', async () => {
360
- const columns = createTestColumns();
361
- const data = createTestData(25);
362
-
363
- render(
364
- <DataTable
365
- columns={columns}
366
- data={data}
367
- features={createFeaturesWithEnabled(['pagination'])}
368
- />
369
- );
370
-
371
- expect(screen.getByRole('table')).toBeInTheDocument();
372
- });
373
- });
374
-
375
- describe('Component Integration', () => {
376
- it('integrates with toolbar components', () => {
377
- const columns = createTestColumns();
378
- const data = createTestData(3);
379
-
380
- render(
381
- <DataTable
382
- columns={columns}
383
- data={data}
384
- features={createFeaturesWithEnabled(['search', 'columnVisibility', 'grouping'])}
385
- />
386
- );
387
-
388
- expect(screen.getByRole('table')).toBeInTheDocument();
389
- });
390
-
391
- it('integrates with action components', () => {
392
- const columns = createTestColumns();
393
- const data = createTestData(3);
394
- const actions = createTestActions();
395
-
396
- render(
397
- <DataTable
398
- columns={columns}
399
- data={data}
400
- actions={actions}
401
- features={createDefaultFeatures()}
402
- />
403
- );
404
-
405
- expect(screen.getByRole('table')).toBeInTheDocument();
406
- });
407
-
408
- it('integrates with modal components', () => {
409
- const columns = createTestColumns();
410
- const data = createTestData(3);
411
-
412
- render(
413
- <DataTable
414
- columns={columns}
415
- data={data}
416
- features={createFeaturesWithEnabled(['import'])}
417
- />
418
- );
419
-
420
- expect(screen.getByRole('table')).toBeInTheDocument();
421
- });
422
- });
423
-
424
- describe('State Management Integration', () => {
425
- it('handles loading states', () => {
426
- const columns = createTestColumns();
427
- const data = createTestData(3);
428
-
429
- render(
430
- <DataTable
431
- columns={createTestColumns()}
432
- data={createTestData(3)}
433
- isLoading={true}
434
- features={createDefaultFeatures()}
435
- />
436
- );
437
-
438
- expect(screen.getByTestId('loading-state')).toBeInTheDocument();
439
- });
440
-
441
- it('handles empty states', () => {
442
- const columns = createTestColumns();
443
-
444
- render(
445
- <DataTable
446
- columns={createTestColumns()}
447
- data={[]}
448
- features={createDefaultFeatures()}
449
- />
450
- );
451
-
452
- expect(screen.getByRole('table')).toBeInTheDocument();
453
- });
454
-
455
- it('handles error states', () => {
456
- const columns = createTestColumns();
457
- const data = createTestData(3);
458
-
459
- render(
460
- <DataTable
461
- columns={createTestColumns()}
462
- data={createTestData(3)}
463
- features={createDefaultFeatures()}
464
- />
465
- );
466
-
467
- expect(screen.getByRole('table')).toBeInTheDocument();
468
- });
469
- });
470
- });
@@ -1,160 +0,0 @@
1
- import React from 'react';
2
- import { screen } from '@testing-library/react';
3
- import { describe, it, expect, vi, beforeEach } from 'vitest';
4
- import '@testing-library/jest-dom';
5
- import { renderWithProviders } from '../../../../__tests__/shared';
6
- import { DataTable } from '../../DataTable';
7
- import type { SimpleColumn } from '../../types';
8
- import { createDefaultFeatures, createFeaturesWithEnabled } from '../../__tests__/test-utils';
9
-
10
- // Mock TanStack Table
11
- vi.mock('@tanstack/react-table', () => ({
12
- useReactTable: vi.fn(() => ({
13
- getCoreRowModel: () => (rows: any[]) => rows,
14
- getFilteredRowModel: () => (rows: any[]) => rows,
15
- getSortedRowModel: () => (rows: any[]) => rows,
16
- getPaginationRowModel: () => (rows: any[]) => rows,
17
- getGroupedRowModel: () => (rows: any[]) => rows,
18
- getExpandedRowModel: () => (rows: any[]) => rows,
19
- getAllColumns: () => [],
20
- getVisibleFlatColumns: () => [],
21
- getHeaderGroups: () => [],
22
- getRowModel: () => ({ rows: [] }),
23
- getRowCount: () => 0,
24
- getPageCount: () => 1,
25
- getCanPreviousPage: () => false,
26
- getCanNextPage: () => false,
27
- previousPage: vi.fn(),
28
- nextPage: vi.fn(),
29
- setPageIndex: vi.fn(),
30
- setPageSize: vi.fn(),
31
- getState: () => ({
32
- sorting: [],
33
- columnFilters: [],
34
- columnVisibility: {},
35
- globalFilter: '',
36
- pagination: { pageIndex: 0, pageSize: 10 },
37
- grouping: [],
38
- expanded: {}
39
- }),
40
- setGlobalFilter: vi.fn(),
41
- setColumnVisibility: vi.fn(),
42
- setSorting: vi.fn(),
43
- setColumnFilters: vi.fn(),
44
- setPagination: vi.fn(),
45
- setGrouping: vi.fn(),
46
- setExpanded: vi.fn(),
47
- toggleAllRowsExpanded: vi.fn(),
48
- getIsAllRowsExpanded: () => false,
49
- getIsSomeRowsExpanded: () => false,
50
- resetExpanded: vi.fn(),
51
- })),
52
- getCoreRowModel: vi.fn(),
53
- getFilteredRowModel: vi.fn(),
54
- getSortedRowModel: vi.fn(),
55
- getPaginationRowModel: vi.fn(),
56
- getGroupedRowModel: vi.fn(),
57
- getExpandedRowModel: vi.fn(),
58
- flexRender: vi.fn((cell, context) => cell || 'Mocked Cell'),
59
- }));
60
-
61
- // Mock DataTable context with complete state structure
62
- vi.mock('../../core/DataTableContext', () => ({
63
- DataTableProvider: ({ children }: any) => <div data-testid="data-table-provider">{children}</div>,
64
- useDataTableContext: () => ({
65
- stateManager: {
66
- getState: () => ({
67
- data: [],
68
- columns: [],
69
- ui: {
70
- sorting: [],
71
- columnFilters: [],
72
- globalFilter: '',
73
- pagination: { pageIndex: 0, pageSize: 10 },
74
- grouping: [],
75
- editing: {
76
- rowId: null,
77
- data: {},
78
- isCreating: false,
79
- creationData: {}
80
- },
81
- modals: {
82
- import: false,
83
- view: false,
84
- viewData: null
85
- }
86
- }
87
- }),
88
- subscribe: vi.fn(() => vi.fn()), // Add subscribe method that returns unsubscribe function
89
- updateSorting: vi.fn(),
90
- updateColumnFilters: vi.fn(),
91
- updateGlobalFilter: vi.fn(),
92
- updatePagination: vi.fn(),
93
- updateGrouping: vi.fn(),
94
- updateEditing: vi.fn(),
95
- updateModals: vi.fn(),
96
- setState: vi.fn(),
97
- },
98
- dataManager: { getData: () => [], setData: vi.fn() },
99
- columnManager: { getColumns: () => [], setColumns: vi.fn() },
100
- actionManager: { getActions: () => [], addAction: vi.fn() },
101
- }),
102
- }));
103
-
104
- // Mock components
105
- vi.mock('../DataTableToolbar', () => ({ DataTableToolbar: () => <div data-testid="toolbar">Toolbar</div> }));
106
- vi.mock('../DataTableBody', () => ({ DataTableBody: () => <div data-testid="body">Body</div> }));
107
- vi.mock('../DataTableModals', () => ({ DataTableModals: () => <div data-testid="modals">Modals</div> }));
108
- vi.mock('../PaginationControls', () => ({ PaginationControls: () => <div data-testid="pagination">Pagination</div> }));
109
- vi.mock('../LoadingState', () => ({ LoadingState: () => <div data-testid="loading">Loading</div> }));
110
- vi.mock('../DataTableErrorBoundary', () => ({ DataTableErrorBoundary: ({ children }: any) => <div data-testid="error-boundary">{children}</div> }));
111
- vi.mock('../../../utils/cn', () => ({ cn: (...classes: any[]) => classes.filter(Boolean).join(' ') }));
112
-
113
- const createTestData = (count: number) => Array.from({ length: count }, (_, i) => ({
114
- id: i + 1,
115
- name: `User ${i + 1}`,
116
- email: `user${i + 1}@example.com`,
117
- role: i % 2 === 0 ? 'admin' : 'user'
118
- }));
119
-
120
- const createTestColumns = (): SimpleColumn[] => [
121
- { key: 'name', label: 'Name' },
122
- { key: 'email', label: 'Email' },
123
- { key: 'role', label: 'Role' }
124
- ];
125
-
126
- describe('DataTable Performance Tests', () => {
127
- beforeEach(() => {
128
- vi.clearAllMocks();
129
- });
130
-
131
- it('renders small datasets efficiently', () => {
132
- const startTime = performance.now();
133
-
134
- renderWithProviders(<DataTable columns={createTestColumns()} data={createTestData(10)} features={createDefaultFeatures()} />);
135
-
136
- const endTime = performance.now();
137
- expect(endTime - startTime).toBeLessThan(400); // Increased for CI environments
138
- expect(screen.getByRole('table')).toBeInTheDocument();
139
- });
140
-
141
- it('renders large datasets efficiently', () => {
142
- const startTime = performance.now();
143
-
144
- renderWithProviders(<DataTable columns={createTestColumns()} data={createTestData(1000)} features={createFeaturesWithEnabled(['virtualization'])} />);
145
-
146
- const endTime = performance.now();
147
- expect(endTime - startTime).toBeLessThan(500);
148
- expect(screen.getByRole('table')).toBeInTheDocument();
149
- });
150
-
151
- it('handles search performance efficiently', () => {
152
- const startTime = performance.now();
153
-
154
- renderWithProviders(<DataTable columns={createTestColumns()} data={createTestData(500)} features={createFeaturesWithEnabled(['search'])} />);
155
-
156
- const endTime = performance.now();
157
- expect(endTime - startTime).toBeLessThan(200);
158
- expect(screen.getByRole('table')).toBeInTheDocument();
159
- });
160
- });