From bfa16a9e981634c03b69b2a9b6e90fa6e8ea4189 Mon Sep 17 00:00:00 2001 From: Rob Aiken Date: Wed, 29 Jan 2025 15:20:10 +0000 Subject: [PATCH] refactoring `create_dependency` function --- .../pnpm_workspace_updater_spec.rb | 62 +++--- .../npm_and_yarn/file_updater_spec.rb | 209 +++++------------- npm_and_yarn/spec/spec_helper.rb | 20 ++ 3 files changed, 98 insertions(+), 193 deletions(-) diff --git a/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_workspace_updater_spec.rb b/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_workspace_updater_spec.rb index c9be69abaaa..c3ab1d684e4 100644 --- a/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_workspace_updater_spec.rb +++ b/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_workspace_updater_spec.rb @@ -6,26 +6,6 @@ require "dependabot/dependency_file" require "dependabot/npm_and_yarn/file_updater/pnpm_workspace_updater" -def create_workspace_dependency(name:, version:, required_version:, previous_required_version:) - Dependabot::Dependency.new( - name: name, - version: version, - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: required_version, - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: previous_required_version, - groups: [], - source: nil - }] - ) -end - RSpec.describe Dependabot::NpmAndYarn::FileUpdater::PnpmWorkspaceUpdater do let(:pnpm_workspace_updater) do described_class.new( @@ -42,7 +22,8 @@ def create_workspace_dependency(name:, version:, required_version:, previous_req let(:dependencies) { [dependency] } let(:dependency) do - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "prettier", version: "3.3.0", required_version: "3.3.3", @@ -59,13 +40,15 @@ def create_workspace_dependency(name:, version:, required_version:, previous_req let(:project_name) { "pnpm/catalog_multiple" } let(:dependencies) do [ - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "prettier", version: "3.3.0", required_version: "^3.3.3", previous_required_version: "^3.3.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "left-pad", version: "1.0.1", required_version: "^1.0.3", @@ -82,13 +65,15 @@ def create_workspace_dependency(name:, version:, required_version:, previous_req let(:project_name) { "pnpm/catalogs_react" } let(:dependencies) do [ - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "18.0.0", required_version: "^18.2.3", previous_required_version: "^18.0.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "18.0.0", required_version: "^18.2.3", @@ -105,25 +90,29 @@ def create_workspace_dependency(name:, version:, required_version:, previous_req let(:project_name) { "pnpm/catalogs_multiple_reacts" } let(:dependencies) do [ - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "18.0.0", required_version: "^18.2.3", previous_required_version: "^18.0.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "18.0.0", required_version: "^18.2.3", previous_required_version: "^18.0.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "16.0.0", required_version: "^16.2.3", previous_required_version: "^16.0.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "16.0.0", required_version: "^16.2.3", @@ -143,31 +132,36 @@ def create_workspace_dependency(name:, version:, required_version:, previous_req let(:project_name) { "pnpm/catalogs_valid_yaml" } let(:dependencies) do [ - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "prettier", version: "3.3.0", required_version: "3.3.3", previous_required_version: "3.3.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "express", version: "4.15.2", required_version: "4.21.2", previous_required_version: "4.15.2" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "is-even", version: "0.1.2", required_version: "1.0.0", previous_required_version: "0.1.2" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "18.0.0", required_version: "^18.2.3", previous_required_version: "^18.0.0" ), - create_workspace_dependency( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "18.0.0", required_version: "^18.2.3", diff --git a/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater_spec.rb b/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater_spec.rb index 4a2c58b5da0..693ec3ee03c 100644 --- a/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater_spec.rb +++ b/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater_spec.rb @@ -4145,121 +4145,63 @@ context "with pnpm catalog protocol" do context "when individual dependency needs updating" do let(:project_name) { "pnpm/catalog_prettier" } - let(:dependency_name) { "prettier" } - let(:requirements) do - [{ - file: "pnpm-workspace.yaml", - requirement: "3.3.3", - groups: ["dependencies"], - source: nil - }] - end - let(:previous_requirements) do - [{ - file: "pnpm-workspace.yaml", - requirement: "3.3.0", - groups: ["dependencies"], - source: nil - }] + let(:dependencies) do + [ + create_dependency( + file: "pnpm-workspace.yaml", + name: "prettier", + version: "3.3.0", + required_version: "3.3.3", + previous_required_version: "3.3.0" + ) + ] end it "updates the workspace" do expect(updated_files.map(&:name)).to eq(%w(pnpm-workspace.yaml)) - expect(updated_pnpm_workspace.content).to include("prettier: 3.3.3") end end context "when updating multiple dependencies in catalogs" do let(:project_name) { "pnpm/catalogs_all_examples" } - let(:dependencies) do [ - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "18.2.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "^18.2.0", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "^18.0.0", - groups: [], - source: nil - }] + required_version: "^18.2.0", + previous_required_version: "^18.0.0" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "18.2.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "18.2.0", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "18.0.0", - groups: [], - source: nil - }] + required_version: "18.2.0", + previous_required_version: "18.0.0" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "16.2.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "16.2.0", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "16.0.0", - groups: [], - source: nil - }] + required_version: "16.2.0", + previous_required_version: "16.0.0" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "16.2.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "16.2.0", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "16.0.0", - groups: [], - source: nil - }] + required_version: "16.2.0", + previous_required_version: "16.0.0" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-icons", version: "4.3.1", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "4.3.14", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "4.3.1", - groups: [], - source: nil - }] + required_version: "4.3.14", + previous_required_version: "4.3.1" ) ] end @@ -4275,93 +4217,42 @@ context "when updating multiple dependencies with valid yaml" do let(:project_name) { "pnpm/catalogs_valid_yaml" } - let(:dependencies) do [ - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "prettier", version: "3.3.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "3.3.3", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "3.3.0", - groups: [], - source: nil - }] + required_version: "3.3.3", + previous_required_version: "3.3.0" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "express", version: "4.15.2", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "4.21.2", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "4.15.2", - groups: [], - source: nil - }] + required_version: "4.21.2", + previous_required_version: "4.15.2" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "is-even", version: "0.1.2", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "1.0.0", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "0.1.2", - groups: [], - source: nil - }] + required_version: "1.0.0", + previous_required_version: "0.1.2" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react", version: "18.0.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "^18.2.3", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "^18.0.0", - groups: [], - source: nil - }] + required_version: "^18.2.3", + previous_required_version: "^18.0.0" ), - Dependabot::Dependency.new( + create_dependency( + file: "pnpm-workspace.yaml", name: "react-dom", version: "18.0.0", - package_manager: "npm_and_yarn", - requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "^18.2.3", - groups: [], - source: nil - }], - previous_requirements: [{ - file: "pnpm-workspace.yaml", - requirement: "^18.0.0", - groups: [], - source: nil - }] + required_version: "^18.2.3", + previous_required_version: "^18.0.0" ) ] end diff --git a/npm_and_yarn/spec/spec_helper.rb b/npm_and_yarn/spec/spec_helper.rb index 50d7c79d638..f3087cbcb42 100644 --- a/npm_and_yarn/spec/spec_helper.rb +++ b/npm_and_yarn/spec/spec_helper.rb @@ -10,3 +10,23 @@ def require_common_spec(path) end require "#{common_dir}/spec/spec_helper.rb" + +def create_dependency(name:, version:, required_version:, previous_required_version:, file: "package.json") + Dependabot::Dependency.new( + name: name, + version: version, + package_manager: "npm_and_yarn", + requirements: [{ + file: file, + requirement: required_version, + groups: ["dependencies"], + source: nil + }], + previous_requirements: [{ + file: file, + requirement: previous_required_version, + groups: ["dependencies"], + source: nil + }] + ) +end