Enable oxlint restriction ruleset (#34307)

* Remove stale max-len disablements

* Remove stale camelCase & naming-convention disablements

* Remove stale ban-ts-comment disablements

* Remove stale no-var disablements

* Remove stale no-empty-property disablements

* Remove stale react rule disablements

* Remove stale no-constant-condition disablements

* Remove stale no-unused-vars disablements

* Remove stale disablements for disabled rules

* fixup camelcase

* Remove dead code

* Tidy code

* Tweak oxlint config

* Use oxlint to apply jsx/tsx extension consistently

* Fix import

* Fix imports

* Rename affected snapshots

* Update more imports

* Enable restriction ruleset

* Make code comply with new rules

* Make code comply with react/button-has-type

* Make code comply with typescript/non-nullable-type-assertion-style

* Comply with node/no-process-env

* Comply with unicorn/prefer-node-protocol

* Comply with unicorn/import-style

* Comply with unicorn/no-process-exit

* Comply with no-proto

* Comply with node/handle-callback-err

* Comply with import/no-commonjs

* Comply with node/no-path-concat

* Comply with unicorn/no-length-as-slice-end

* Comply with unicorn/no-document-cookie

* Comply with unicorn/prefer-module

* Comply with typescript/prefer-literal-enum-member

* Comply with jsx-a11y/anchor-ambiguous-text

* Tweak oxlint config

* Fix resolves

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate
This commit is contained in:
Michael Telatynski
2026-08-04 09:15:07 +00:00
committed by GitHub
parent c091ebec6e
commit 4aa1a3549e
167 changed files with 526 additions and 346 deletions
@@ -6,14 +6,13 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
Please see LICENSE files in the repository root for full details.
*/
import path from "path";
import path from "node:path";
import { readFile } from "node:fs/promises";
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { expect, test } from "../../element-web-test";
const __dirname = dirname(fileURLToPath(import.meta.url));
const __dirname = path.dirname(fileURLToPath(import.meta.url));
test.describe("migration", { tag: "@no-webkit" }, function () {
test.use({
+17 -9
View File
@@ -8,7 +8,7 @@ Please see LICENSE files in the repository root for full details.
import { type Locator, type Page, expect } from "@playwright/test";
import { readFile } from "node:fs/promises";
import { basename } from "node:path";
import path from "node:path";
import { rejectToast, rejectToastIfExists } from "@element-hq/element-web-playwright-common";
import { Settings } from "./settings";
@@ -197,15 +197,19 @@ export class ElementAppPage {
/**
* Drags a "file" into the specified composer and automatically uploads it.
* @param location Should the drop target the main room or the thread.
* @param path The path to the sample file so it can be read.
* @param samplePath The path to the sample file so it can be read.
* @param type The mimetype of the file.
*/
public async composerDragAndUploadFiles(location: "room" | "thread", path: string, type: string): Promise<void> {
public async composerDragAndUploadFiles(
location: "room" | "thread",
samplePath: string,
type: string,
): Promise<void> {
// Based on https://github.com/microsoft/playwright/issues/10667#issuecomment-2742123424
// This read a file, encodes it into base64 and then sends it along to the page to be treated
// as a DataTransfer (the mechanism for drag and dropped files).
const buffer = await readFile(path);
const name = basename(path);
const buffer = await readFile(samplePath);
const name = path.basename(samplePath);
const dataTransfer = await this.page.evaluateHandle(
async ([buffer, name, type]) => {
@@ -227,15 +231,19 @@ export class ElementAppPage {
/**
* Paste a "file" into the specified locator and automatically uploads it.
* @param location Should the drop target the main room or the thread.
* @param path The path to the sample file so it can be read.
* @param samplePath The path to the sample file so it can be read.
* @param type The mimetype of the file.
*/
public async composerDragAndPasteFile(location: "room" | "thread", path: string, type: string): Promise<void> {
public async composerDragAndPasteFile(
location: "room" | "thread",
samplePath: string,
type: string,
): Promise<void> {
// Based on https://github.com/microsoft/playwright/issues/10667#issuecomment-2742123424
// This read a file, encodes it into base64 and then sends it along to the page to be treated
// as a DataTransfer (the mechanism for drag and dropped files).
const buffer = await readFile(path);
const name = basename(path);
const buffer = await readFile(samplePath);
const name = path.basename(samplePath);
const composer = this.getComposerField(location === "thread");
await composer.evaluate(
@@ -7,18 +7,18 @@ Please see LICENSE files in the repository root for full details.
*/
import { type SynapseContainer } from "@element-hq/element-web-playwright-common/lib/testcontainers/index.js";
import { dirname, join } from "node:path";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { type Fixtures } from "../../../element-web-test.ts";
const __dirname = dirname(fileURLToPath(import.meta.url));
const __dirname = path.dirname(fileURLToPath(import.meta.url));
export const consentHomeserver: Fixtures = {
_homeserver: [
async ({ _homeserver: container, mailpit }, use) => {
(container as SynapseContainer)
.withCopyDirectoriesToContainer([{ source: join(__dirname, "res"), target: "/data/res" }])
.withCopyDirectoriesToContainer([{ source: path.join(__dirname, "res"), target: "/data/res" }])
.withSmtpServer(mailpit)
.withConfig({
user_consent: {
@@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
Please see LICENSE files in the repository root for full details.
*/
import http from "http";
import http from "node:http";
import express from "express";
import { type AddressInfo } from "net";
import { type AddressInfo } from "node:net";
import { type TestInfo } from "@playwright/test";
import { randB64Bytes } from "@element-hq/element-web-playwright-common/lib/utils/rand.js";
import { dirname } from "node:path";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __dirname = dirname(fileURLToPath(import.meta.url));
const __dirname = path.dirname(fileURLToPath(import.meta.url));
export class OAuthServer {
private server?: http.Server;
@@ -19,6 +19,7 @@ export default class ExampleModule {
}
async load() {
const brand = this.api.config.get("brand");
// oxlint-disable-next-line no-alert
alert(this.api.i18n.translate("key", { brand }));
}
}
+3 -3
View File
@@ -5,15 +5,15 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
Please see LICENSE files in the repository root for full details.
*/
import { dirname, join } from "node:path";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { readFile } from "node:fs/promises";
import { readFileSync } from "node:fs";
const __dirname = dirname(fileURLToPath(import.meta.url));
const __dirname = path.dirname(fileURLToPath(import.meta.url));
export function getSampleFilePath(file: string): string {
return join(__dirname, file);
return path.join(__dirname, file);
}
export function readSampleFile(file: string, encoding: null): Promise<Buffer>;
@@ -11,6 +11,7 @@ export default class SettingsModule {
this.api = api;
}
async load() {
// oxlint-disable-next-line no-alert
alert(this.api.settings.getValue("language"));
}
}