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:
@@ -0,0 +1,37 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
// ***************************************************************
|
||||
// - [#] indicates a test step (e.g. # Go to a page)
|
||||
// - [*] indicates an assertion (e.g. * Check the title)
|
||||
// - Use element ID when selecting an element. Create one if none.
|
||||
// ***************************************************************
|
||||
|
||||
// Stage: @prod
|
||||
// Group: @channels @system_console @not_cloud
|
||||
|
||||
import * as TIMEOUTS from '@/fixtures/timeouts';
|
||||
|
||||
describe('System Console > Server Logs', () => {
|
||||
before(() => {
|
||||
cy.shouldNotRunOnCloudEdition();
|
||||
|
||||
// # Visit the system console.
|
||||
cy.visit('/admin_console');
|
||||
|
||||
// # Go to the Server Logs section.
|
||||
cy.get('#reporting\\/server_logs').click().wait(TIMEOUTS.TWO_SEC);
|
||||
});
|
||||
|
||||
it('MM-T908 Logs - Verify content categories', () => {
|
||||
// * Verify the banner is showed.
|
||||
cy.get('.banner__content span').should('not.empty');
|
||||
|
||||
// * Verify reload button is showed.
|
||||
cy.get('.admin-logs-content button span').should('be.visible').and('contain', 'Reload');
|
||||
|
||||
// * Verify that server logs are showed correctly.
|
||||
cy.get('.admin-logs-content div.LogTable').should('be.visible').and('not.empty');
|
||||
cy.get('.admin-logs-content div.LogTable span').eq(0).should('not.empty');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,79 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
// ***************************************************************
|
||||
// - [#] indicates a test step (e.g. # Go to a page)
|
||||
// - [*] indicates an assertion (e.g. * Check the title)
|
||||
// - Use element ID when selecting an element. Create one if none.
|
||||
// ***************************************************************
|
||||
|
||||
// Stage: @prod
|
||||
// Group: @channels @system_console @not_cloud
|
||||
|
||||
import * as TIMEOUTS from '@/fixtures/timeouts';
|
||||
|
||||
describe('System Console > Site Statistics', () => {
|
||||
let testUser;
|
||||
|
||||
before(() => {
|
||||
cy.shouldNotRunOnCloudEdition();
|
||||
|
||||
cy.apiInitSetup({loginAfter: true}).then(({user, offTopicUrl}) => {
|
||||
// # Login as test user and visit off-topic
|
||||
testUser = user;
|
||||
cy.visit(offTopicUrl);
|
||||
|
||||
// # Post a message as testUser to make them daily/monthly active
|
||||
cy.postMessage('New Daily Message');
|
||||
});
|
||||
});
|
||||
|
||||
it('MM-T903 - Site Statistics > Deactivating a user increments the Daily and Monthly Active Users counts down', () => {
|
||||
let totalActiveUsersInitial;
|
||||
let dailyActiveUsersInitial;
|
||||
let monthlyActiveUsersInitial;
|
||||
let totalActiveUsersFinal;
|
||||
let dailyActiveUsersFinal;
|
||||
let monthlyActiveUsersFinal;
|
||||
|
||||
// # Go to admin console
|
||||
cy.apiAdminLogin();
|
||||
cy.visit('/admin_console');
|
||||
|
||||
// # Go to system analytics
|
||||
cy.findByTestId('reporting.system_analytics', {timeout: TIMEOUTS.ONE_MIN}).click();
|
||||
cy.wait(TIMEOUTS.ONE_SEC);
|
||||
|
||||
// # Get the number text and turn them into numbers
|
||||
cy.findByTestId('totalActiveUsers').invoke('text').then((totalActiveText) => {
|
||||
totalActiveUsersInitial = parseInt(totalActiveText, 10);
|
||||
});
|
||||
cy.findByTestId('dailyActiveUsers').invoke('text').then((dailyActiveText) => {
|
||||
dailyActiveUsersInitial = parseInt(dailyActiveText, 10);
|
||||
});
|
||||
cy.findByTestId('monthlyActiveUsers').invoke('text').then((monthlyActiveText) => {
|
||||
monthlyActiveUsersInitial = parseInt(monthlyActiveText, 10);
|
||||
|
||||
// # Deactivate user and reload page and then wait 2 seconds
|
||||
cy.externalActivateUser(testUser.id, false);
|
||||
cy.reload();
|
||||
cy.wait(TIMEOUTS.TWO_SEC);
|
||||
});
|
||||
|
||||
// # Get the numbers required again
|
||||
cy.findByTestId('totalActiveUsers').invoke('text').then((totalActiveFinalText) => {
|
||||
totalActiveUsersFinal = parseInt(totalActiveFinalText, 10);
|
||||
});
|
||||
cy.findByTestId('dailyActiveUsers').invoke('text').then((dailyActiveFinalText) => {
|
||||
dailyActiveUsersFinal = parseInt(dailyActiveFinalText, 10);
|
||||
});
|
||||
cy.findByTestId('monthlyActiveUsers').invoke('text').then((monthlyActiveFinalText) => {
|
||||
monthlyActiveUsersFinal = parseInt(monthlyActiveFinalText, 10);
|
||||
|
||||
// * Assert that the final number is the initial number minus one
|
||||
expect(totalActiveUsersFinal).equal(totalActiveUsersInitial - 1);
|
||||
expect(dailyActiveUsersFinal).equal(dailyActiveUsersInitial - 1);
|
||||
expect(monthlyActiveUsersFinal).equal(monthlyActiveUsersInitial - 1);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,46 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
// ***************************************************************
|
||||
// - [#] indicates a test step (e.g. # Go to a page)
|
||||
// - [*] indicates an assertion (e.g. * Check the title)
|
||||
// - Use element ID when selecting an element. Create one if none.
|
||||
// ***************************************************************
|
||||
|
||||
// Stage: @prod
|
||||
// Group: @channels @te_only @system_console
|
||||
|
||||
import * as TIMEOUTS from '@/fixtures/timeouts';
|
||||
|
||||
describe('System Console > Site Statistics', () => {
|
||||
before(() => {
|
||||
cy.shouldRunOnTeamEdition();
|
||||
});
|
||||
|
||||
it('MM-T3804 Site Statistics displays expected content categories', () => {
|
||||
// # Visit site statistics page.
|
||||
cy.visit('/admin_console/reporting/system_analytics');
|
||||
|
||||
// * Check that the header has loaded correctly and contains the expected text.
|
||||
cy.get('.admin-console__header span', {timeout: TIMEOUTS.ONE_MIN}).should('be.visible').should('contain', 'System Statistics');
|
||||
|
||||
// * Check that the rows for the table were generated.
|
||||
cy.get('.admin-console__content .row').should('have.length', 4);
|
||||
|
||||
// * Check that the title content for the stats is as expected.
|
||||
cy.get('.admin-console__content .row').eq(0).find('.title').eq(0).should('contain', 'Total Active Users');
|
||||
cy.get('.admin-console__content .row').eq(0).find('.title').eq(1).should('contain', 'Total Teams');
|
||||
cy.get('.admin-console__content .row').eq(0).find('.title').eq(2).should('contain', 'Total Channels');
|
||||
cy.get('.admin-console__content .row').eq(0).find('.title').eq(3).should('contain', 'Total Posts');
|
||||
cy.get('.admin-console__content .row').eq(0).find('.title').eq(4).should('contain', 'Daily Active Users');
|
||||
cy.get('.admin-console__content .row').eq(0).find('.title').eq(5).should('contain', 'Monthly Active Users');
|
||||
|
||||
// * Check that the values for the stats are valid.
|
||||
cy.get('.admin-console__content .row').eq(0).find('.content').each((el) => {
|
||||
cy.waitUntil(() => cy.wrap(el).then((content) => {
|
||||
return content[0].innerText !== 'Loading...';
|
||||
}));
|
||||
cy.wrap(el).eq(0).invoke('text').then(parseFloat).should('be.gt', 0);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,83 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
// ***************************************************************
|
||||
// - [#] indicates a test step (e.g. # Go to a page)
|
||||
// - [*] indicates an assertion (e.g. * Check the title)
|
||||
// - Use element ID when selecting an element. Create one if none.
|
||||
// ***************************************************************
|
||||
|
||||
// Stage: @prod
|
||||
// Group: @channels @system_console
|
||||
|
||||
import * as TIMEOUTS from '@/fixtures/timeouts';
|
||||
|
||||
describe('System Console > Team Statistics', () => {
|
||||
before(() => {
|
||||
// # Create team.
|
||||
cy.apiCreateTeam('mmt906-team', 'mmt906-team').then(({team}) => {
|
||||
// # Create private channel.
|
||||
cy.apiCreateChannel(team.id, 'mmt906-ch', 'mmt906-ch', 'P');
|
||||
|
||||
cy.dbRefreshPostStats().then(() => {
|
||||
// # Visit team statistics page.
|
||||
cy.visit('/admin_console/reporting/team_statistics');
|
||||
|
||||
// # Select created team.
|
||||
cy.get('select.team-statistics__team-filter__dropdown').select(team.id);
|
||||
|
||||
// # Explicit wait to allow stats to get loaded
|
||||
cy.wait(TIMEOUTS.TWO_SEC);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('MM-T906 Team Statistics displays expected content categories', () => {
|
||||
// * Check that the header has loaded correctly and contains the expected text.
|
||||
cy.get('.team-statistics__header span').should('be.visible').should('contain', 'Team Statistics for');
|
||||
|
||||
// * Check that the rows for the table were generated.
|
||||
cy.get('.grid-statistics__card').should('have.length', 4);
|
||||
|
||||
// * Check that the title content for the stats is as expected.
|
||||
cy.get('.admin-console__content').eq(0).find('.title').eq(0).should('contain', 'Total Activated Users');
|
||||
cy.get('.admin-console__content').eq(0).find('.title').eq(1).should('contain', 'Public Channels');
|
||||
cy.get('.admin-console__content').eq(0).find('.title').eq(2).should('contain', 'Private Channels');
|
||||
cy.get('.admin-console__content').eq(0).find('.title').eq(3).should('contain', 'Total Posts');
|
||||
|
||||
cy.get('.total-count.by-day').eq(0).find('.title').should('contain', 'Total Posts');
|
||||
cy.get('.total-count.by-day').eq(1).find('.title').should('contain', 'Active Users With Posts');
|
||||
cy.get('.total-count.recent-active-users').eq(0).find('.title').should('contain', 'Recent Active Users');
|
||||
cy.get('.total-count.recent-active-users').eq(1).find('.title').should('contain', 'Newly Created Users');
|
||||
|
||||
// * Check that the values for the stats are valid.
|
||||
cy.get('.grid-statistics__card').each((el) => {
|
||||
cy.wrap(el).find('.content').invoke('text').then(parseFloat).should('be.gt', 0);
|
||||
});
|
||||
|
||||
// * Check that the generated tables are not empty.
|
||||
cy.get('.recent-active-users').find('table').eq(0).should('not.empty');
|
||||
cy.get('.recent-active-users').find('table').eq(1).should('not.empty');
|
||||
});
|
||||
|
||||
it('MM-T907 - Reporting ➜ Team Statistics - teams listed in alphabetical order', () => {
|
||||
cy.visit('/admin_console');
|
||||
cy.get('#reporting\\/team_statistics').click();
|
||||
cy.wait(TIMEOUTS.ONE_SEC);
|
||||
|
||||
// * Verify Teams are listed in alphabetical order, regardless of who created the team
|
||||
cy.findByTestId('teamFilter').then((el) => {
|
||||
// # Get the options and append them to a unsorted array (assume unsorted)
|
||||
const unsortedOptionsText = [];
|
||||
el[0].childNodes.forEach((child) => unsortedOptionsText.push(child.innerText));
|
||||
|
||||
// # Make a copy of the above array and then we sort them
|
||||
const sortedOptionsText = [...unsortedOptionsText].sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'}));
|
||||
|
||||
// * Compare the unsorted array and sorted array and if it initially was sorted, these should match
|
||||
for (let i = 0; i < unsortedOptionsText.length; i++) {
|
||||
expect(unsortedOptionsText[i]).equal(sortedOptionsText[i]);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user