← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~petermakowski/maas-site-manager:add-autoimport-to-vitest into maas-site-manager:main

 

Peter Makowski has proposed merging ~petermakowski/maas-site-manager:add-autoimport-to-vitest into maas-site-manager:main.

Commit message:
add autoimport to vitest

Requested reviews:
  MAAS Committers (maas-committers)

For more details, see:
https://code.launchpad.net/~petermakowski/maas-site-manager/+git/site-manager/+merge/441078

This allows you to skip import of vitest methods, like: import { vi } from "vitest"
-- 
Your team MAAS Committers is requested to review the proposed merge of ~petermakowski/maas-site-manager:add-autoimport-to-vitest into maas-site-manager:main.
diff --git a/frontend/.eslintrc-auto-import.json b/frontend/.eslintrc-auto-import.json
index fdd362d..172268c 100644
--- a/frontend/.eslintrc-auto-import.json
+++ b/frontend/.eslintrc-auto-import.json
@@ -6,11 +6,22 @@
     "Outlet": true,
     "Route": true,
     "Routes": true,
+    "afterAll": true,
+    "afterEach": true,
+    "assert": true,
+    "beforeAll": true,
+    "beforeEach": true,
+    "chai": true,
     "createRef": true,
+    "describe": true,
+    "expect": true,
     "forwardRef": true,
+    "it": true,
     "lazy": true,
     "memo": true,
     "startTransition": true,
+    "suite": true,
+    "test": true,
     "useCallback": true,
     "useContext": true,
     "useDebugValue": true,
@@ -37,6 +48,8 @@
     "useSearchParams": true,
     "useState": true,
     "useSyncExternalStore": true,
-    "useTransition": true
+    "useTransition": true,
+    "vi": true,
+    "vitest": true
   }
 }
\ No newline at end of file
diff --git a/frontend/auto-imports.d.ts b/frontend/auto-imports.d.ts
index 6d3f354..16bd2ed 100644
--- a/frontend/auto-imports.d.ts
+++ b/frontend/auto-imports.d.ts
@@ -10,11 +10,22 @@ declare global {
   const Outlet: typeof import('react-router-dom')['Outlet']
   const Route: typeof import('react-router-dom')['Route']
   const Routes: typeof import('react-router-dom')['Routes']
+  const afterAll: typeof import('vitest')['afterAll']
+  const afterEach: typeof import('vitest')['afterEach']
+  const assert: typeof import('vitest')['assert']
+  const beforeAll: typeof import('vitest')['beforeAll']
+  const beforeEach: typeof import('vitest')['beforeEach']
+  const chai: typeof import('vitest')['chai']
   const createRef: typeof import('react')['createRef']
+  const describe: typeof import('vitest')['describe']
+  const expect: typeof import('vitest')['expect']
   const forwardRef: typeof import('react')['forwardRef']
+  const it: typeof import('vitest')['it']
   const lazy: typeof import('react')['lazy']
   const memo: typeof import('react')['memo']
   const startTransition: typeof import('react')['startTransition']
+  const suite: typeof import('vitest')['suite']
+  const test: typeof import('vitest')['test']
   const useCallback: typeof import('react')['useCallback']
   const useContext: typeof import('react')['useContext']
   const useDebugValue: typeof import('react')['useDebugValue']
@@ -42,4 +53,6 @@ declare global {
   const useState: typeof import('react')['useState']
   const useSyncExternalStore: typeof import('react')['useSyncExternalStore']
   const useTransition: typeof import('react')['useTransition']
+  const vi: typeof import('vitest')['vi']
+  const vitest: typeof import('vitest')['vitest']
 }
diff --git a/frontend/src/components/DateTime/DateTime.test.tsx b/frontend/src/components/DateTime/DateTime.test.tsx
index b6c6df1..1aa73e0 100644
--- a/frontend/src/components/DateTime/DateTime.test.tsx
+++ b/frontend/src/components/DateTime/DateTime.test.tsx
@@ -1,5 +1,4 @@
 import * as timezoneMock from "timezone-mock";
-import { vi } from "vitest";
 
 import DateTime from "./DateTime";
 
diff --git a/frontend/src/components/EnrollmentActions/EnrollmentActions.test.tsx b/frontend/src/components/EnrollmentActions/EnrollmentActions.test.tsx
index fafd39a..1ffa6dd 100644
--- a/frontend/src/components/EnrollmentActions/EnrollmentActions.test.tsx
+++ b/frontend/src/components/EnrollmentActions/EnrollmentActions.test.tsx
@@ -1,5 +1,3 @@
-import { vi } from "vitest";
-
 import EnrollmentActions from "./EnrollmentActions";
 
 import type * as apiHooks from "@/hooks/api";
diff --git a/frontend/src/components/RemoveRegions/RemoveRegions.test.tsx b/frontend/src/components/RemoveRegions/RemoveRegions.test.tsx
index 48ffd54..e5414c3 100644
--- a/frontend/src/components/RemoveRegions/RemoveRegions.test.tsx
+++ b/frontend/src/components/RemoveRegions/RemoveRegions.test.tsx
@@ -1,5 +1,3 @@
-import { vi } from "vitest";
-
 import RemoveRegions from "./index";
 
 import { render, screen, userEvent } from "@/test-utils";
diff --git a/frontend/src/components/SitesList/SitesTable/SitesTable.test.tsx b/frontend/src/components/SitesList/SitesTable/SitesTable.test.tsx
index cdab9f3..6c4db25 100644
--- a/frontend/src/components/SitesList/SitesTable/SitesTable.test.tsx
+++ b/frontend/src/components/SitesList/SitesTable/SitesTable.test.tsx
@@ -1,5 +1,4 @@
 import * as timezoneMock from "timezone-mock";
-import { vi } from "vitest";
 
 import SitesTable from "./SitesTable";
 
diff --git a/frontend/src/components/TokensCreate/TokensCreate.test.tsx b/frontend/src/components/TokensCreate/TokensCreate.test.tsx
index 022f7b6..2519f7f 100644
--- a/frontend/src/components/TokensCreate/TokensCreate.test.tsx
+++ b/frontend/src/components/TokensCreate/TokensCreate.test.tsx
@@ -1,6 +1,5 @@
 import { rest } from "msw";
 import { setupServer } from "msw/node";
-import { vi } from "vitest";
 
 import TokensCreate from "./TokensCreate";
 
diff --git a/frontend/src/components/base/CopyButton/CopyButton.test.tsx b/frontend/src/components/base/CopyButton/CopyButton.test.tsx
index c98a5f3..2351f82 100644
--- a/frontend/src/components/base/CopyButton/CopyButton.test.tsx
+++ b/frontend/src/components/base/CopyButton/CopyButton.test.tsx
@@ -1,5 +1,3 @@
-import { vi } from "vitest";
-
 import CopyButton from "./CopyButton";
 
 import { render, screen, userEvent } from "@/test-utils";
diff --git a/frontend/src/components/base/TablePagination/TablePagination.test.tsx b/frontend/src/components/base/TablePagination/TablePagination.test.tsx
index 4befc42..a45313d 100644
--- a/frontend/src/components/base/TablePagination/TablePagination.test.tsx
+++ b/frontend/src/components/base/TablePagination/TablePagination.test.tsx
@@ -1,5 +1,3 @@
-import { vi } from "vitest";
-
 import TablePagination from "./TablePagination";
 
 import { render, screen, userEvent } from "@/test-utils";
diff --git a/frontend/src/hooks/useDebouncedValue.test.ts b/frontend/src/hooks/useDebouncedValue.test.ts
index ef6d4b8..ba6d055 100644
--- a/frontend/src/hooks/useDebouncedValue.test.ts
+++ b/frontend/src/hooks/useDebouncedValue.test.ts
@@ -1,5 +1,3 @@
-import { vi } from "vitest";
-
 import useDebouncedValue from "./useDebouncedValue";
 
 import { renderHook } from "@/test-utils";
diff --git a/frontend/src/routes/RequireLogin/RequireLogin.test.tsx b/frontend/src/routes/RequireLogin/RequireLogin.test.tsx
index b9a2278..b6c65ea 100644
--- a/frontend/src/routes/RequireLogin/RequireLogin.test.tsx
+++ b/frontend/src/routes/RequireLogin/RequireLogin.test.tsx
@@ -1,5 +1,4 @@
 import * as reactRouter from "react-router";
-import { vi } from "vitest";
 
 import RequireLogin from "./RequireLogin";
 
diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts
index eed1bf5..5c66a57 100644
--- a/frontend/vitest.config.ts
+++ b/frontend/vitest.config.ts
@@ -1,7 +1,17 @@
 import { configDefaults, coverageConfigDefaults, defineConfig } from "vitest/config";
+import AutoImport from "unplugin-auto-import/vite";
 import * as path from "path";
 
 export default defineConfig({
+  plugins: [
+    AutoImport({
+      imports: ["react", "react-router-dom", "vitest"],
+      dts: true,
+      eslintrc: {
+        enabled: true,
+      },
+    }),
+  ],
   resolve: {
     alias: { "@": path.resolve(__dirname, "src") },
   },

Follow ups