From 6a555fb1fc8588dfc252f030393550a53e2c7e1c Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 20 Dec 2024 01:36:54 +0000 Subject: [PATCH] Add e2e test using real filesystem --- .../eslint-plugin-tsv/test/e2e-realfs.test.ts | 17 ++++++++ .../Contoso.WidgetManager/tspconfig.yaml | 39 ------------------- eng/tools/eslint-plugin-tsv/test/utils/e2e.ts | 10 +++++ 3 files changed, 27 insertions(+), 39 deletions(-) create mode 100644 eng/tools/eslint-plugin-tsv/test/e2e-realfs.test.ts delete mode 100644 eng/tools/eslint-plugin-tsv/test/e2e/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml create mode 100644 eng/tools/eslint-plugin-tsv/test/utils/e2e.ts diff --git a/eng/tools/eslint-plugin-tsv/test/e2e-realfs.test.ts b/eng/tools/eslint-plugin-tsv/test/e2e-realfs.test.ts new file mode 100644 index 000000000000..29fc83476f3a --- /dev/null +++ b/eng/tools/eslint-plugin-tsv/test/e2e-realfs.test.ts @@ -0,0 +1,17 @@ +import { join, resolve } from "path"; +import { describe, expect, it } from "vitest"; +import { createESLint } from "./utils/e2e.js"; + +const specsFolder = resolve(__filename, "../../../../../specification"); + +describe("e2e-realfs", () => { + it("contosowidgetmanager/Contso.WidgetManager", async () => { + const eslint = createESLint(); + const filePath = join(specsFolder, "contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml"); + const results = await eslint.lintFiles(filePath); + + expect(results).toHaveLength(1); + expect(results[0].filePath).toBe(filePath); + expect(results[0].messages).toHaveLength(0); + }); +}); diff --git a/eng/tools/eslint-plugin-tsv/test/e2e/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml b/eng/tools/eslint-plugin-tsv/test/e2e/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml deleted file mode 100644 index 2633b3a76f34..000000000000 --- a/eng/tools/eslint-plugin-tsv/test/e2e/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml +++ /dev/null @@ -1,39 +0,0 @@ -parameters: - "service-dir": - default: "sdk/contosowidgetmanager" - "dependencies": - "additionalDirectories": - - "specification/contosowidgetmanager/Contoso.WidgetManager.Shared/" - default: "" -emit: - - "@azure-tools/typespec-autorest" -linter: - extends: - - "@azure-tools/typespec-azure-rulesets/data-plane" -options: - "@azure-tools/typespec-autorest": - azure-resource-provider-folder: "data-plane" - emit-lro-options: "none" - emitter-output-dir: "{project-root}/.." - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/widgets.json" - "@azure-tools/typespec-python": - package-dir: "azure-contoso-widgetmanager" - package-name: "{package-dir}" - generate-test: true - generate-sample: true - flavor: azure - "@azure-tools/typespec-csharp": - package-dir: "Azure.Template.Contoso" - clear-output-folder: true - model-namespace: false - namespace: "{package-dir}" - flavor: azure - "@azure-tools/typespec-ts": - package-dir: "contosowidgetmanager-rest" - packageDetails: - name: "@azure-rest/contoso-widgetmanager-rest" - flavor: azure - "@azure-tools/typespec-java": - package-dir: "azure-contoso-widgetmanager" - namespace: com.azure.contoso.widgetmanager - flavor: azure diff --git a/eng/tools/eslint-plugin-tsv/test/utils/e2e.ts b/eng/tools/eslint-plugin-tsv/test/utils/e2e.ts new file mode 100644 index 000000000000..5a9ff9e14054 --- /dev/null +++ b/eng/tools/eslint-plugin-tsv/test/utils/e2e.ts @@ -0,0 +1,10 @@ +import { ESLint } from "eslint"; +import eslintPluginTsv from "../../src/eslint-plugin-tsv.js"; + +export function createESLint() { + return new ESLint({ + cwd: "/", + overrideConfig: eslintPluginTsv.configs.recommended, + overrideConfigFile: true, + }); +}