@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.
- package/README.md +214 -0
- package/dist/asset/mattermost-icon_128x128.png +0 -0
- package/dist/browser_context.d.ts +17 -0
- package/dist/browser_context.js +71 -0
- package/dist/browser_context.js.map +1 -0
- package/dist/constant.d.ts +3 -0
- package/dist/constant.js +8 -0
- package/dist/constant.js.map +1 -0
- package/dist/file.d.ts +42 -0
- package/dist/file.js +74 -0
- package/dist/file.js.map +1 -0
- package/dist/flag.d.ts +7 -0
- package/dist/flag.js +76 -0
- package/dist/flag.js.map +1 -0
- package/dist/global_setup.d.ts +3 -0
- package/dist/global_setup.js +173 -0
- package/dist/global_setup.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/mock_browser_api.d.ts +31 -0
- package/dist/mock_browser_api.js +71 -0
- package/dist/mock_browser_api.js.map +1 -0
- package/dist/server/channel.d.ts +12 -0
- package/dist/server/channel.js +25 -0
- package/dist/server/channel.js.map +1 -0
- package/dist/server/client.d.ts +16 -0
- package/dist/server/client.js +39 -0
- package/dist/server/client.js.map +1 -0
- package/dist/server/default_config.d.ts +2 -0
- package/dist/server/default_config.js +755 -0
- package/dist/server/default_config.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/init.d.ts +23 -0
- package/dist/server/init.js +73 -0
- package/dist/server/init.js.map +1 -0
- package/dist/server/post.d.ts +2 -0
- package/dist/server/post.js +31 -0
- package/dist/server/post.js.map +1 -0
- package/dist/server/team.d.ts +2 -0
- package/dist/server/team.js +18 -0
- package/dist/server/team.js.map +1 -0
- package/dist/server/user.d.ts +3 -0
- package/dist/server/user.js +33 -0
- package/dist/server/user.js.map +1 -0
- package/dist/test_action.d.ts +4 -0
- package/dist/test_action.js +24 -0
- package/dist/test_action.js.map +1 -0
- package/dist/test_config.d.ts +20 -0
- package/dist/test_config.js +82 -0
- package/dist/test_config.js.map +1 -0
- package/dist/test_fixture.d.ts +72 -0
- package/dist/test_fixture.js +172 -0
- package/dist/test_fixture.js.map +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/ui/components/channels/app_bar.d.ts +7 -0
- package/dist/ui/components/channels/app_bar.js +20 -0
- package/dist/ui/components/channels/app_bar.js.map +1 -0
- package/dist/ui/components/channels/center_view.d.ts +52 -0
- package/dist/ui/components/channels/center_view.js +124 -0
- package/dist/ui/components/channels/center_view.js.map +1 -0
- package/dist/ui/components/channels/delete_post_confirmation_dialog.d.ts +11 -0
- package/dist/ui/components/channels/delete_post_confirmation_dialog.js +35 -0
- package/dist/ui/components/channels/delete_post_confirmation_dialog.js.map +1 -0
- package/dist/ui/components/channels/delete_post_modal.d.ts +8 -0
- package/dist/ui/components/channels/delete_post_modal.js +26 -0
- package/dist/ui/components/channels/delete_post_modal.js.map +1 -0
- package/dist/ui/components/channels/emoji_gif_picker.d.ts +16 -0
- package/dist/ui/components/channels/emoji_gif_picker.js +50 -0
- package/dist/ui/components/channels/emoji_gif_picker.js.map +1 -0
- package/dist/ui/components/channels/find_channels_modal.d.ts +8 -0
- package/dist/ui/components/channels/find_channels_modal.js +22 -0
- package/dist/ui/components/channels/find_channels_modal.js.map +1 -0
- package/dist/ui/components/channels/generic_confirm_modal.d.ts +16 -0
- package/dist/ui/components/channels/generic_confirm_modal.js +40 -0
- package/dist/ui/components/channels/generic_confirm_modal.js.map +1 -0
- package/dist/ui/components/channels/header.d.ts +6 -0
- package/dist/ui/components/channels/header.js +18 -0
- package/dist/ui/components/channels/header.js.map +1 -0
- package/dist/ui/components/channels/message_priority.d.ts +18 -0
- package/dist/ui/components/channels/message_priority.js +66 -0
- package/dist/ui/components/channels/message_priority.js.map +1 -0
- package/dist/ui/components/channels/post.d.ts +29 -0
- package/dist/ui/components/channels/post.js +63 -0
- package/dist/ui/components/channels/post.js.map +1 -0
- package/dist/ui/components/channels/post_create.d.ts +41 -0
- package/dist/ui/components/channels/post_create.js +118 -0
- package/dist/ui/components/channels/post_create.js.map +1 -0
- package/dist/ui/components/channels/post_dot_menu.d.ts +20 -0
- package/dist/ui/components/channels/post_dot_menu.js +47 -0
- package/dist/ui/components/channels/post_dot_menu.js.map +1 -0
- package/dist/ui/components/channels/post_edit.d.ts +21 -0
- package/dist/ui/components/channels/post_edit.js +76 -0
- package/dist/ui/components/channels/post_edit.js.map +1 -0
- package/dist/ui/components/channels/post_menu.d.ts +26 -0
- package/dist/ui/components/channels/post_menu.js +54 -0
- package/dist/ui/components/channels/post_menu.js.map +1 -0
- package/dist/ui/components/channels/post_reminder_menu.d.ts +11 -0
- package/dist/ui/components/channels/post_reminder_menu.js +29 -0
- package/dist/ui/components/channels/post_reminder_menu.js.map +1 -0
- package/dist/ui/components/channels/restore_post_confirmation_dialog.d.ts +10 -0
- package/dist/ui/components/channels/restore_post_confirmation_dialog.js +30 -0
- package/dist/ui/components/channels/restore_post_confirmation_dialog.js.map +1 -0
- package/dist/ui/components/channels/scheduled_draft_menu.d.ts +8 -0
- package/dist/ui/components/channels/scheduled_draft_menu.js +23 -0
- package/dist/ui/components/channels/scheduled_draft_menu.js.map +1 -0
- package/dist/ui/components/channels/scheduled_draft_modal.d.ts +20 -0
- package/dist/ui/components/channels/scheduled_draft_modal.js +84 -0
- package/dist/ui/components/channels/scheduled_draft_modal.js.map +1 -0
- package/dist/ui/components/channels/search_popover.d.ts +15 -0
- package/dist/ui/components/channels/search_popover.js +43 -0
- package/dist/ui/components/channels/search_popover.js.map +1 -0
- package/dist/ui/components/channels/settings/notification_settings.d.ts +13 -0
- package/dist/ui/components/channels/settings/notification_settings.js +41 -0
- package/dist/ui/components/channels/settings/notification_settings.js.map +1 -0
- package/dist/ui/components/channels/settings/settings_modal.d.ts +11 -0
- package/dist/ui/components/channels/settings/settings_modal.js +32 -0
- package/dist/ui/components/channels/settings/settings_modal.js.map +1 -0
- package/dist/ui/components/channels/sidebar_left.d.ts +24 -0
- package/dist/ui/components/channels/sidebar_left.js +54 -0
- package/dist/ui/components/channels/sidebar_left.js.map +1 -0
- package/dist/ui/components/channels/sidebar_right.d.ts +38 -0
- package/dist/ui/components/channels/sidebar_right.js +87 -0
- package/dist/ui/components/channels/sidebar_right.js.map +1 -0
- package/dist/ui/components/channels/thread_footer.d.ts +11 -0
- package/dist/ui/components/channels/thread_footer.js +27 -0
- package/dist/ui/components/channels/thread_footer.js.map +1 -0
- package/dist/ui/components/channels/user_profile_popover.d.ts +7 -0
- package/dist/ui/components/channels/user_profile_popover.js +21 -0
- package/dist/ui/components/channels/user_profile_popover.js.map +1 -0
- package/dist/ui/components/footer.d.ts +11 -0
- package/dist/ui/components/footer.js +28 -0
- package/dist/ui/components/footer.js.map +1 -0
- package/dist/ui/components/global_header.d.ts +15 -0
- package/dist/ui/components/global_header.js +46 -0
- package/dist/ui/components/global_header.js.map +1 -0
- package/dist/ui/components/index.d.ts +73 -0
- package/dist/ui/components/index.js +77 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/components/main_header.d.ts +8 -0
- package/dist/ui/components/main_header.js +22 -0
- package/dist/ui/components/main_header.js.map +1 -0
- package/dist/ui/components/system_console/navbar.d.ts +6 -0
- package/dist/ui/components/system_console/navbar.js +18 -0
- package/dist/ui/components/system_console/navbar.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.d.ts +22 -0
- package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.js +47 -0
- package/dist/ui/components/system_console/sections/system_users/column_toggle_menu.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/feature_discovery.d.ts +10 -0
- package/dist/ui/components/system_console/sections/system_users/feature_discovery.js +24 -0
- package/dist/ui/components/system_console/sections/system_users/feature_discovery.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/filter_menu.d.ts +21 -0
- package/dist/ui/components/system_console/sections/system_users/filter_menu.js +42 -0
- package/dist/ui/components/system_console/sections/system_users/filter_menu.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/filter_popover.d.ts +30 -0
- package/dist/ui/components/system_console/sections/system_users/filter_popover.js +61 -0
- package/dist/ui/components/system_console/sections/system_users/filter_popover.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/mobile_security.d.ts +23 -0
- package/dist/ui/components/system_console/sections/system_users/mobile_security.js +56 -0
- package/dist/ui/components/system_console/sections/system_users/mobile_security.js.map +1 -0
- package/dist/ui/components/system_console/sections/system_users/system_users.d.ts +58 -0
- package/dist/ui/components/system_console/sections/system_users/system_users.js +114 -0
- package/dist/ui/components/system_console/sections/system_users/system_users.js.map +1 -0
- package/dist/ui/components/system_console/sidebar.d.ts +17 -0
- package/dist/ui/components/system_console/sidebar.js +37 -0
- package/dist/ui/components/system_console/sidebar.js.map +1 -0
- package/dist/ui/pages/channels.d.ts +31 -0
- package/dist/ui/pages/channels.js +79 -0
- package/dist/ui/pages/channels.js.map +1 -0
- package/dist/ui/pages/drafts.d.ts +30 -0
- package/dist/ui/pages/drafts.js +114 -0
- package/dist/ui/pages/drafts.js.map +1 -0
- package/dist/ui/pages/index.d.ts +19 -0
- package/dist/ui/pages/index.js +34 -0
- package/dist/ui/pages/index.js.map +1 -0
- package/dist/ui/pages/landing_login.d.ts +11 -0
- package/dist/ui/pages/landing_login.js +36 -0
- package/dist/ui/pages/landing_login.js.map +1 -0
- package/dist/ui/pages/login.d.ts +25 -0
- package/dist/ui/pages/login.js +62 -0
- package/dist/ui/pages/login.js.map +1 -0
- package/dist/ui/pages/reset_password.d.ts +15 -0
- package/dist/ui/pages/reset_password.js +44 -0
- package/dist/ui/pages/reset_password.js.map +1 -0
- package/dist/ui/pages/scheduled_draft.d.ts +38 -0
- package/dist/ui/pages/scheduled_draft.js +144 -0
- package/dist/ui/pages/scheduled_draft.js.map +1 -0
- package/dist/ui/pages/signup.d.ts +31 -0
- package/dist/ui/pages/signup.js +78 -0
- package/dist/ui/pages/signup.js.map +1 -0
- package/dist/ui/pages/system_console.d.ts +26 -0
- package/dist/ui/pages/system_console.js +64 -0
- package/dist/ui/pages/system_console.js.map +1 -0
- package/dist/util.d.ts +29 -0
- package/dist/util.js +51 -0
- package/dist/util.js.map +1 -0
- package/dist/visual/index.d.ts +3 -0
- package/dist/visual/index.js +37 -0
- package/dist/visual/index.js.map +1 -0
- package/dist/visual/percy.d.ts +2 -0
- package/dist/visual/percy.js +23 -0
- package/dist/visual/percy.js.map +1 -0
- 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,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,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,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,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
|
+
}
|