mirror of
https://github.com/morluto/rea
synced 2026-10-28 15:07:26 -04:00
138 lines
5.4 KiB
TypeScript
138 lines
5.4 KiB
TypeScript
import { RuleTester } from "oxlint/plugins-dev";
|
|
import { describe, it } from "vitest";
|
|
|
|
import noBufferDeepEquality from "../../../scripts/lint/no-buffer-deep-equality.mjs";
|
|
|
|
RuleTester.describe = describe;
|
|
RuleTester.it = it;
|
|
|
|
new RuleTester({
|
|
languageOptions: { sourceType: "module", env: { node: true } },
|
|
}).run("no-buffer-deep-equality", noBufferDeepEquality, {
|
|
valid: [
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(await readFile(path, "utf8")).toEqual(text);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(await readFile(path, { encoding: "utf8" })).toEqual(text);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(await readFile(path, options)).toEqual(value);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
const pending = readFile(path);
|
|
expect(pending).toEqual(promise);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(readFile(path, "utf8")).resolves.toEqual(text);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect((await readFile(path)).equals(before)).toBe(true);`,
|
|
`import { expect } from "vitest";
|
|
const Buffer = { from: () => ({}) };
|
|
expect(Buffer.from("x")).toEqual(value);`,
|
|
`import { expect } from "vitest";
|
|
function check(Buffer) { expect(Buffer.alloc(4)).toEqual(value); }`,
|
|
`import { expect } from "vitest";
|
|
function check(Buffer) {
|
|
const Bytes = Buffer;
|
|
expect(Bytes.from("x")).toEqual(value);
|
|
}`,
|
|
`import { readFile } from "node:fs/promises";
|
|
function check(expect) { expect(readFile(path)).toEqual(value); }`,
|
|
`import { expect } from "vitest";
|
|
function check(readFile) { expect(readFile(path)).toEqual(value); }`,
|
|
`import { expect } from "other-assertions";
|
|
expect(Buffer.from("x")).toEqual(value);`,
|
|
`expect(Buffer.from("x")).toEqual(value);`,
|
|
`import { readFile } from "other-fs";
|
|
import { expect } from "vitest";
|
|
expect(readFile(path)).toEqual(value);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(await readFile(...args)).toEqual(value);`,
|
|
`import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
const data = await readFile(path, "utf8");
|
|
expect(data).toEqual(text);`,
|
|
`import { expect } from "vitest";
|
|
expect([1, 2]).toEqual([1, 2]);`,
|
|
`import { expect } from "vitest";
|
|
let bytes = Buffer.from("x");
|
|
expect(bytes).toEqual(value);`,
|
|
],
|
|
invalid: [
|
|
{
|
|
// Exact pre-fix ELF test shape: readFile without an encoding returns Buffer.
|
|
code: `import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
const before = await readFile(path);
|
|
expect(await readFile(path)).toEqual(before);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { readFileSync as read } from "node:fs";
|
|
import { expect } from "vitest";
|
|
const before = read(path);
|
|
expect(value).toStrictEqual(before);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { readFile as sourceRead } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
const read = sourceRead;
|
|
const bytes = await read(path);
|
|
expect(bytes).not.toEqual(value);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import * as fs from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(await fs.readFile(path)).toEqual(value);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { Buffer as NodeBuffer } from "node:buffer";
|
|
import { expect } from "vitest";
|
|
expect(value).toEqual(NodeBuffer.from("x"));`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { expect } from "vitest";
|
|
const Bytes = Buffer;
|
|
const bytes = Bytes.allocUnsafe(16);
|
|
expect(bytes).toEqual(value);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(await readFile(path), "bytes unchanged").toEqual(before);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(readFile(path)).resolves.toEqual(Buffer.from("x"));`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { readFile } from "node:fs/promises";
|
|
import { expect } from "vitest";
|
|
expect(readFile(path)).resolves.not.toEqual(value);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { expect } from "vitest";
|
|
expect(Promise.reject(Buffer.from("x"))).rejects.toStrictEqual(Buffer.from("x"));`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
{
|
|
code: `import { expect as check } from "vitest";
|
|
check(Buffer.alloc(4)).toEqual(value);`,
|
|
errors: [{ messageId: "nativeBytes" }],
|
|
},
|
|
],
|
|
});
|