@mattermost/playwright-lib 10.6.0-0

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 (203) hide show
  1. package/README.md +214 -0
  2. package/dist/asset/mattermost-icon_128x128.png +0 -0
  3. package/dist/browser_context.d.ts +17 -0
  4. package/dist/browser_context.js +71 -0
  5. package/dist/browser_context.js.map +1 -0
  6. package/dist/constant.d.ts +3 -0
  7. package/dist/constant.js +8 -0
  8. package/dist/constant.js.map +1 -0
  9. package/dist/file.d.ts +42 -0
  10. package/dist/file.js +74 -0
  11. package/dist/file.js.map +1 -0
  12. package/dist/flag.d.ts +7 -0
  13. package/dist/flag.js +76 -0
  14. package/dist/flag.js.map +1 -0
  15. package/dist/global_setup.d.ts +3 -0
  16. package/dist/global_setup.js +173 -0
  17. package/dist/global_setup.js.map +1 -0
  18. package/dist/index.d.ts +9 -0
  19. package/dist/index.js +47 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mock_browser_api.d.ts +31 -0
  22. package/dist/mock_browser_api.js +71 -0
  23. package/dist/mock_browser_api.js.map +1 -0
  24. package/dist/server/channel.d.ts +12 -0
  25. package/dist/server/channel.js +25 -0
  26. package/dist/server/channel.js.map +1 -0
  27. package/dist/server/client.d.ts +16 -0
  28. package/dist/server/client.js +39 -0
  29. package/dist/server/client.js.map +1 -0
  30. package/dist/server/default_config.d.ts +2 -0
  31. package/dist/server/default_config.js +755 -0
  32. package/dist/server/default_config.js.map +1 -0
  33. package/dist/server/index.d.ts +7 -0
  34. package/dist/server/init.d.ts +23 -0
  35. package/dist/server/init.js +73 -0
  36. package/dist/server/init.js.map +1 -0
  37. package/dist/server/post.d.ts +2 -0
  38. package/dist/server/post.js +31 -0
  39. package/dist/server/post.js.map +1 -0
  40. package/dist/server/team.d.ts +2 -0
  41. package/dist/server/team.js +18 -0
  42. package/dist/server/team.js.map +1 -0
  43. package/dist/server/user.d.ts +3 -0
  44. package/dist/server/user.js +33 -0
  45. package/dist/server/user.js.map +1 -0
  46. package/dist/test_action.d.ts +4 -0
  47. package/dist/test_action.js +24 -0
  48. package/dist/test_action.js.map +1 -0
  49. package/dist/test_config.d.ts +20 -0
  50. package/dist/test_config.js +82 -0
  51. package/dist/test_config.js.map +1 -0
  52. package/dist/test_fixture.d.ts +72 -0
  53. package/dist/test_fixture.js +172 -0
  54. package/dist/test_fixture.js.map +1 -0
  55. package/dist/types.d.ts +91 -0
  56. package/dist/ui/components/channels/app_bar.d.ts +7 -0
  57. package/dist/ui/components/channels/app_bar.js +20 -0
  58. package/dist/ui/components/channels/app_bar.js.map +1 -0
  59. package/dist/ui/components/channels/center_view.d.ts +52 -0
  60. package/dist/ui/components/channels/center_view.js +124 -0
  61. package/dist/ui/components/channels/center_view.js.map +1 -0
  62. package/dist/ui/components/channels/delete_post_confirmation_dialog.d.ts +11 -0
  63. package/dist/ui/components/channels/delete_post_confirmation_dialog.js +35 -0
  64. package/dist/ui/components/channels/delete_post_confirmation_dialog.js.map +1 -0
  65. package/dist/ui/components/channels/delete_post_modal.d.ts +8 -0
  66. package/dist/ui/components/channels/delete_post_modal.js +26 -0
  67. package/dist/ui/components/channels/delete_post_modal.js.map +1 -0
  68. package/dist/ui/components/channels/emoji_gif_picker.d.ts +16 -0
  69. package/dist/ui/components/channels/emoji_gif_picker.js +50 -0
  70. package/dist/ui/components/channels/emoji_gif_picker.js.map +1 -0
  71. package/dist/ui/components/channels/find_channels_modal.d.ts +8 -0
  72. package/dist/ui/components/channels/find_channels_modal.js +22 -0
  73. package/dist/ui/components/channels/find_channels_modal.js.map +1 -0
  74. package/dist/ui/components/channels/generic_confirm_modal.d.ts +16 -0
  75. package/dist/ui/components/channels/generic_confirm_modal.js +40 -0
  76. package/dist/ui/components/channels/generic_confirm_modal.js.map +1 -0
  77. package/dist/ui/components/channels/header.d.ts +6 -0
  78. package/dist/ui/components/channels/header.js +18 -0
  79. package/dist/ui/components/channels/header.js.map +1 -0
  80. package/dist/ui/components/channels/message_priority.d.ts +18 -0
  81. package/dist/ui/components/channels/message_priority.js +66 -0
  82. package/dist/ui/components/channels/message_priority.js.map +1 -0
  83. package/dist/ui/components/channels/post.d.ts +29 -0
  84. package/dist/ui/components/channels/post.js +63 -0
  85. package/dist/ui/components/channels/post.js.map +1 -0
  86. package/dist/ui/components/channels/post_create.d.ts +41 -0
  87. package/dist/ui/components/channels/post_create.js +118 -0
  88. package/dist/ui/components/channels/post_create.js.map +1 -0
  89. package/dist/ui/components/channels/post_dot_menu.d.ts +20 -0
  90. package/dist/ui/components/channels/post_dot_menu.js +47 -0
  91. package/dist/ui/components/channels/post_dot_menu.js.map +1 -0
  92. package/dist/ui/components/channels/post_edit.d.ts +21 -0
  93. package/dist/ui/components/channels/post_edit.js +76 -0
  94. package/dist/ui/components/channels/post_edit.js.map +1 -0
  95. package/dist/ui/components/channels/post_menu.d.ts +26 -0
  96. package/dist/ui/components/channels/post_menu.js +54 -0
  97. package/dist/ui/components/channels/post_menu.js.map +1 -0
  98. package/dist/ui/components/channels/post_reminder_menu.d.ts +11 -0
  99. package/dist/ui/components/channels/post_reminder_menu.js +29 -0
  100. package/dist/ui/components/channels/post_reminder_menu.js.map +1 -0
  101. package/dist/ui/components/channels/restore_post_confirmation_dialog.d.ts +10 -0
  102. package/dist/ui/components/channels/restore_post_confirmation_dialog.js +30 -0
  103. package/dist/ui/components/channels/restore_post_confirmation_dialog.js.map +1 -0
  104. package/dist/ui/components/channels/scheduled_draft_menu.d.ts +8 -0
  105. package/dist/ui/components/channels/scheduled_draft_menu.js +23 -0
  106. package/dist/ui/components/channels/scheduled_draft_menu.js.map +1 -0
  107. package/dist/ui/components/channels/scheduled_draft_modal.d.ts +20 -0
  108. package/dist/ui/components/channels/scheduled_draft_modal.js +84 -0
  109. package/dist/ui/components/channels/scheduled_draft_modal.js.map +1 -0
  110. package/dist/ui/components/channels/search_popover.d.ts +15 -0
  111. package/dist/ui/components/channels/search_popover.js +43 -0
  112. package/dist/ui/components/channels/search_popover.js.map +1 -0
  113. package/dist/ui/components/channels/settings/notification_settings.d.ts +13 -0
  114. package/dist/ui/components/channels/settings/notification_settings.js +41 -0
  115. package/dist/ui/components/channels/settings/notification_settings.js.map +1 -0
  116. package/dist/ui/components/channels/settings/settings_modal.d.ts +11 -0
  117. package/dist/ui/components/channels/settings/settings_modal.js +32 -0
  118. package/dist/ui/components/channels/settings/settings_modal.js.map +1 -0
  119. package/dist/ui/components/channels/sidebar_left.d.ts +24 -0
  120. package/dist/ui/components/channels/sidebar_left.js +54 -0
  121. package/dist/ui/components/channels/sidebar_left.js.map +1 -0
  122. package/dist/ui/components/channels/sidebar_right.d.ts +38 -0
  123. package/dist/ui/components/channels/sidebar_right.js +87 -0
  124. package/dist/ui/components/channels/sidebar_right.js.map +1 -0
  125. package/dist/ui/components/channels/thread_footer.d.ts +11 -0
  126. package/dist/ui/components/channels/thread_footer.js +27 -0
  127. package/dist/ui/components/channels/thread_footer.js.map +1 -0
  128. package/dist/ui/components/channels/user_profile_popover.d.ts +7 -0
  129. package/dist/ui/components/channels/user_profile_popover.js +21 -0
  130. package/dist/ui/components/channels/user_profile_popover.js.map +1 -0
  131. package/dist/ui/components/footer.d.ts +11 -0
  132. package/dist/ui/components/footer.js +28 -0
  133. package/dist/ui/components/footer.js.map +1 -0
  134. package/dist/ui/components/global_header.d.ts +15 -0
  135. package/dist/ui/components/global_header.js +46 -0
  136. package/dist/ui/components/global_header.js.map +1 -0
  137. package/dist/ui/components/index.d.ts +73 -0
  138. package/dist/ui/components/index.js +77 -0
  139. package/dist/ui/components/index.js.map +1 -0
  140. package/dist/ui/components/main_header.d.ts +8 -0
  141. package/dist/ui/components/main_header.js +22 -0
  142. package/dist/ui/components/main_header.js.map +1 -0
  143. package/dist/ui/components/system_console/navbar.d.ts +6 -0
  144. package/dist/ui/components/system_console/navbar.js +18 -0
  145. package/dist/ui/components/system_console/navbar.js.map +1 -0
  146. package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.d.ts +22 -0
  147. package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.js +47 -0
  148. package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.js.map +1 -0
  149. package/dist/ui/components/system_console/sections/system_users/feature_discovery.d.ts +10 -0
  150. package/dist/ui/components/system_console/sections/system_users/feature_discovery.js +24 -0
  151. package/dist/ui/components/system_console/sections/system_users/feature_discovery.js.map +1 -0
  152. package/dist/ui/components/system_console/sections/system_users/filter_menu.d.ts +21 -0
  153. package/dist/ui/components/system_console/sections/system_users/filter_menu.js +42 -0
  154. package/dist/ui/components/system_console/sections/system_users/filter_menu.js.map +1 -0
  155. package/dist/ui/components/system_console/sections/system_users/filter_popover.d.ts +30 -0
  156. package/dist/ui/components/system_console/sections/system_users/filter_popover.js +61 -0
  157. package/dist/ui/components/system_console/sections/system_users/filter_popover.js.map +1 -0
  158. package/dist/ui/components/system_console/sections/system_users/mobile_security.d.ts +23 -0
  159. package/dist/ui/components/system_console/sections/system_users/mobile_security.js +56 -0
  160. package/dist/ui/components/system_console/sections/system_users/mobile_security.js.map +1 -0
  161. package/dist/ui/components/system_console/sections/system_users/system_users.d.ts +58 -0
  162. package/dist/ui/components/system_console/sections/system_users/system_users.js +114 -0
  163. package/dist/ui/components/system_console/sections/system_users/system_users.js.map +1 -0
  164. package/dist/ui/components/system_console/sidebar.d.ts +17 -0
  165. package/dist/ui/components/system_console/sidebar.js +37 -0
  166. package/dist/ui/components/system_console/sidebar.js.map +1 -0
  167. package/dist/ui/pages/channels.d.ts +31 -0
  168. package/dist/ui/pages/channels.js +79 -0
  169. package/dist/ui/pages/channels.js.map +1 -0
  170. package/dist/ui/pages/drafts.d.ts +30 -0
  171. package/dist/ui/pages/drafts.js +114 -0
  172. package/dist/ui/pages/drafts.js.map +1 -0
  173. package/dist/ui/pages/index.d.ts +19 -0
  174. package/dist/ui/pages/index.js +34 -0
  175. package/dist/ui/pages/index.js.map +1 -0
  176. package/dist/ui/pages/landing_login.d.ts +11 -0
  177. package/dist/ui/pages/landing_login.js +36 -0
  178. package/dist/ui/pages/landing_login.js.map +1 -0
  179. package/dist/ui/pages/login.d.ts +25 -0
  180. package/dist/ui/pages/login.js +62 -0
  181. package/dist/ui/pages/login.js.map +1 -0
  182. package/dist/ui/pages/reset_password.d.ts +15 -0
  183. package/dist/ui/pages/reset_password.js +44 -0
  184. package/dist/ui/pages/reset_password.js.map +1 -0
  185. package/dist/ui/pages/scheduled_draft.d.ts +38 -0
  186. package/dist/ui/pages/scheduled_draft.js +144 -0
  187. package/dist/ui/pages/scheduled_draft.js.map +1 -0
  188. package/dist/ui/pages/signup.d.ts +31 -0
  189. package/dist/ui/pages/signup.js +78 -0
  190. package/dist/ui/pages/signup.js.map +1 -0
  191. package/dist/ui/pages/system_console.d.ts +26 -0
  192. package/dist/ui/pages/system_console.js +64 -0
  193. package/dist/ui/pages/system_console.js.map +1 -0
  194. package/dist/util.d.ts +29 -0
  195. package/dist/util.js +51 -0
  196. package/dist/util.js.map +1 -0
  197. package/dist/visual/index.d.ts +3 -0
  198. package/dist/visual/index.js +37 -0
  199. package/dist/visual/index.js.map +1 -0
  200. package/dist/visual/percy.d.ts +2 -0
  201. package/dist/visual/percy.js +23 -0
  202. package/dist/visual/percy.js.map +1 -0
  203. package/package.json +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default_config.js","sources":["../../src/server/default_config.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport merge from 'deepmerge';\nimport {\n AdminConfig,\n ClusterSettings,\n CollapsedThreads,\n EmailSettings,\n ExperimentalSettings,\n LogSettings,\n PasswordSettings,\n PluginSettings,\n ServiceSettings,\n TeamSettings,\n} from '@mattermost/types/config';\n\nimport {testConfig} from '@/test_config';\n\nexport function getOnPremServerConfig(): AdminConfig {\n return merge<AdminConfig>(defaultServerConfig, onPremServerConfig() as AdminConfig);\n}\n\ntype TestAdminConfig = {\n ClusterSettings: Partial<ClusterSettings>;\n EmailSettings: Partial<EmailSettings>;\n ExperimentalSettings: Partial<ExperimentalSettings>;\n LogSettings: Partial<LogSettings>;\n PasswordSettings: Partial<PasswordSettings>;\n PluginSettings: Partial<PluginSettings>;\n ServiceSettings: Partial<ServiceSettings>;\n TeamSettings: Partial<TeamSettings>;\n};\n\n// On-prem setting that is different from the default\nconst onPremServerConfig = (): Partial<TestAdminConfig> => {\n return {\n ClusterSettings: {\n Enable: testConfig.haClusterEnabled,\n ClusterName: testConfig.haClusterName,\n },\n EmailSettings: {\n PushNotificationServer: testConfig.pushNotificationServer,\n },\n LogSettings: {\n EnableDiagnostics: false,\n },\n PasswordSettings: {\n MinimumLength: 5,\n Lowercase: false,\n Number: false,\n Uppercase: false,\n Symbol: false,\n EnableForgotLink: true,\n },\n PluginSettings: {\n EnableUploads: true,\n PluginStates: {\n 'com.mattermost.calls': {\n Enable: false,\n },\n 'com.mattermost.nps': {\n Enable: false,\n },\n playbooks: {\n Enable: true,\n },\n },\n },\n ServiceSettings: {\n SiteURL: testConfig.baseURL,\n EnableOnboardingFlow: false,\n EnableSecurityFixAlert: false,\n GiphySdkKey: 's0glxvzVg9azvPipKxcPLpXV0q1x1fVP',\n EnableTesting: true,\n },\n TeamSettings: {\n EnableOpenServer: true,\n MaxUsersPerTeam: 2000,\n },\n };\n};\n\n// Should be based only from the generated default config from ./server via \"make config-reset\"\n// Based on v10.5 server\nconst defaultServerConfig: AdminConfig = {\n ServiceSettings: {\n SiteURL: '',\n WebsocketURL: '',\n LicenseFileLocation: '',\n ListenAddress: ':8065',\n ConnectionSecurity: '',\n TLSCertFile: '',\n TLSKeyFile: '',\n TLSMinVer: '1.2',\n TLSStrictTransport: false,\n TLSStrictTransportMaxAge: 63072000,\n TLSOverwriteCiphers: [],\n UseLetsEncrypt: false,\n LetsEncryptCertificateCacheFile: './config/letsencrypt.cache',\n Forward80To443: false,\n TrustedProxyIPHeader: [],\n ReadTimeout: 300,\n WriteTimeout: 300,\n IdleTimeout: 60,\n MaximumLoginAttempts: 10,\n GoroutineHealthThreshold: -1,\n EnableOAuthServiceProvider: true,\n EnableIncomingWebhooks: true,\n EnableOutgoingWebhooks: true,\n EnableOutgoingOAuthConnections: false,\n EnableCommands: true,\n OutgoingIntegrationRequestsTimeout: 30,\n EnablePostUsernameOverride: false,\n EnablePostIconOverride: false,\n GoogleDeveloperKey: '',\n EnableLinkPreviews: true,\n EnablePermalinkPreviews: true,\n RestrictLinkPreviews: '',\n EnableTesting: false,\n EnableDeveloper: false,\n DeveloperFlags: '',\n EnableClientPerformanceDebugging: false,\n EnableSecurityFixAlert: true,\n EnableInsecureOutgoingConnections: false,\n AllowedUntrustedInternalConnections: '',\n EnableMultifactorAuthentication: false,\n EnforceMultifactorAuthentication: false,\n EnableUserAccessTokens: false,\n AllowCorsFrom: '',\n CorsExposedHeaders: '',\n CorsAllowCredentials: false,\n CorsDebug: false,\n AllowCookiesForSubdomains: false,\n ExtendSessionLengthWithActivity: true,\n TerminateSessionsOnPasswordChange: true,\n SessionLengthWebInDays: 30,\n SessionLengthWebInHours: 720,\n SessionLengthMobileInDays: 30,\n SessionLengthMobileInHours: 720,\n SessionLengthSSOInDays: 30,\n SessionLengthSSOInHours: 720,\n SessionCacheInMinutes: 10,\n SessionIdleTimeoutInMinutes: 43200,\n WebsocketSecurePort: 443,\n WebsocketPort: 80,\n WebserverMode: 'gzip',\n EnableGifPicker: true,\n GiphySdkKey: '',\n EnableCustomEmoji: true,\n EnableEmojiPicker: true,\n PostEditTimeLimit: -1,\n TimeBetweenUserTypingUpdatesMilliseconds: 5000,\n EnableCrossTeamSearch: true,\n EnablePostSearch: true,\n EnableFileSearch: true,\n MinimumHashtagLength: 3,\n EnableUserTypingMessages: true,\n EnableChannelViewedMessages: true,\n EnableUserStatuses: true,\n ExperimentalEnableAuthenticationTransfer: true,\n ClusterLogTimeoutMilliseconds: 2000,\n EnableTutorial: true,\n EnableOnboardingFlow: true,\n ExperimentalEnableDefaultChannelLeaveJoinMessages: true,\n ExperimentalGroupUnreadChannels: 'disabled',\n EnableAPITeamDeletion: false,\n EnableAPITriggerAdminNotifications: false,\n EnableAPIUserDeletion: false,\n EnableAPIPostDeletion: false,\n EnableDesktopLandingPage: true,\n ExperimentalEnableHardenedMode: false,\n ExperimentalStrictCSRFEnforcement: false,\n EnableEmailInvitations: false,\n DisableBotsWhenOwnerIsDeactivated: true,\n EnableBotAccountCreation: false,\n EnableSVGs: false,\n EnableLatex: false,\n EnableInlineLatex: true,\n PostPriority: true,\n AllowPersistentNotifications: true,\n AllowPersistentNotificationsForGuests: false,\n PersistentNotificationIntervalMinutes: 5,\n PersistentNotificationMaxCount: 6,\n PersistentNotificationMaxRecipients: 5,\n EnableAPIChannelDeletion: false,\n EnableLocalMode: false,\n LocalModeSocketLocation: '/var/tmp/mattermost_local.socket',\n EnableAWSMetering: false,\n SplitKey: '',\n FeatureFlagSyncIntervalSeconds: 30,\n DebugSplit: false,\n ThreadAutoFollow: true,\n CollapsedThreads: CollapsedThreads.ALWAYS_ON,\n ManagedResourcePaths: '',\n EnableCustomGroups: true,\n AllowSyncedDrafts: true,\n UniqueEmojiReactionLimitPerPost: 50,\n RefreshPostStatsRunTime: '00:00',\n MaximumPayloadSizeBytes: 300000,\n MaximumURLLength: 2048,\n ScheduledPosts: true,\n },\n TeamSettings: {\n SiteName: 'Mattermost',\n MaxUsersPerTeam: 50,\n EnableJoinLeaveMessageByDefault: true,\n EnableUserCreation: true,\n EnableOpenServer: false,\n EnableUserDeactivation: false,\n RestrictCreationToDomains: '',\n EnableCustomUserStatuses: true,\n EnableCustomBrand: false,\n CustomBrandText: '',\n CustomDescriptionText: '',\n RestrictDirectMessage: 'any',\n EnableLastActiveTime: true,\n UserStatusAwayTimeout: 300,\n MaxChannelsPerTeam: 2000,\n MaxNotificationsPerChannel: 1000,\n EnableConfirmNotificationsToChannel: true,\n TeammateNameDisplay: 'username',\n ExperimentalViewArchivedChannels: true,\n ExperimentalEnableAutomaticReplies: false,\n LockTeammateNameDisplay: false,\n ExperimentalPrimaryTeam: '',\n ExperimentalDefaultChannels: [],\n },\n ClientRequirements: {\n AndroidLatestVersion: '',\n AndroidMinVersion: '',\n IosLatestVersion: '',\n IosMinVersion: '',\n },\n SqlSettings: {\n DriverName: 'postgres',\n DataSource:\n 'postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\\u0026connect_timeout=10\\u0026binary_parameters=yes',\n DataSourceReplicas: [],\n DataSourceSearchReplicas: [],\n MaxIdleConns: 20,\n ConnMaxLifetimeMilliseconds: 3600000,\n ConnMaxIdleTimeMilliseconds: 300000,\n MaxOpenConns: 300,\n Trace: false,\n AtRestEncryptKey: '',\n QueryTimeout: 30,\n DisableDatabaseSearch: false,\n MigrationsStatementTimeoutSeconds: 100000,\n ReplicaLagSettings: [],\n ReplicaMonitorIntervalSeconds: 5,\n },\n LogSettings: {\n EnableConsole: true,\n ConsoleLevel: 'DEBUG',\n ConsoleJson: true,\n EnableColor: false,\n EnableFile: true,\n FileLevel: 'INFO',\n FileJson: true,\n FileLocation: '',\n EnableWebhookDebugging: true,\n EnableDiagnostics: true,\n VerboseDiagnostics: false,\n EnableSentry: true,\n AdvancedLoggingJSON: {},\n MaxFieldSize: 2048,\n },\n ExperimentalAuditSettings: {\n FileEnabled: false,\n FileName: '',\n FileMaxSizeMB: 100,\n FileMaxAgeDays: 0,\n FileMaxBackups: 0,\n FileCompress: false,\n FileMaxQueueSize: 1000,\n AdvancedLoggingJSON: {},\n },\n NotificationLogSettings: {\n EnableConsole: true,\n ConsoleLevel: 'DEBUG',\n ConsoleJson: true,\n EnableColor: false,\n EnableFile: true,\n FileLevel: 'INFO',\n FileJson: true,\n FileLocation: '',\n AdvancedLoggingJSON: {},\n },\n PasswordSettings: {\n MinimumLength: 8,\n Lowercase: false,\n Number: false,\n Uppercase: false,\n Symbol: false,\n EnableForgotLink: true,\n },\n FileSettings: {\n EnableFileAttachments: true,\n EnableMobileUpload: true,\n EnableMobileDownload: true,\n MaxFileSize: 104857600,\n MaxImageResolution: 33177600,\n MaxImageDecoderConcurrency: -1,\n DriverName: 'local',\n Directory: './data/',\n EnablePublicLink: false,\n ExtractContent: true,\n ArchiveRecursion: false,\n PublicLinkSalt: '',\n InitialFont: 'nunito-bold.ttf',\n AmazonS3AccessKeyId: '',\n AmazonS3SecretAccessKey: '',\n AmazonS3Bucket: '',\n AmazonS3PathPrefix: '',\n AmazonS3Region: '',\n AmazonS3Endpoint: 's3.amazonaws.com',\n AmazonS3SSL: true,\n AmazonS3SignV2: false,\n AmazonS3SSE: false,\n AmazonS3Trace: false,\n AmazonS3RequestTimeoutMilliseconds: 30000,\n AmazonS3UploadPartSizeBytes: 5242880,\n AmazonS3StorageClass: '',\n DedicatedExportStore: false,\n ExportDriverName: 'local',\n ExportDirectory: './data/',\n ExportAmazonS3AccessKeyId: '',\n ExportAmazonS3SecretAccessKey: '',\n ExportAmazonS3Bucket: '',\n ExportAmazonS3PathPrefix: '',\n ExportAmazonS3Region: '',\n ExportAmazonS3Endpoint: 's3.amazonaws.com',\n ExportAmazonS3SSL: true,\n ExportAmazonS3SignV2: false,\n ExportAmazonS3SSE: false,\n ExportAmazonS3Trace: false,\n ExportAmazonS3RequestTimeoutMilliseconds: 30000,\n ExportAmazonS3PresignExpiresSeconds: 21600,\n ExportAmazonS3UploadPartSizeBytes: 104857600,\n ExportAmazonS3StorageClass: '',\n },\n EmailSettings: {\n EnableSignUpWithEmail: true,\n EnableSignInWithEmail: true,\n EnableSignInWithUsername: true,\n SendEmailNotifications: true,\n UseChannelInEmailNotifications: false,\n RequireEmailVerification: false,\n FeedbackName: '',\n FeedbackEmail: 'test@example.com',\n ReplyToAddress: 'test@example.com',\n FeedbackOrganization: '',\n EnableSMTPAuth: false,\n SMTPUsername: '',\n SMTPPassword: '',\n SMTPServer: 'localhost',\n SMTPPort: '10025',\n SMTPServerTimeout: 10,\n ConnectionSecurity: '',\n SendPushNotifications: true,\n PushNotificationServer: 'https://push-test.mattermost.com',\n PushNotificationServerType: 'custom',\n PushNotificationServerLocation: 'us',\n PushNotificationContents: 'full',\n PushNotificationBuffer: 1000,\n EnableEmailBatching: false,\n EmailBatchingBufferSize: 256,\n EmailBatchingInterval: 30,\n EnablePreviewModeBanner: true,\n SkipServerCertificateVerification: false,\n EmailNotificationContentsType: 'full',\n LoginButtonColor: '#0000',\n LoginButtonBorderColor: '#2389D7',\n LoginButtonTextColor: '#2389D7',\n },\n RateLimitSettings: {\n Enable: false,\n PerSec: 10,\n MaxBurst: 100,\n MemoryStoreSize: 10000,\n VaryByRemoteAddr: true,\n VaryByUser: false,\n VaryByHeader: '',\n },\n PrivacySettings: {\n ShowEmailAddress: true,\n ShowFullName: true,\n },\n SupportSettings: {\n TermsOfServiceLink: 'https://mattermost.com/pl/terms-of-use/',\n PrivacyPolicyLink: 'https://mattermost.com/pl/privacy-policy/',\n AboutLink: 'https://mattermost.com/pl/about-mattermost',\n HelpLink: 'https://mattermost.com/pl/help/',\n ReportAProblemLink: 'https://mattermost.com/pl/report-a-bug',\n ForgotPasswordLink: '',\n SupportEmail: '',\n CustomTermsOfServiceEnabled: false,\n CustomTermsOfServiceReAcceptancePeriod: 365,\n EnableAskCommunityLink: true,\n },\n AnnouncementSettings: {\n EnableBanner: false,\n BannerText: '',\n BannerColor: '#f2a93b',\n BannerTextColor: '#333333',\n AllowBannerDismissal: true,\n AdminNoticesEnabled: true,\n UserNoticesEnabled: true,\n NoticesURL: 'https://notices.mattermost.com/',\n NoticesFetchFrequency: 3600,\n NoticesSkipCache: false,\n },\n ThemeSettings: {\n EnableThemeSelection: true,\n DefaultTheme: 'default',\n AllowCustomThemes: true,\n AllowedThemes: [],\n },\n GitLabSettings: {\n Enable: false,\n Secret: '',\n Id: '',\n Scope: '',\n AuthEndpoint: '',\n TokenEndpoint: '',\n UserAPIEndpoint: '',\n DiscoveryEndpoint: '',\n ButtonText: '',\n ButtonColor: '',\n },\n GoogleSettings: {\n Enable: false,\n Secret: '',\n Id: '',\n Scope: 'profile email',\n AuthEndpoint: 'https://accounts.google.com/o/oauth2/v2/auth',\n TokenEndpoint: 'https://www.googleapis.com/oauth2/v4/token',\n UserAPIEndpoint:\n 'https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata',\n DiscoveryEndpoint: '',\n ButtonText: '',\n ButtonColor: '',\n },\n Office365Settings: {\n Enable: false,\n Secret: '',\n Id: '',\n Scope: 'User.Read',\n AuthEndpoint: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',\n TokenEndpoint: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',\n UserAPIEndpoint: 'https://graph.microsoft.com/v1.0/me',\n DiscoveryEndpoint: '',\n DirectoryId: '',\n },\n OpenIdSettings: {\n Enable: false,\n Secret: '',\n Id: '',\n Scope: 'profile openid email',\n AuthEndpoint: '',\n TokenEndpoint: '',\n UserAPIEndpoint: '',\n DiscoveryEndpoint: '',\n ButtonText: '',\n ButtonColor: '#145DBF',\n },\n LdapSettings: {\n Enable: false,\n EnableSync: false,\n LdapServer: '',\n LdapPort: 389,\n MaximumLoginAttempts: 10,\n ConnectionSecurity: '',\n BaseDN: '',\n BindUsername: '',\n BindPassword: '',\n UserFilter: '',\n GroupFilter: '',\n GuestFilter: '',\n EnableAdminFilter: false,\n AdminFilter: '',\n GroupDisplayNameAttribute: '',\n GroupIdAttribute: '',\n FirstNameAttribute: '',\n LastNameAttribute: '',\n EmailAttribute: '',\n UsernameAttribute: '',\n NicknameAttribute: '',\n IdAttribute: '',\n PositionAttribute: '',\n LoginIdAttribute: '',\n PictureAttribute: '',\n SyncIntervalMinutes: 60,\n SkipCertificateVerification: false,\n PublicCertificateFile: '',\n PrivateKeyFile: '',\n QueryTimeout: 60,\n MaxPageSize: 0,\n LoginFieldName: '',\n LoginButtonColor: '#0000',\n LoginButtonBorderColor: '#2389D7',\n LoginButtonTextColor: '#2389D7',\n },\n ComplianceSettings: {\n Enable: false,\n Directory: './data/',\n EnableDaily: false,\n BatchSize: 30000,\n },\n LocalizationSettings: {\n DefaultServerLocale: 'en',\n DefaultClientLocale: 'en',\n AvailableLocales: '',\n EnableExperimentalLocales: false,\n },\n SamlSettings: {\n Enable: false,\n EnableSyncWithLdap: false,\n EnableSyncWithLdapIncludeAuth: false,\n IgnoreGuestsLdapSync: false,\n Verify: true,\n Encrypt: true,\n SignRequest: false,\n IdpURL: '',\n IdpDescriptorURL: '',\n IdpMetadataURL: '',\n ServiceProviderIdentifier: '',\n AssertionConsumerServiceURL: '',\n SignatureAlgorithm: 'RSAwithSHA1',\n CanonicalAlgorithm: 'Canonical1.0',\n ScopingIDPProviderId: '',\n ScopingIDPName: '',\n IdpCertificateFile: '',\n PublicCertificateFile: '',\n PrivateKeyFile: '',\n IdAttribute: '',\n GuestAttribute: '',\n EnableAdminAttribute: false,\n AdminAttribute: '',\n FirstNameAttribute: '',\n LastNameAttribute: '',\n EmailAttribute: '',\n UsernameAttribute: '',\n NicknameAttribute: '',\n LocaleAttribute: '',\n PositionAttribute: '',\n LoginButtonText: 'SAML',\n LoginButtonColor: '#34a28b',\n LoginButtonBorderColor: '#2389D7',\n LoginButtonTextColor: '#ffffff',\n },\n NativeAppSettings: {\n AppCustomURLSchemes: ['mmauth://', 'mmauthbeta://'],\n AppDownloadLink: 'https://mattermost.com/pl/download-apps',\n AndroidAppDownloadLink: 'https://mattermost.com/pl/android-app/',\n IosAppDownloadLink: 'https://mattermost.com/pl/ios-app/',\n MobileExternalBrowser: false,\n },\n CacheSettings: {\n CacheType: 'lru',\n RedisAddress: '',\n RedisPassword: '',\n RedisDB: -1,\n DisableClientCache: false,\n },\n ClusterSettings: {\n Enable: false,\n ClusterName: '',\n OverrideHostname: '',\n NetworkInterface: '',\n BindAddress: '',\n AdvertiseAddress: '',\n UseIPAddress: true,\n EnableGossipCompression: true,\n EnableExperimentalGossipEncryption: false,\n ReadOnlyConfig: true,\n GossipPort: 8074,\n },\n MetricsSettings: {\n Enable: false,\n BlockProfileRate: 0,\n ListenAddress: ':8067',\n EnableClientMetrics: true,\n EnableNotificationMetrics: true,\n },\n ExperimentalSettings: {\n ClientSideCertEnable: false,\n ClientSideCertCheck: 'secondary',\n LinkMetadataTimeoutMilliseconds: 5000,\n RestrictSystemAdmin: false,\n EnableSharedChannels: false,\n EnableRemoteClusterService: false,\n DisableAppBar: false,\n DisableRefetchingOnBrowserFocus: false,\n DelayChannelAutocomplete: false,\n DisableWakeUpReconnectHandler: false,\n UsersStatusAndProfileFetchingPollIntervalMilliseconds: 3000,\n YoutubeReferrerPolicy: false,\n },\n AnalyticsSettings: {\n MaxUsersForStatistics: 2500,\n },\n ElasticsearchSettings: {\n ConnectionURL: 'http://localhost:9200',\n Backend: 'elasticsearch',\n Username: 'elastic',\n Password: 'changeme',\n EnableIndexing: false,\n EnableSearching: false,\n EnableAutocomplete: false,\n Sniff: true,\n PostIndexReplicas: 1,\n PostIndexShards: 1,\n ChannelIndexReplicas: 1,\n ChannelIndexShards: 1,\n UserIndexReplicas: 1,\n UserIndexShards: 1,\n AggregatePostsAfterDays: 365,\n PostsAggregatorJobStartTime: '03:00',\n IndexPrefix: '',\n LiveIndexingBatchSize: 10,\n BatchSize: 10000,\n RequestTimeoutSeconds: 30,\n SkipTLSVerification: false,\n CA: '',\n ClientCert: '',\n ClientKey: '',\n Trace: '',\n IgnoredPurgeIndexes: '',\n },\n BleveSettings: {\n IndexDir: '',\n EnableIndexing: false,\n EnableSearching: false,\n EnableAutocomplete: false,\n BatchSize: 10000,\n },\n DataRetentionSettings: {\n EnableMessageDeletion: false,\n EnableFileDeletion: false,\n EnableBoardsDeletion: false,\n MessageRetentionDays: 365,\n MessageRetentionHours: 0,\n FileRetentionDays: 365,\n FileRetentionHours: 0,\n BoardsRetentionDays: 365,\n DeletionJobStartTime: '02:00',\n BatchSize: 3000,\n TimeBetweenBatchesMilliseconds: 100,\n RetentionIdsBatchSize: 100,\n },\n MessageExportSettings: {\n EnableExport: false,\n ExportFormat: 'actiance',\n DailyRunTime: '01:00',\n ExportFromTimestamp: 0,\n BatchSize: 10000,\n DownloadExportResults: false,\n ChannelBatchSize: 100,\n ChannelHistoryBatchSize: 10,\n GlobalRelaySettings: {\n CustomerType: 'A9',\n SMTPUsername: '',\n SMTPPassword: '',\n EmailAddress: '',\n SMTPServerTimeout: 1800,\n CustomSMTPServerName: '',\n CustomSMTPPort: '25',\n },\n },\n JobSettings: {\n RunJobs: true,\n RunScheduler: true,\n CleanupJobsThresholdDays: -1,\n CleanupConfigThresholdDays: -1,\n },\n PluginSettings: {\n Enable: true,\n EnableUploads: false,\n AllowInsecureDownloadURL: false,\n EnableHealthCheck: true,\n Directory: './plugins',\n ClientDirectory: './client/plugins',\n Plugins: {},\n PluginStates: {\n 'com.mattermost.calls': {\n Enable: true,\n },\n 'com.mattermost.nps': {\n Enable: true,\n },\n 'mattermost-ai': {\n Enable: true,\n },\n playbooks: {\n Enable: true,\n },\n },\n EnableMarketplace: true,\n EnableRemoteMarketplace: true,\n AutomaticPrepackagedPlugins: true,\n RequirePluginSignature: false,\n MarketplaceURL: 'https://api.integrations.mattermost.com',\n SignaturePublicKeyFiles: [],\n ChimeraOAuthProxyURL: '',\n },\n DisplaySettings: {\n CustomURLSchemes: [],\n MaxMarkdownNodes: 0,\n },\n GuestAccountsSettings: {\n Enable: false,\n HideTags: false,\n AllowEmailAccounts: true,\n EnforceMultifactorAuthentication: false,\n RestrictCreationToDomains: '',\n },\n ImageProxySettings: {\n Enable: false,\n ImageProxyType: 'local',\n RemoteImageProxyURL: '',\n RemoteImageProxyOptions: '',\n },\n CloudSettings: {\n CWSURL: 'https://customers.mattermost.com',\n CWSAPIURL: 'https://portal.internal.prod.cloud.mattermost.com',\n CWSMock: false,\n Disable: false,\n },\n FeatureFlags: {\n TestFeature: 'off',\n TestBoolFeature: false,\n EnableRemoteClusterService: false,\n EnableSharedChannelsDMs: false,\n AppsEnabled: false,\n PermalinkPreviews: false,\n NormalizeLdapDNs: false,\n WysiwygEditor: false,\n OnboardingTourTips: true,\n DeprecateCloudFree: false,\n EnableExportDirectDownload: false,\n MoveThreadsEnabled: false,\n StreamlinedMarketplace: true,\n CloudIPFiltering: false,\n ConsumePostHook: false,\n CloudAnnualRenewals: false,\n CloudDedicatedExportUI: false,\n ChannelBookmarks: true,\n WebSocketEventScope: true,\n NotificationMonitoring: true,\n ExperimentalAuditSettingsSystemConsoleUI: false,\n CustomProfileAttributes: false,\n },\n ImportSettings: {\n Directory: './import',\n RetentionDays: 30,\n },\n ExportSettings: {\n Directory: './export',\n RetentionDays: 30,\n },\n WranglerSettings: {\n PermittedWranglerRoles: [],\n AllowedEmailDomain: [],\n MoveThreadMaxCount: 100,\n MoveThreadToAnotherTeamEnable: false,\n MoveThreadFromPrivateChannelEnable: false,\n MoveThreadFromDirectMessageChannelEnable: false,\n MoveThreadFromGroupMessageChannelEnable: false,\n },\n ConnectedWorkspacesSettings: {\n EnableSharedChannels: false,\n EnableRemoteClusterService: false,\n DisableSharedChannelsStatusSync: false,\n MaxPostsPerSync: 50,\n },\n};\n"],"names":["testConfig","CollapsedThreads"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { makeClient } from './client';
2
+ export { createRandomChannel } from './channel';
3
+ export { getOnPremServerConfig } from './default_config';
4
+ export { initSetup, getAdminClient } from './init';
5
+ export { createRandomPost } from './post';
6
+ export { createRandomTeam } from './team';
7
+ export { createRandomUser, getDefaultAdminUser } from './user';
@@ -0,0 +1,23 @@
1
+ export declare function initSetup({ userPrefix, teamPrefix, withDefaultProfileImage, }?: {
2
+ userPrefix?: string | undefined;
3
+ teamPrefix?: {
4
+ name: string;
5
+ displayName: string;
6
+ } | undefined;
7
+ withDefaultProfileImage?: boolean | undefined;
8
+ }): Promise<{
9
+ adminClient: import("@mattermost/client").Client4;
10
+ adminUser: import("@mattermost/types/users").UserProfile;
11
+ adminConfig: import("@mattermost/types/config").AdminConfig;
12
+ user: import("@mattermost/types/users").UserProfile;
13
+ userClient: import("@mattermost/client").Client4;
14
+ team: import("@mattermost/types/teams").Team;
15
+ offTopicUrl: string;
16
+ townSquareUrl: string;
17
+ }>;
18
+ export declare function getAdminClient(opts?: {
19
+ skipLog: boolean;
20
+ }): Promise<{
21
+ adminClient: import("@mattermost/client").Client4;
22
+ adminUser: import("@mattermost/types/users").UserProfile | null;
23
+ }>;
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var test = require('@playwright/test');
4
+ var client = require('./client.js');
5
+ var default_config = require('./default_config.js');
6
+ var team = require('./team.js');
7
+ var user = require('./user.js');
8
+ var file = require('../file.js');
9
+ var test_config = require('../test_config.js');
10
+
11
+ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
12
+ // See LICENSE.txt for license information.
13
+ async function initSetup({ userPrefix = 'user', teamPrefix = { name: 'team', displayName: 'Team' }, withDefaultProfileImage = true, } = {}) {
14
+ try {
15
+ // Login the admin user via API
16
+ const { adminClient, adminUser } = await getAdminClient();
17
+ if (!adminUser) {
18
+ throw new Error('Failed to setup admin: Admin user not found.');
19
+ }
20
+ if (!adminClient) {
21
+ throw new Error("Failed to setup admin: Check that you're able to access the server using the same admin credential.");
22
+ }
23
+ // Reset server config
24
+ const adminConfig = await adminClient.updateConfig(default_config.getOnPremServerConfig());
25
+ // Create new team
26
+ const team$1 = await adminClient.createTeam(team.createRandomTeam(teamPrefix.name, teamPrefix.displayName));
27
+ // Create new user and add to newly created team
28
+ const randomUser = user.createRandomUser(userPrefix);
29
+ const user$1 = await adminClient.createUser(randomUser, '', '');
30
+ user$1.password = randomUser.password;
31
+ await adminClient.addToTeam(team$1.id, user$1.id);
32
+ // Log in new user via API
33
+ const { client: userClient } = await client.makeClient(user$1);
34
+ if (withDefaultProfileImage) {
35
+ const file$1 = file.getFileFromCommonAsset('mattermost-icon_128x128.png');
36
+ await userClient.uploadProfileImage(user$1.id, file$1);
37
+ }
38
+ // Update user preference
39
+ const preferences = [
40
+ { user_id: user$1.id, category: 'tutorial_step', name: user$1.id, value: '999' },
41
+ { user_id: user$1.id, category: 'crt_thread_pane_step', name: user$1.id, value: '999' },
42
+ ];
43
+ await userClient.savePreferences(user$1.id, preferences);
44
+ return {
45
+ adminClient,
46
+ adminUser,
47
+ adminConfig,
48
+ user: user$1,
49
+ userClient,
50
+ team: team$1,
51
+ offTopicUrl: getUrl(team$1.name, 'off-topic'),
52
+ townSquareUrl: getUrl(team$1.name, 'town-square'),
53
+ };
54
+ }
55
+ catch (error) {
56
+ test.expect(error, 'Should not throw an error').toBeFalsy();
57
+ throw error;
58
+ }
59
+ }
60
+ async function getAdminClient(opts = { skipLog: false }) {
61
+ const { client: adminClient, user: adminUser } = await client.makeClient({
62
+ username: test_config.testConfig.adminUsername,
63
+ password: test_config.testConfig.adminPassword,
64
+ }, opts);
65
+ return { adminClient, adminUser };
66
+ }
67
+ function getUrl(teamName, channelName) {
68
+ return `/${teamName}/channels/${channelName}`;
69
+ }
70
+
71
+ exports.getAdminClient = getAdminClient;
72
+ exports.initSetup = initSetup;
73
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sources":["../../src/server/init.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {expect} from '@playwright/test';\nimport {PreferenceType} from '@mattermost/types/preferences';\n\nimport {makeClient} from './client';\nimport {getOnPremServerConfig} from './default_config';\nimport {createRandomTeam} from './team';\nimport {createRandomUser} from './user';\n\nimport {getFileFromCommonAsset} from '@/file';\nimport {testConfig} from '@/test_config';\n\nexport async function initSetup({\n userPrefix = 'user',\n teamPrefix = {name: 'team', displayName: 'Team'},\n withDefaultProfileImage = true,\n} = {}) {\n try {\n // Login the admin user via API\n const {adminClient, adminUser} = await getAdminClient();\n if (!adminUser) {\n throw new Error('Failed to setup admin: Admin user not found.');\n }\n if (!adminClient) {\n throw new Error(\n \"Failed to setup admin: Check that you're able to access the server using the same admin credential.\",\n );\n }\n\n // Reset server config\n const adminConfig = await adminClient.updateConfig(getOnPremServerConfig() as any);\n\n // Create new team\n const team = await adminClient.createTeam(createRandomTeam(teamPrefix.name, teamPrefix.displayName));\n\n // Create new user and add to newly created team\n const randomUser = createRandomUser(userPrefix);\n const user = await adminClient.createUser(randomUser, '', '');\n user.password = randomUser.password;\n await adminClient.addToTeam(team.id, user.id);\n\n // Log in new user via API\n const {client: userClient} = await makeClient(user);\n\n if (withDefaultProfileImage) {\n const file = getFileFromCommonAsset('mattermost-icon_128x128.png');\n await userClient.uploadProfileImage(user.id, file);\n }\n\n // Update user preference\n const preferences: PreferenceType[] = [\n {user_id: user.id, category: 'tutorial_step', name: user.id, value: '999'},\n {user_id: user.id, category: 'crt_thread_pane_step', name: user.id, value: '999'},\n ];\n await userClient.savePreferences(user.id, preferences);\n\n return {\n adminClient,\n adminUser,\n adminConfig,\n user,\n userClient,\n team,\n offTopicUrl: getUrl(team.name, 'off-topic'),\n townSquareUrl: getUrl(team.name, 'town-square'),\n };\n } catch (error) {\n expect(error, 'Should not throw an error').toBeFalsy();\n throw error;\n }\n}\n\nexport async function getAdminClient(opts: {skipLog: boolean} = {skipLog: false}) {\n const {client: adminClient, user: adminUser} = await makeClient(\n {\n username: testConfig.adminUsername,\n password: testConfig.adminPassword,\n },\n opts,\n );\n\n return {adminClient, adminUser};\n}\n\nfunction getUrl(teamName: string, channelName: string) {\n return `/${teamName}/channels/${channelName}`;\n}\n"],"names":["getOnPremServerConfig","team","createRandomTeam","createRandomUser","user","makeClient","file","getFileFromCommonAsset","expect","testConfig"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Post } from '@mattermost/types/posts';
2
+ export declare function createRandomPost(post?: Partial<Post>): Post;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var util = require('../util.js');
4
+
5
+ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
6
+ // See LICENSE.txt for license information.
7
+ function createRandomPost(post) {
8
+ if (post && post.channel_id && post.user_id) {
9
+ const time = Date.now();
10
+ const defaultPost = {
11
+ create_at: time,
12
+ user_id: post.user_id,
13
+ channel_id: post.channel_id,
14
+ root_id: post.root_id || '',
15
+ message: `${post?.message ?? ''}${util.getRandomId()}`,
16
+ pending_post_id: `${post.user_id}:${time}`,
17
+ props: post?.props || {},
18
+ file_ids: post?.file_ids || [],
19
+ metadata: {},
20
+ };
21
+ Reflect.deleteProperty(post, 'user_id');
22
+ Reflect.deleteProperty(post, 'channel_id');
23
+ Reflect.deleteProperty(post, 'message');
24
+ Reflect.deleteProperty(post, 'pending_post_id');
25
+ return { ...defaultPost, ...post };
26
+ }
27
+ throw new Error('Post is missing channel_id or user_id or both');
28
+ }
29
+
30
+ exports.createRandomPost = createRandomPost;
31
+ //# sourceMappingURL=post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.js","sources":["../../src/server/post.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Post, PostMetadata} from '@mattermost/types/posts';\n\nimport {getRandomId} from '@/util';\n\nexport function createRandomPost(post?: Partial<Post>): Post {\n if (post && post.channel_id && post.user_id) {\n const time = Date.now();\n\n const defaultPost = {\n create_at: time,\n user_id: post.user_id,\n channel_id: post.channel_id,\n root_id: post.root_id || '',\n message: `${post?.message ?? ''}${getRandomId()}`,\n pending_post_id: `${post.user_id}:${time}`,\n props: post?.props || {},\n file_ids: post?.file_ids || [],\n metadata: {} as PostMetadata,\n };\n\n Reflect.deleteProperty(post, 'user_id');\n Reflect.deleteProperty(post, 'channel_id');\n Reflect.deleteProperty(post, 'message');\n Reflect.deleteProperty(post, 'pending_post_id');\n\n return {...defaultPost, ...post} as Post;\n }\n\n throw new Error('Post is missing channel_id or user_id or both');\n}\n"],"names":["getRandomId"],"mappings":";;;;AAAA;AACA;AAMM,SAAU,gBAAgB,CAAC,IAAoB,EAAA;IACjD,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AAEvB,QAAA,MAAM,WAAW,GAAG;AAChB,YAAA,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,OAAO,EAAE,CAAG,EAAA,IAAI,EAAE,OAAO,IAAI,EAAE,CAAA,EAAGA,gBAAW,EAAE,CAAE,CAAA;AACjD,YAAA,eAAe,EAAE,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA;AAC1C,YAAA,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;AACxB,YAAA,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;AAC9B,YAAA,QAAQ,EAAE,EAAkB;SAC/B;AAED,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;AACvC,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC;AAC1C,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;AACvC,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAE/C,QAAA,OAAO,EAAC,GAAG,WAAW,EAAE,GAAG,IAAI,EAAS;;AAG5C,IAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AACpE;;;;"}
@@ -0,0 +1,2 @@
1
+ import { Team, TeamType } from '@mattermost/types/teams';
2
+ export declare function createRandomTeam(name?: string, displayName?: string, type?: TeamType, unique?: boolean): Team;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var util = require('../util.js');
4
+
5
+ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
6
+ // See LICENSE.txt for license information.
7
+ function createRandomTeam(name = 'team', displayName = 'Team', type = 'O', unique = true) {
8
+ const randomSuffix = util.getRandomId();
9
+ const team = {
10
+ name: unique ? `${name}-${randomSuffix}` : name,
11
+ display_name: unique ? `${displayName} ${randomSuffix}` : displayName,
12
+ type,
13
+ };
14
+ return team;
15
+ }
16
+
17
+ exports.createRandomTeam = createRandomTeam;
18
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sources":["../../src/server/team.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Team, TeamType} from '@mattermost/types/teams';\n\nimport {getRandomId} from '@/util';\n\nexport function createRandomTeam(name = 'team', displayName = 'Team', type: TeamType = 'O', unique = true): Team {\n const randomSuffix = getRandomId();\n\n const team = {\n name: unique ? `${name}-${randomSuffix}` : name,\n display_name: unique ? `${displayName} ${randomSuffix}` : displayName,\n type,\n };\n\n return team as Team;\n}\n"],"names":["getRandomId"],"mappings":";;;;AAAA;AACA;SAMgB,gBAAgB,CAAC,IAAI,GAAG,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,IAAiB,GAAA,GAAG,EAAE,MAAM,GAAG,IAAI,EAAA;AACrG,IAAA,MAAM,YAAY,GAAGA,gBAAW,EAAE;AAElC,IAAA,MAAM,IAAI,GAAG;AACT,QAAA,IAAI,EAAE,MAAM,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,GAAG,IAAI;AAC/C,QAAA,YAAY,EAAE,MAAM,GAAG,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,GAAG,WAAW;QACrE,IAAI;KACP;AAED,IAAA,OAAO,IAAY;AACvB;;;;"}
@@ -0,0 +1,3 @@
1
+ import { UserProfile } from '@mattermost/types/users';
2
+ export declare function createRandomUser(prefix?: string): UserProfile;
3
+ export declare function getDefaultAdminUser(): UserProfile;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var util = require('../util.js');
4
+ var test_config = require('../test_config.js');
5
+
6
+ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
7
+ // See LICENSE.txt for license information.
8
+ function createRandomUser(prefix = 'user') {
9
+ const randomId = util.getRandomId();
10
+ const user = {
11
+ email: `${prefix}${randomId}@sample.mattermost.com`,
12
+ username: `${prefix}${randomId}`,
13
+ password: 'passwd',
14
+ first_name: `First${randomId}`,
15
+ last_name: `Last${randomId}`,
16
+ nickname: `Nickname${randomId}`,
17
+ };
18
+ return user;
19
+ }
20
+ function getDefaultAdminUser() {
21
+ const admin = {
22
+ username: test_config.testConfig.adminUsername,
23
+ password: test_config.testConfig.adminPassword,
24
+ first_name: 'Kenneth',
25
+ last_name: 'Moreno',
26
+ email: test_config.testConfig.adminEmail,
27
+ };
28
+ return admin;
29
+ }
30
+
31
+ exports.createRandomUser = createRandomUser;
32
+ exports.getDefaultAdminUser = getDefaultAdminUser;
33
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sources":["../../src/server/user.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {UserProfile} from '@mattermost/types/users';\n\nimport {getRandomId} from '@/util';\nimport {testConfig} from '@/test_config';\n\nexport function createRandomUser(prefix = 'user') {\n const randomId = getRandomId();\n\n const user = {\n email: `${prefix}${randomId}@sample.mattermost.com`,\n username: `${prefix}${randomId}`,\n password: 'passwd',\n first_name: `First${randomId}`,\n last_name: `Last${randomId}`,\n nickname: `Nickname${randomId}`,\n };\n\n return user as UserProfile;\n}\n\nexport function getDefaultAdminUser() {\n const admin = {\n username: testConfig.adminUsername,\n password: testConfig.adminPassword,\n first_name: 'Kenneth',\n last_name: 'Moreno',\n email: testConfig.adminEmail,\n };\n\n return admin as UserProfile;\n}\n"],"names":["getRandomId","testConfig"],"mappings":";;;;;AAAA;AACA;AAOgB,SAAA,gBAAgB,CAAC,MAAM,GAAG,MAAM,EAAA;AAC5C,IAAA,MAAM,QAAQ,GAAGA,gBAAW,EAAE;AAE9B,IAAA,MAAM,IAAI,GAAG;AACT,QAAA,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,EAAG,QAAQ,CAAwB,sBAAA,CAAA;AACnD,QAAA,QAAQ,EAAE,CAAA,EAAG,MAAM,CAAA,EAAG,QAAQ,CAAE,CAAA;AAChC,QAAA,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,CAAQ,KAAA,EAAA,QAAQ,CAAE,CAAA;QAC9B,SAAS,EAAE,CAAO,IAAA,EAAA,QAAQ,CAAE,CAAA;QAC5B,QAAQ,EAAE,CAAW,QAAA,EAAA,QAAQ,CAAE,CAAA;KAClC;AAED,IAAA,OAAO,IAAmB;AAC9B;SAEgB,mBAAmB,GAAA;AAC/B,IAAA,MAAM,KAAK,GAAG;QACV,QAAQ,EAAEC,sBAAU,CAAC,aAAa;QAClC,QAAQ,EAAEA,sBAAU,CAAC,aAAa;AAClC,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAEA,sBAAU,CAAC,UAAU;KAC/B;AAED,IAAA,OAAO,KAAoB;AAC/B;;;;;"}
@@ -0,0 +1,4 @@
1
+ import { Locator, Page } from '@playwright/test';
2
+ export { waitUntil } from 'async-wait-until';
3
+ export declare function hideDynamicChannelsContent(page: Page): Promise<void>;
4
+ export declare function waitForAnimationEnd(locator: Locator): Promise<Animation[]>;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var asyncWaitUntil = require('async-wait-until');
4
+
5
+ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
6
+ // See LICENSE.txt for license information.
7
+ const visibilityHidden = 'visibility: hidden !important;';
8
+ const hideTeamHeader = `.test-team-header {${visibilityHidden}} `;
9
+ const hidePostHeaderTime = `.post__time {${visibilityHidden}} `;
10
+ const hidePostProfileIcon = `.profile-icon {${visibilityHidden}} `;
11
+ async function hideDynamicChannelsContent(page) {
12
+ await page.addStyleTag({ content: hideTeamHeader + hidePostHeaderTime + hidePostProfileIcon });
13
+ }
14
+ async function waitForAnimationEnd(locator) {
15
+ return locator.evaluate((element) => Promise.all(element.getAnimations({ subtree: true }).map((animation) => animation.finished)));
16
+ }
17
+
18
+ Object.defineProperty(exports, "waitUntil", {
19
+ enumerable: true,
20
+ get: function () { return asyncWaitUntil.waitUntil; }
21
+ });
22
+ exports.hideDynamicChannelsContent = hideDynamicChannelsContent;
23
+ exports.waitForAnimationEnd = waitForAnimationEnd;
24
+ //# sourceMappingURL=test_action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_action.js","sources":["../src/test_action.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {Locator, Page} from '@playwright/test';\nexport {waitUntil} from 'async-wait-until';\n\nconst visibilityHidden = 'visibility: hidden !important;';\nconst hideTeamHeader = `.test-team-header {${visibilityHidden}} `;\nconst hidePostHeaderTime = `.post__time {${visibilityHidden}} `;\nconst hidePostProfileIcon = `.profile-icon {${visibilityHidden}} `;\n\nexport async function hideDynamicChannelsContent(page: Page) {\n await page.addStyleTag({content: hideTeamHeader + hidePostHeaderTime + hidePostProfileIcon});\n}\n\nexport async function waitForAnimationEnd(locator: Locator) {\n return locator.evaluate((element) =>\n Promise.all(element.getAnimations({subtree: true}).map((animation) => animation.finished)),\n );\n}\n"],"names":[],"mappings":";;;;AAAA;AACA;AAKA,MAAM,gBAAgB,GAAG,gCAAgC;AACzD,MAAM,cAAc,GAAG,CAAsB,mBAAA,EAAA,gBAAgB,IAAI;AACjE,MAAM,kBAAkB,GAAG,CAAgB,aAAA,EAAA,gBAAgB,IAAI;AAC/D,MAAM,mBAAmB,GAAG,CAAkB,eAAA,EAAA,gBAAgB,IAAI;AAE3D,eAAe,0BAA0B,CAAC,IAAU,EAAA;AACvD,IAAA,MAAM,IAAI,CAAC,WAAW,CAAC,EAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,GAAG,mBAAmB,EAAC,CAAC;AAChG;AAEO,eAAe,mBAAmB,CAAC,OAAgB,EAAA;AACtD,IAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,KAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAC7F;AACL;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ export declare class TestConfig {
2
+ baseURL: string;
3
+ adminUsername: string;
4
+ adminPassword: string;
5
+ adminEmail: string;
6
+ ensurePluginsInstalled: string[];
7
+ haClusterEnabled: boolean;
8
+ haClusterNodeCount: number;
9
+ haClusterName: string;
10
+ pushNotificationServer: string;
11
+ resetBeforeTest: boolean;
12
+ isCI: boolean;
13
+ headless: boolean;
14
+ slowMo: number;
15
+ workers: number;
16
+ snapshotEnabled: boolean;
17
+ percyEnabled: boolean;
18
+ constructor();
19
+ }
20
+ export declare const testConfig: TestConfig;
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var dotenv = require('dotenv');
4
+
5
+ function _interopNamespaceDefault(e) {
6
+ var n = Object.create(null);
7
+ if (e) {
8
+ Object.keys(e).forEach(function (k) {
9
+ if (k !== 'default') {
10
+ var d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: function () { return e[k]; }
14
+ });
15
+ }
16
+ });
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+
22
+ var dotenv__namespace = /*#__PURE__*/_interopNamespaceDefault(dotenv);
23
+
24
+ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
25
+ // See LICENSE.txt for license information.
26
+ dotenv__namespace.config();
27
+ // All process.env should be defined here
28
+ class TestConfig {
29
+ baseURL;
30
+ adminUsername;
31
+ adminPassword;
32
+ adminEmail;
33
+ ensurePluginsInstalled;
34
+ haClusterEnabled;
35
+ haClusterNodeCount;
36
+ haClusterName;
37
+ pushNotificationServer;
38
+ resetBeforeTest;
39
+ isCI;
40
+ headless;
41
+ slowMo;
42
+ workers;
43
+ snapshotEnabled;
44
+ percyEnabled;
45
+ constructor() {
46
+ // Server
47
+ this.baseURL = process.env.PW_BASE_URL || 'http://localhost:8065';
48
+ this.adminUsername = process.env.PW_ADMIN_USERNAME || 'sysadmin';
49
+ this.adminPassword = process.env.PW_ADMIN_PASSWORD || 'Sys@dmin-sample1';
50
+ this.adminEmail = process.env.PW_ADMIN_EMAIL || 'sysadmin@sample.mattermost.com';
51
+ this.ensurePluginsInstalled =
52
+ typeof process.env?.PW_ENSURE_PLUGINS_INSTALLED === 'string'
53
+ ? process.env.PW_ENSURE_PLUGINS_INSTALLED.split(',').filter((plugin) => Boolean(plugin))
54
+ : [];
55
+ this.haClusterEnabled = parseBool(process.env.PW_HA_CLUSTER_ENABLED, false);
56
+ this.haClusterNodeCount = parseNumber(process.env.PW_HA_CLUSTER_NODE_COUNT, 2);
57
+ this.haClusterName = process.env.PW_HA_CLUSTER_NAME || 'mm_dev_cluster';
58
+ this.pushNotificationServer = process.env.PW_PUSH_NOTIFICATION_SERVER || 'https://push-test.mattermost.com';
59
+ this.resetBeforeTest = parseBool(process.env.PW_RESET_BEFORE_TEST, false);
60
+ // CI
61
+ this.isCI = !!process.env.CI;
62
+ // Playwright
63
+ this.headless = parseBool(process.env.PW_HEADLESS, true);
64
+ this.slowMo = parseNumber(process.env.PW_SLOWMO, 0);
65
+ this.workers = parseNumber(process.env.PW_WORKERS, 1);
66
+ // Visual tests
67
+ this.snapshotEnabled = parseBool(process.env.PW_SNAPSHOT_ENABLE, false);
68
+ this.percyEnabled = parseBool(process.env.PW_PERCY_ENABLE, false);
69
+ }
70
+ }
71
+ // Create a singleton instance
72
+ const testConfig = new TestConfig();
73
+ function parseBool(actualValue, defaultValue) {
74
+ return actualValue ? actualValue === 'true' : defaultValue;
75
+ }
76
+ function parseNumber(actualValue, defaultValue) {
77
+ return actualValue ? parseInt(actualValue, 10) : defaultValue;
78
+ }
79
+
80
+ exports.TestConfig = TestConfig;
81
+ exports.testConfig = testConfig;
82
+ //# sourceMappingURL=test_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_config.js","sources":["../src/test_config.ts"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport * as dotenv from 'dotenv';\n\ndotenv.config();\n\n// All process.env should be defined here\nexport class TestConfig {\n baseURL: string;\n adminUsername: string;\n adminPassword: string;\n adminEmail: string;\n ensurePluginsInstalled: string[];\n haClusterEnabled: boolean;\n haClusterNodeCount: number;\n haClusterName: string;\n pushNotificationServer: string;\n resetBeforeTest: boolean;\n isCI: boolean;\n headless: boolean;\n slowMo: number;\n workers: number;\n snapshotEnabled: boolean;\n percyEnabled: boolean;\n\n constructor() {\n // Server\n this.baseURL = process.env.PW_BASE_URL || 'http://localhost:8065';\n this.adminUsername = process.env.PW_ADMIN_USERNAME || 'sysadmin';\n this.adminPassword = process.env.PW_ADMIN_PASSWORD || 'Sys@dmin-sample1';\n this.adminEmail = process.env.PW_ADMIN_EMAIL || 'sysadmin@sample.mattermost.com';\n this.ensurePluginsInstalled =\n typeof process.env?.PW_ENSURE_PLUGINS_INSTALLED === 'string'\n ? process.env.PW_ENSURE_PLUGINS_INSTALLED.split(',').filter((plugin) => Boolean(plugin))\n : [];\n this.haClusterEnabled = parseBool(process.env.PW_HA_CLUSTER_ENABLED, false);\n this.haClusterNodeCount = parseNumber(process.env.PW_HA_CLUSTER_NODE_COUNT, 2);\n this.haClusterName = process.env.PW_HA_CLUSTER_NAME || 'mm_dev_cluster';\n this.pushNotificationServer = process.env.PW_PUSH_NOTIFICATION_SERVER || 'https://push-test.mattermost.com';\n this.resetBeforeTest = parseBool(process.env.PW_RESET_BEFORE_TEST, false);\n // CI\n this.isCI = !!process.env.CI;\n // Playwright\n this.headless = parseBool(process.env.PW_HEADLESS, true);\n this.slowMo = parseNumber(process.env.PW_SLOWMO, 0);\n this.workers = parseNumber(process.env.PW_WORKERS, 1);\n // Visual tests\n this.snapshotEnabled = parseBool(process.env.PW_SNAPSHOT_ENABLE, false);\n this.percyEnabled = parseBool(process.env.PW_PERCY_ENABLE, false);\n }\n}\n\n// Create a singleton instance\nexport const testConfig = new TestConfig();\n\nfunction parseBool(actualValue: string | undefined, defaultValue: boolean) {\n return actualValue ? actualValue === 'true' : defaultValue;\n}\n\nfunction parseNumber(actualValue: string | undefined, defaultValue: number) {\n return actualValue ? parseInt(actualValue, 10) : defaultValue;\n}\n"],"names":["dotenv"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAIAA,iBAAM,CAAC,MAAM,EAAE;AAEf;MACa,UAAU,CAAA;AACnB,IAAA,OAAO;AACP,IAAA,aAAa;AACb,IAAA,aAAa;AACb,IAAA,UAAU;AACV,IAAA,sBAAsB;AACtB,IAAA,gBAAgB;AAChB,IAAA,kBAAkB;AAClB,IAAA,aAAa;AACb,IAAA,sBAAsB;AACtB,IAAA,eAAe;AACf,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,OAAO;AACP,IAAA,eAAe;AACf,IAAA,YAAY;AAEZ,IAAA,WAAA,GAAA;;QAEI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,uBAAuB;QACjE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,UAAU;QAChE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,kBAAkB;QACxE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,gCAAgC;AAChF,QAAA,IAAI,CAAC,sBAAsB;AACvB,YAAA,OAAO,OAAO,CAAC,GAAG,EAAE,2BAA2B,KAAK;kBAC9C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;kBACrF,EAAE;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC;AAC3E,QAAA,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,gBAAgB;QACvE,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,kCAAkC;AAC3G,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;;QAEzE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;AAE5B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;AACxD,QAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;;AAErD,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACvE,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;;AAExE;AAED;AACa,MAAA,UAAU,GAAG,IAAI,UAAU;AAExC,SAAS,SAAS,CAAC,WAA+B,EAAE,YAAqB,EAAA;IACrE,OAAO,WAAW,GAAG,WAAW,KAAK,MAAM,GAAG,YAAY;AAC9D;AAEA,SAAS,WAAW,CAAC,WAA+B,EAAE,YAAoB,EAAA;AACtE,IAAA,OAAO,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,YAAY;AACjE;;;;;"}
@@ -0,0 +1,72 @@
1
+ import { Browser, Page } from '@playwright/test';
2
+ import { AxeResults } from 'axe-core';
3
+ import { AxeBuilder } from '@axe-core/playwright';
4
+ import { TestBrowser } from './browser_context';
5
+ import { ensureLicense, shouldHaveCallsEnabled, shouldHaveFeatureFlag, shouldRunInLinux, skipIfFeatureFlagNotSet, skipIfNoLicense } from './flag';
6
+ import { getBlobFromAsset, getFileFromAsset } from './file';
7
+ import { createRandomChannel, createRandomPost, createRandomTeam, createRandomUser, getAdminClient, initSetup } from './server';
8
+ import { hideDynamicChannelsContent, waitForAnimationEnd } from './test_action';
9
+ import { matchSnapshot } from './visual';
10
+ import { stubNotification, waitForNotification } from './mock_browser_api';
11
+ import { getRandomId } from './util';
12
+ export { expect } from '@playwright/test';
13
+ export type ExtendedFixtures = {
14
+ axe: AxeBuilderExtended;
15
+ pw: PlaywrightExtended;
16
+ };
17
+ type AxeBuilderOptions = {
18
+ disableColorContrast?: boolean;
19
+ disableLinkInTextBlock?: boolean;
20
+ };
21
+ export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & ExtendedFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
22
+ export declare class PlaywrightExtended {
23
+ readonly testBrowser: TestBrowser;
24
+ readonly shouldHaveCallsEnabled: typeof shouldHaveCallsEnabled;
25
+ readonly shouldHaveFeatureFlag: typeof shouldHaveFeatureFlag;
26
+ readonly shouldRunInLinux: typeof shouldRunInLinux;
27
+ readonly ensureLicense: typeof ensureLicense;
28
+ readonly skipIfNoLicense: typeof skipIfNoLicense;
29
+ readonly skipIfFeatureFlagNotSet: typeof skipIfFeatureFlagNotSet;
30
+ readonly getBlobFromAsset: typeof getBlobFromAsset;
31
+ readonly getFileFromAsset: typeof getFileFromAsset;
32
+ readonly getAdminClient: typeof getAdminClient;
33
+ readonly initSetup: typeof initSetup;
34
+ readonly hideDynamicChannelsContent: typeof hideDynamicChannelsContent;
35
+ readonly waitForAnimationEnd: typeof waitForAnimationEnd;
36
+ readonly waitUntil: <T extends import("async-wait-until").PredicateReturnValue>(predicate: import("async-wait-until").Predicate<T>, options?: number | import("async-wait-until").Options, intervalBetweenAttempts?: number) => Promise<T>;
37
+ readonly stubNotification: typeof stubNotification;
38
+ readonly waitForNotification: typeof waitForNotification;
39
+ readonly matchSnapshot: typeof matchSnapshot;
40
+ readonly duration: {
41
+ half_sec: number;
42
+ one_sec: number;
43
+ two_sec: number;
44
+ four_sec: number;
45
+ ten_sec: number;
46
+ half_min: number;
47
+ one_min: number;
48
+ two_min: number;
49
+ four_min: number;
50
+ };
51
+ readonly simpleEmailRe: RegExp;
52
+ readonly wait: (ms?: number) => Promise<unknown>;
53
+ readonly random: {
54
+ id: typeof getRandomId;
55
+ channel: typeof createRandomChannel;
56
+ post: typeof createRandomPost;
57
+ team: typeof createRandomTeam;
58
+ user: typeof createRandomUser;
59
+ };
60
+ readonly loginPage: import("./ui/pages").LoginPage;
61
+ readonly landingLoginPage: import("./ui/pages").LandingLoginPage;
62
+ readonly signupPage: import("./ui/pages").SignupPage;
63
+ readonly resetPasswordPage: import("./ui/pages").ResetPasswordPage;
64
+ readonly hasSeenLandingPage: () => Promise<void>;
65
+ constructor(browser: Browser, page: Page, isMobile: boolean);
66
+ }
67
+ export declare class AxeBuilderExtended {
68
+ readonly builder: (page: Page, options?: AxeBuilderOptions) => AxeBuilder;
69
+ readonly tags: string[];
70
+ constructor();
71
+ violationFingerprints(accessibilityScanResults: AxeResults): string;
72
+ }