Files
mattermostest/e2e/specs/notification_trigger/helpers.js
Devin Binnie dcbb8b7a91 Fix bad path name for user data dir, upgrade node-abi (#3406)
* Fix bad path name for user data dir, upgrade node-abi

* Run windows e2e

* Enable Windows tests and fix linux e2e crash

* chore: remove redundant dependencies and environment variables in e2e workflow

* fix: resolve Linux GPU process initialization errors in GitHub Actions

* Fix linux tests

* Fix lint

* fix: Enhance GPU handling to prevent process crashes in E2E tests

This commit addresses GPU-related stability issues in our E2E test environment by:

1. Updating GPU helper utility with more comprehensive disabling methods
2. Adding environment variables to force software rendering
3. Configuring Electron to use in-process GPU rendering
4. Adding additional Linux dependencies for better GPU support
5. Expanding command-line flags to mitigate GPU process crashes

The changes include modifications to:
- e2e/utils/gpu-helper.js
- e2e/modules/environment.js
- .github/workflows/e2e-functional-template.yml
- .github/actions/install-os-dependencies/action.yaml

* Fix linux tests

* Fix linux tests

* Fix linux tests

* Fix linux tests

* Fix linux tests

* Revert "chore: remove redundant dependencies and environment variables in e2e workflow"

This reverts commit 6a8eb0cbee155c3fd3f26df8d45af8c1f5cf2f12.

* run tests with xvfb-run --auto-servernum

* change ubuntu-runner to use latest

* change ubuntu-runner to use 24.04 version

* fix linux tests

* fix linux tests

* add preload test script

* add preload test script

* add preload test script

* update preload script

* reset all changes made to fix linux e2e error

* reset all changes made to fix linux e2e error

* reset all changes made to fix linux e2e error

* fix linux package instalation

* fix chrome sandbox permission issue

* bump electron version to 36.1.0

* Revert "bump electron version to 36.1.0"

This reverts commit 4a9bf858754c0c1909b3626f703578913adf3714.

* install dbus and declare DBUS_SYSTEM_BUS_ADDRESS

* fix dbus error

* fix dbus error

* fix dbus error

* fix dbus error

* fix: Try the community suggestion

-  https://github.com/actions/runner-images/issues/12127#issuecomment-2854346891

* change libasound2 to libasound2t64

* use gcc-12-aarch64-linux-gnu instead of gcc-aarch64-linux-gnu

* remove multilib

* fix xvfb crash

* fix: add PW_CHROMIUM_ARGS

* fix: add --disable-gpu-sandbox to the e2e run command

* fix: windows job

* pass version to electron rebuild

* fix post install script under /e2e

* Revert "fix post install script under /e2e"

This reverts commit 01efeed2e5038684c0aea5bb0be837b7041be8ca.

* skip postinstall scipt for windows job

* hardcode electron version in the e2e/package.json

* update script

* Revert "update script"

This reverts commit 078d197e44dc78972876a977f4a91182d89024b6.

* update script

* reset

* upgrade electron/rebuild package

* Revert "upgrade electron/rebuild package"

This reverts commit 25b144df05152b0bc112db6473263bfd68850874.

* Patch electron/rebuild

* Fix macOS test

---------

Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-19 10:39:16 -04:00

31 lines
1.5 KiB
JavaScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
const {asyncSleep} = require('../../modules/utils');
export async function triggerTestNotification(firstServer) {
await firstServer.click('div#CustomizeYourExperienceTour > button');
const sendNotificationButton = await firstServer.waitForSelector('.sectionNoticeButton.btn-primary');
await sendNotificationButton.scrollIntoViewIfNeeded();
const textBeforeClick = await sendNotificationButton.textContent();
textBeforeClick.should.equal('Send a test notification');
await sendNotificationButton.click();
await asyncSleep(3000);
const textAfterClick = await sendNotificationButton.textContent();
textAfterClick.should.equal('Test notification sent');
}
export async function verifyNotificationRecievedinDM(firstServer, afterbadgeValue) {
await firstServer.click('div.modal-header button[aria-label="Close"]');
const sidebarLink = await firstServer.locator('a.SidebarLink:has-text("system-bot")');
const badgeElement = await sidebarLink.locator('span.badge');
const badgeCount = await badgeElement.textContent();
parseInt(badgeCount, 10).should.equal(afterbadgeValue);
sidebarLink.click();
await asyncSleep(1000);
const lastPostBody = await firstServer.locator('div.post__body').last();
const textContent = await lastPostBody.textContent();
textContent.should.equal('If you received this test notification, it worked!');
}