@typespec/compiler
Version:
TypeSpec Compiler Preview
30 lines (25 loc) • 934 B
text/typescript
import {
LinterRuleTester,
createLinterRuleTester,
createTestRunner,
} from "@typespec/compiler/testing";
import { beforeEach, describe, it } from "node:test";
import { noInterfaceRule } from "../../src/rules/no-interfaces.rule.js";
describe("noInterfaceRule", () => {
let ruleTester: LinterRuleTester;
beforeEach(async () => {
const runner = await createTestRunner();
ruleTester = createLinterRuleTester(runner, noInterfaceRule, "{{name}}");
});
describe("models", () => {
it("emit diagnostics if using interfaces", async () => {
await ruleTester.expect(`interface Test {}`).toEmitDiagnostics({
code: "{{name}}/no-interface",
message: "Interface shouldn't be used with this library. Keep operations at the root.",
});
});
it("should be valid if operation is at the root", async () => {
await ruleTester.expect(`op test(): void;`).toBeValid();
});
});
});