mirror of
https://github.com/bitwarden/browser.git
synced 2025-03-01 03:31:15 +01:00
99 lines
1.8 KiB
JavaScript
99 lines
1.8 KiB
JavaScript
|
import { RuleTester } from "@typescript-eslint/rule-tester";
|
||
|
|
||
|
import rule, { errorMessage } from "./required-using.mjs";
|
||
|
|
||
|
const ruleTester = new RuleTester({
|
||
|
languageOptions: {
|
||
|
parserOptions: {
|
||
|
project: [__dirname + "/../tsconfig.spec.json"],
|
||
|
projectService: {
|
||
|
allowDefaultProject: ["*.ts*"],
|
||
|
},
|
||
|
tsconfigRootDir: __dirname + "/..",
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
|
||
|
const setup = `
|
||
|
interface UsingRequired {}
|
||
|
class Ref implements UsingRequired {}
|
||
|
|
||
|
const rc = {
|
||
|
take(): Ref {
|
||
|
return new Ref();
|
||
|
},
|
||
|
};
|
||
|
`;
|
||
|
|
||
|
ruleTester.run("required-using", rule.default, {
|
||
|
valid: [
|
||
|
{
|
||
|
name: "Direct declaration with `using`",
|
||
|
code: `
|
||
|
${setup}
|
||
|
using client = rc.take();
|
||
|
`,
|
||
|
},
|
||
|
{
|
||
|
name: "Function reference with `using`",
|
||
|
code: `
|
||
|
${setup}
|
||
|
const t = rc.take;
|
||
|
using client = t();
|
||
|
`,
|
||
|
},
|
||
|
],
|
||
|
invalid: [
|
||
|
{
|
||
|
name: "Direct declaration without `using`",
|
||
|
code: `
|
||
|
${setup}
|
||
|
const client = rc.take();
|
||
|
`,
|
||
|
errors: [
|
||
|
{
|
||
|
message: errorMessage,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
name: "Assignment without `using`",
|
||
|
code: `
|
||
|
${setup}
|
||
|
let client;
|
||
|
client = rc.take();
|
||
|
`,
|
||
|
errors: [
|
||
|
{
|
||
|
message: errorMessage,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
name: "Function reference without `using`",
|
||
|
code: `
|
||
|
${setup}
|
||
|
const t = rc.take;
|
||
|
const client = t();
|
||
|
`,
|
||
|
errors: [
|
||
|
{
|
||
|
message: errorMessage,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
name: "Destructuring without `using`",
|
||
|
code: `
|
||
|
${setup}
|
||
|
const { value } = rc.take();
|
||
|
`,
|
||
|
errors: [
|
||
|
{
|
||
|
message: errorMessage,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
});
|