mirror of
https://github.com/element-hq/element-desktop
synced 2025-03-20 19:33:23 +01:00
Fix --no-update
command line flag (#2210)
* Fix `--no-update` command line flag Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add test Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * fail-fast: false Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Skip Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
618c04d613
commit
7098789689
1
.github/workflows/build_and_test.yaml
vendored
1
.github/workflows/build_and_test.yaml
vendored
@ -49,6 +49,7 @@ jobs:
|
|||||||
- linux
|
- linux
|
||||||
- windows
|
- windows
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- name: macOS Universal
|
- name: macOS Universal
|
||||||
|
@ -55,4 +55,16 @@ test.describe("App launch", () => {
|
|||||||
}),
|
}),
|
||||||
).resolves.not.toBeNull();
|
).resolves.not.toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test.describe("--no-update", () => {
|
||||||
|
test.use({
|
||||||
|
extraArgs: ["--no-update"],
|
||||||
|
});
|
||||||
|
|
||||||
|
// XXX: this test works fine locally but in CI the app start races with the test plumbing up the stdout/stderr pipes
|
||||||
|
// which means the logs are missed, disabling for now.
|
||||||
|
test.skip("should respect option", async ({ page, stdout }) => {
|
||||||
|
expect(stdout.data.toString()).toContain("Auto update disabled via command line flag");
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -11,12 +11,37 @@ import fs from "node:fs/promises";
|
|||||||
import path, { dirname } from "node:path";
|
import path, { dirname } from "node:path";
|
||||||
import os from "node:os";
|
import os from "node:os";
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
|
import { PassThrough } from "node:stream";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A PassThrough stream that captures all data written to it.
|
||||||
|
*/
|
||||||
|
class CapturedPassThrough extends PassThrough {
|
||||||
|
private _chunks = [];
|
||||||
|
|
||||||
|
public constructor() {
|
||||||
|
super();
|
||||||
|
super.on("data", this.onData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private onData = (chunk): void => {
|
||||||
|
this._chunks.push(chunk);
|
||||||
|
};
|
||||||
|
|
||||||
|
public get data(): Buffer {
|
||||||
|
return Buffer.concat(this._chunks);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
interface Fixtures {
|
interface Fixtures {
|
||||||
app: ElectronApplication;
|
app: ElectronApplication;
|
||||||
tmpDir: string;
|
tmpDir: string;
|
||||||
extraEnv: Record<string, string>;
|
extraEnv: Record<string, string>;
|
||||||
extraArgs: string[];
|
extraArgs: string[];
|
||||||
|
|
||||||
|
// Utilities to capture stdout and stderr for tests to make assertions against
|
||||||
|
stdout: CapturedPassThrough;
|
||||||
|
stderr: CapturedPassThrough;
|
||||||
}
|
}
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
@ -24,6 +49,16 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|||||||
export const test = base.extend<Fixtures>({
|
export const test = base.extend<Fixtures>({
|
||||||
extraEnv: {},
|
extraEnv: {},
|
||||||
extraArgs: [],
|
extraArgs: [],
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-empty-pattern
|
||||||
|
stdout: async ({}, use) => {
|
||||||
|
await use(new CapturedPassThrough());
|
||||||
|
},
|
||||||
|
// eslint-disable-next-line no-empty-pattern
|
||||||
|
stderr: async ({}, use) => {
|
||||||
|
await use(new CapturedPassThrough());
|
||||||
|
},
|
||||||
|
|
||||||
// eslint-disable-next-line no-empty-pattern
|
// eslint-disable-next-line no-empty-pattern
|
||||||
tmpDir: async ({}, use) => {
|
tmpDir: async ({}, use) => {
|
||||||
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "element-desktop-tests-"));
|
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "element-desktop-tests-"));
|
||||||
@ -31,7 +66,7 @@ export const test = base.extend<Fixtures>({
|
|||||||
await use(tmpDir);
|
await use(tmpDir);
|
||||||
await fs.rm(tmpDir, { recursive: true });
|
await fs.rm(tmpDir, { recursive: true });
|
||||||
},
|
},
|
||||||
app: async ({ tmpDir, extraEnv, extraArgs }, use) => {
|
app: async ({ tmpDir, extraEnv, extraArgs, stdout, stderr }, use) => {
|
||||||
const args = ["--profile-dir", tmpDir];
|
const args = ["--profile-dir", tmpDir];
|
||||||
|
|
||||||
const executablePath = process.env["ELEMENT_DESKTOP_EXECUTABLE"];
|
const executablePath = process.env["ELEMENT_DESKTOP_EXECUTABLE"];
|
||||||
@ -49,8 +84,8 @@ export const test = base.extend<Fixtures>({
|
|||||||
args: [...args, ...extraArgs],
|
args: [...args, ...extraArgs],
|
||||||
});
|
});
|
||||||
|
|
||||||
app.process().stdout.pipe(process.stdout);
|
app.process().stdout.pipe(stdout).pipe(process.stdout);
|
||||||
app.process().stderr.pipe(process.stderr);
|
app.process().stderr.pipe(stderr).pipe(process.stderr);
|
||||||
|
|
||||||
await app.firstWindow();
|
await app.firstWindow();
|
||||||
|
|
||||||
|
@ -436,8 +436,9 @@ app.on("ready", async () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
if (argv["no-update"]) {
|
// Minimist parses `--no-`-prefixed arguments as booleans with value `false` rather than verbatim.
|
||||||
console.log('Auto update disabled via command line flag "--no-update"');
|
if (argv["update"] === false) {
|
||||||
|
console.log("Auto update disabled via command line flag");
|
||||||
} else if (global.vectorConfig["update_base_url"]) {
|
} else if (global.vectorConfig["update_base_url"]) {
|
||||||
console.log(`Starting auto update with base URL: ${global.vectorConfig["update_base_url"]}`);
|
console.log(`Starting auto update with base URL: ${global.vectorConfig["update_base_url"]}`);
|
||||||
void updater.start(global.vectorConfig["update_base_url"]);
|
void updater.start(global.vectorConfig["update_base_url"]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user