Skip to content

Commit 4b68d19

Browse files
Address CodeRabbit review on server management E2E specs
Poll for Mattermost server view registration, wait for trusted cert navigation before asserting ErrorView absence, and reuse launchDirectTestApp in certificate_trust.test.ts. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent b41357d commit 4b68d19

2 files changed

Lines changed: 29 additions & 19 deletions

File tree

e2e/specs/server_management/bad_servers.test.ts

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,16 @@ test.describe('Bad Server Configurations', () => {
301301
await dropdownView!.click('.ServerDropdown .ServerDropdown__button:nth-child(2)');
302302
await closeOverlayWindowsIfOpen(app);
303303

304-
const serverMap = await buildServerMap(app);
305-
const mmEntry = serverMap[demoMattermostConfig.servers[0].name][0];
306-
const mmServer = mmEntry.win;
304+
let mmEntry: Awaited<ReturnType<typeof buildServerMap>>[string][0] | undefined;
305+
await expect.poll(async () => {
306+
const serverMap = await buildServerMap(app);
307+
mmEntry = serverMap[demoMattermostConfig.servers[0].name]?.[0];
308+
return Boolean(mmEntry);
309+
}, {
310+
timeout: 45_000,
311+
message: 'Working Mattermost server view should be registered after switching servers',
312+
}).toBe(true);
313+
const mmServer = mmEntry!.win;
307314
const cloudHost = new URL(process.env.MM_TEST_SERVER_URL!).host;
308315

309316
await expect.poll(
@@ -386,6 +393,19 @@ test.describe('Bad Server Configurations', () => {
386393
const mainWindow = app.windows().find((w) => w.url().includes('index'));
387394
expect(mainWindow).toBeDefined();
388395

396+
await expect.poll(async () => {
397+
const serverMap = await buildServerMap(app);
398+
const entry = serverMap['Pre-configured Expired Cert Trusted']?.[0];
399+
if (!entry) {
400+
return false;
401+
}
402+
const url = await entry.win.url().catch(() => '');
403+
return url.includes('expired.badssl.com');
404+
}, {
405+
timeout: 45_000,
406+
message: 'Trusted expired-cert server view should finish loading before asserting ErrorView absence',
407+
}).toBe(true);
408+
389409
const errorView = await mainWindow!.$('.ErrorView');
390410
expect(errorView).toBeNull();
391411
} finally {

e2e/specs/server_management/certificate_trust.test.ts

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import * as fs from 'fs';
55
import * as path from 'path';
66

77
import {test, expect} from '../../fixtures/index';
8-
import {waitForAppReady} from '../../helpers/appReadiness';
9-
import {electronBinaryPath, appDir, demoConfig} from '../../helpers/config';
8+
import {demoConfig} from '../../helpers/config';
109
import {clearCertificateErrorCallbacks, restoreMessageBox, stubMessageBoxResponses} from '../../helpers/dialog';
11-
import {registerElectronMainProcess, closeElectronAppFast} from '../../helpers/electronApp';
10+
import {closeElectronAppFast} from '../../helpers/electronApp';
11+
import {launchDirectTestApp} from '../../helpers/directLaunch';
1212
import {waitForErrorView} from '../../helpers/errorView';
1313
import {evaluateInMainProcess} from '../../helpers/testRefs';
1414

@@ -34,22 +34,12 @@ test(
3434
fs.mkdirSync(userDataDir, {recursive: true});
3535
fs.writeFileSync(path.join(userDataDir, 'config.json'), JSON.stringify(badConfig));
3636

37-
const {_electron: electron} = await import('playwright');
38-
const app = await electron.launch({
39-
executablePath: electronBinaryPath,
40-
args: [appDir, `--user-data-dir=${userDataDir}`, '--no-sandbox', '--disable-gpu'],
41-
env: {
42-
...process.env,
43-
NODE_ENV: 'test',
44-
MM_E2E_STUB_MESSAGE_BOX: 'cancel',
45-
},
46-
timeout: 60_000,
37+
const app = await launchDirectTestApp(userDataDir, badConfig, {
38+
writeConfig: false,
39+
extraEnv: {MM_E2E_STUB_MESSAGE_BOX: 'cancel'},
4740
});
4841

49-
registerElectronMainProcess(app.process()?.pid);
50-
5142
try {
52-
await waitForAppReady(app);
5343
await waitForErrorView(app);
5444

5545
await clearCertificateErrorCallbacks(app);

0 commit comments

Comments
 (0)