diff --git a/src/Console/Commands/SetupCpVite.php b/src/Console/Commands/SetupCpVite.php index df499bc0e1a..f2e77e1c6f7 100644 --- a/src/Console/Commands/SetupCpVite.php +++ b/src/Console/Commands/SetupCpVite.php @@ -53,11 +53,11 @@ private function installDependencies(): self $installedDependencies = collect($contents['dependencies'] ?? [])->merge($contents['devDependencies'] ?? []); - if (! $installedDependencies->contains('vite')) { - $contents['devDependencies']['vite'] = '^7.0.4'; + if (! $installedDependencies->has('vite')) { + $contents['devDependencies']['vite'] = '^8.0.0'; } - if (! $installedDependencies->contains('@statamic/cms')) { + if (! $installedDependencies->has('@statamic/cms')) { $contents['dependencies']['@statamic/cms'] = 'file:./vendor/statamic/cms/resources/dist-package'; } diff --git a/tests/Console/Commands/SetupCpViteTest.php b/tests/Console/Commands/SetupCpViteTest.php index fdc79b44719..db2885d615d 100644 --- a/tests/Console/Commands/SetupCpViteTest.php +++ b/tests/Console/Commands/SetupCpViteTest.php @@ -60,7 +60,35 @@ public function it_installs_dependencies() }, "devDependencies": { "postcss": "^8.4.24", - "vite": "^7.0.4" + "vite": "^8.0.0" + } +JSON, $this->files->get(base_path('package.json'))); + } + + #[Test] + public function it_does_not_override_existing_vite_or_statamic_cms_dependencies() + { + $this->files->put(base_path('package.json'), <<<'JSON' +{ + "dependencies": { + "@statamic/cms": "file:./some/other/path" + }, + "devDependencies": { + "vite": "^9.0.0" + } +} +JSON); + + $this + ->artisan('statamic:setup-cp-vite') + ->expectsOutputToContain('Installed dependencies'); + + $this->assertStringContainsString(<<<'JSON' + "dependencies": { + "@statamic/cms": "file:./some/other/path" + }, + "devDependencies": { + "vite": "^9.0.0" } JSON, $this->files->get(base_path('package.json'))); }