Skip to content

Commit 90f3ff8

Browse files
fengmk2claude
andcommitted
feat(migration): support @vitest/browser-preview and @vitest/browser-webdriverio
Add rewrite rules for additional vitest browser packages: - @vitest/browser-preview → @voidzero-dev/vite-plus/test/browser-preview - @vitest/browser-webdriverio → @voidzero-dev/vite-plus/test/browser-webdriverio 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent fe4caa0 commit 90f3ff8

4 files changed

Lines changed: 75 additions & 1 deletion

File tree

crates/vite_migration/src/import_rewriter.rs

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ use crate::{ast_grep, file_walker};
1616
/// - `import { ... } from '@vitest/browser/{name}'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser/{name}'`
1717
/// - `import { ... } from '@vitest/browser-playwright'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser-playwright'`
1818
/// - `import { ... } from '@vitest/browser-playwright/{name}'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser-playwright/{name}'`
19+
/// - `import { ... } from '@vitest/browser-preview'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser-preview'`
20+
/// - `import { ... } from '@vitest/browser-preview/{name}'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser-preview/{name}'`
21+
/// - `import { ... } from '@vitest/browser-webdriverio'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser-webdriverio'`
22+
/// - `import { ... } from '@vitest/browser-webdriverio/{name}'` → `import { ... } from '@voidzero-dev/vite-plus/test/browser-webdriverio/{name}'`
1923
const REWRITE_IMPORT_RULES: &str = r#"---
2024
id: rewrite-vitest-config-import
2125
language: TypeScript
@@ -70,7 +74,7 @@ language: TypeScript
7074
rule:
7175
pattern: $STR
7276
kind: string
73-
regex: ^['"]@vitest/(browser-playwright|browser)(/.*)?['"]$
77+
regex: ^['"]@vitest/(browser-playwright|browser-preview|browser-webdriverio|browser)(/.*)?['"]$
7478
inside:
7579
kind: import_statement
7680
transform:
@@ -509,6 +513,70 @@ export default something;"#;
509513
result.content,
510514
r#"import { something } from "@voidzero-dev/vite-plus/test/browser-playwright/context";
511515
516+
export default something;"#
517+
);
518+
}
519+
520+
#[test]
521+
fn test_rewrite_import_content_vitest_browser_preview() {
522+
let vite_config = r#"import { preview } from '@vitest/browser-preview';
523+
524+
export default preview;"#;
525+
526+
let result = rewrite_import_content(vite_config).unwrap();
527+
assert!(result.updated);
528+
assert_eq!(
529+
result.content,
530+
r#"import { preview } from '@voidzero-dev/vite-plus/test/browser-preview';
531+
532+
export default preview;"#
533+
);
534+
}
535+
536+
#[test]
537+
fn test_rewrite_import_content_vitest_browser_preview_subpath() {
538+
let vite_config = r#"import { something } from "@vitest/browser-preview/context";
539+
540+
export default something;"#;
541+
542+
let result = rewrite_import_content(vite_config).unwrap();
543+
assert!(result.updated);
544+
assert_eq!(
545+
result.content,
546+
r#"import { something } from "@voidzero-dev/vite-plus/test/browser-preview/context";
547+
548+
export default something;"#
549+
);
550+
}
551+
552+
#[test]
553+
fn test_rewrite_import_content_vitest_browser_webdriverio() {
554+
let vite_config = r#"import { webdriverio } from '@vitest/browser-webdriverio';
555+
556+
export default webdriverio;"#;
557+
558+
let result = rewrite_import_content(vite_config).unwrap();
559+
assert!(result.updated);
560+
assert_eq!(
561+
result.content,
562+
r#"import { webdriverio } from '@voidzero-dev/vite-plus/test/browser-webdriverio';
563+
564+
export default webdriverio;"#
565+
);
566+
}
567+
568+
#[test]
569+
fn test_rewrite_import_content_vitest_browser_webdriverio_subpath() {
570+
let vite_config = r#"import { something } from "@vitest/browser-webdriverio/context";
571+
572+
export default something;"#;
573+
574+
let result = rewrite_import_content(vite_config).unwrap();
575+
assert!(result.updated);
576+
assert_eq!(
577+
result.content,
578+
r#"import { something } from "@voidzero-dev/vite-plus/test/browser-webdriverio/context";
579+
512580
export default something;"#
513581
);
514582
}

packages/global/snap-tests/migration-from-vitest/snap.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import { foo } from '@foo/vite-plugin-foo';
2222
import { playwright } from '@voidzero-dev/vite-plus/test/browser-playwright';
2323
import { server } from '@voidzero-dev/vite-plus/test/browser-playwright/context';
2424
import { userEvent } from '@voidzero-dev/vite-plus/test/browser/context';
25+
import { preview } from '@voidzero-dev/vite-plus/test/browser-preview';
26+
import { webdriverio } from '@voidzero-dev/vite-plus/test/browser-webdriverio';
2527
import { defineConfig } from '@voidzero-dev/vite-plus';
2628

2729
export default defineConfig({

packages/global/snap-tests/migration-from-vitest/vitest.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { join } from 'node:path';
33
import { foo } from '@foo/vite-plugin-foo';
44
import { playwright } from '@vitest/browser-playwright';
55
import { server } from '@vitest/browser-playwright/context';
6+
import { preview } from '@vitest/browser-preview';
7+
import { webdriverio } from '@vitest/browser-webdriverio';
68
import { userEvent } from '@vitest/browser/context';
79
import { defineConfig } from 'vitest/config';
810

packages/global/src/migration/migrator.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ const REMOVE_PACKAGES = [
3636
'oxlint-tsgolint',
3737
'oxfmt',
3838
'@vitest/browser',
39+
'@vitest/browser-preview',
3940
'@vitest/browser-playwright',
41+
'@vitest/browser-webdriverio',
4042
] as const;
4143

4244
export function checkViteVersion(projectPath: string): boolean {

0 commit comments

Comments
 (0)