snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
This commit is contained in:
117
e2e-tests/cypress/tests/support/api/setup.ts
Normal file
117
e2e-tests/cypress/tests/support/api/setup.ts
Normal file
@@ -0,0 +1,117 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import type {ChainableT} from '../../types';
|
||||
|
||||
interface SetupResult {
|
||||
user: Cypress.UserProfile;
|
||||
team: Cypress.Team;
|
||||
channel: Cypress.Channel;
|
||||
channelUrl: string;
|
||||
offTopicUrl: string;
|
||||
townSquareUrl: string;
|
||||
}
|
||||
interface SetupParam {
|
||||
loginAfter?: boolean;
|
||||
promoteNewUserAsAdmin?: boolean;
|
||||
hideAdminTrialModal?: boolean;
|
||||
userPrefix?: string;
|
||||
userCreateAt?: number;
|
||||
teamPrefix?: {name: string; displayName: string};
|
||||
channelPrefix?: {name: string; displayName: string};
|
||||
skipBoardsWelcomePage?: boolean;
|
||||
}
|
||||
function apiInitSetup(arg: SetupParam = {}): ChainableT<SetupResult> {
|
||||
const {
|
||||
loginAfter = false,
|
||||
promoteNewUserAsAdmin = false,
|
||||
hideAdminTrialModal = true,
|
||||
userPrefix,
|
||||
userCreateAt,
|
||||
teamPrefix = {name: 'team', displayName: 'Team'},
|
||||
channelPrefix = {name: 'channel', displayName: 'Channel'},
|
||||
skipBoardsWelcomePage = true,
|
||||
} = arg;
|
||||
|
||||
// Cast needed: custom Cypress command chaining not fully typed
|
||||
return (cy.apiCreateTeam(teamPrefix.name, teamPrefix.displayName) as any).then(({team}: {team: Cypress.Team}) => {
|
||||
// # Add public channel
|
||||
return (cy.apiCreateChannel(team.id, channelPrefix.name, channelPrefix.displayName) as any).then(({channel}: {channel: Cypress.Channel}) => { // Cast needed: custom Cypress command chaining not fully typed
|
||||
return (cy.apiCreateUser({prefix: userPrefix || (promoteNewUserAsAdmin ? 'admin' : 'user'), createAt: userCreateAt}) as any).then(({user}: {user: Cypress.UserProfile}) => { // Cast needed: custom Cypress command chaining not fully typed
|
||||
if (promoteNewUserAsAdmin) {
|
||||
(cy as any).apiPatchUserRoles(user.id, ['system_admin', 'system_user']); // Cast needed: custom Cypress command chaining not fully typed
|
||||
|
||||
// Only hide start trial modal for admin since it's not applicable to other users
|
||||
cy.apiSaveStartTrialModal(user.id, hideAdminTrialModal.toString());
|
||||
}
|
||||
|
||||
if (skipBoardsWelcomePage) {
|
||||
cy.apiBoardsWelcomePageViewed(user.id);
|
||||
}
|
||||
|
||||
return cy.apiAddUserToTeam(team.id, user.id).then(() => {
|
||||
return cy.apiAddUserToChannel(channel.id, user.id).then(() => {
|
||||
const getUrl = (channelName: string) => `/${team.name}/channels/${channelName}`;
|
||||
|
||||
const data = {
|
||||
channel,
|
||||
team,
|
||||
user,
|
||||
channelUrl: getUrl(channel.name),
|
||||
offTopicUrl: getUrl('off-topic'),
|
||||
townSquareUrl: getUrl('town-square'),
|
||||
};
|
||||
|
||||
if (loginAfter) {
|
||||
return cy.apiLogin(user).then(() => {
|
||||
return cy.wrap(data);
|
||||
});
|
||||
}
|
||||
|
||||
return cy.wrap(data);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Cypress.Commands.add('apiInitSetup', apiInitSetup);
|
||||
|
||||
declare global {
|
||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
||||
namespace Cypress {
|
||||
interface Chainable {
|
||||
|
||||
/**
|
||||
* Creates a new user and make it a member of the new public team and its channels - one public channel, town-square and off-topic.
|
||||
* Created user has an option to log in after all are setup.
|
||||
* Requires sysadmin session to initiate this command.
|
||||
* @param {boolean} options.loginAfter - false (default) or true if wants to login as the new user after setting up. Note that when true, succeeding API request will be limited to access/permission of a regular system user.
|
||||
* @param {boolean} options.promoteNewUserAsAdmin - false (default) or true if wants to promote the newly created user as sysadmin.
|
||||
* @param {boolean} options.hideAdminTrialModal - true (default) or false if wants to hide Start Enterprise Trial modal.
|
||||
* @param {string} options.userPrefix - 'user' (default) or any prefix to easily identify a user
|
||||
* @param {string} options.teamPrefix - {name: 'team', displayName: 'Team'} (default) or any prefix to easily identify a team
|
||||
* @param {string} options.channelPrefix - {name: 'team', displayName: 'Team'} (default) or any prefix to easily identify a channel
|
||||
* @returns {Object} `out` Cypress-chainable, yielded with element passed into .wrap().
|
||||
* @returns {Cypress.UserProfile} `out.user` as `UserProfile` object
|
||||
* @returns {Cypress.Team} `out.team` as `Team` object
|
||||
* @returns {Cypress.Channel} `out.channel` as `Channel` object
|
||||
* @returns {string} `out.channelUrl` as channel URL
|
||||
* @returns {string} `out.offTopicUrl` as off-topic URL
|
||||
* @returns {string} `out.townSquareUrl` as town-square URL
|
||||
*
|
||||
* @example
|
||||
* let testUser;
|
||||
* let testTeam;
|
||||
* let testChannel;
|
||||
* cy.apiInitSetup(options).then(({team, channel, user}) => {
|
||||
* testUser = user;
|
||||
* testTeam = team;
|
||||
* testChannel = channel;
|
||||
* });
|
||||
*/
|
||||
apiInitSetup: typeof apiInitSetup;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user