From 58aee670615be653199b733dae7949e710bd6f76 Mon Sep 17 00:00:00 2001 From: Vasily Kuzin Date: Fri, 24 Oct 2025 13:47:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B0=D1=82=D1=80=D0=B8=D0=B1=D1=83=D1=82=D0=B0=20`da?= =?UTF-8?q?ta-testid`=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/utils/removeTestId.ts | 18 ++++++++++++++++++ nuxt.config.ts | 11 ++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 app/utils/removeTestId.ts diff --git a/app/utils/removeTestId.ts b/app/utils/removeTestId.ts new file mode 100644 index 0000000..f844ee4 --- /dev/null +++ b/app/utils/removeTestId.ts @@ -0,0 +1,18 @@ +import { + NodeTypes, + type RootNode, + type TemplateChildNode, +} from "@vue/compiler-core" + +/** + * Трансформатор для удаления атрибута `data-testid` из дерева виртуального DOM. + * + * @param node - Нода дерева + */ +export default function (node: RootNode | TemplateChildNode) { + if (node.type === NodeTypes.ELEMENT) { + node.props = node.props.filter((prop) => + prop.type === NodeTypes.ATTRIBUTE ? prop.name !== "data-testid" : true, + ) + } +} diff --git a/nuxt.config.ts b/nuxt.config.ts index 990f41e..63e40e2 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,3 +1,5 @@ +import removeTestId from "./app/utils/removeTestId" + /** * Общие модули, которые используются в любой среде. * @@ -27,7 +29,14 @@ const testModules = [...modules, "@nuxt/test-utils/module"] export default defineNuxtConfig({ $development: { hub: { remote: "production" }, modules: devModules }, - $production: { modules }, + $production: { + modules, + vite: { + vue: { + template: { compilerOptions: { nodeTransforms: [removeTestId] } }, + }, + }, + }, $test: { modules: testModules, ogImage: { enabled: false } }, compatibilityDate: "2025-07-16", css: ["~/assets/css/main.css"],