diff --git a/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap b/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap index 466774fff14d6bfc0f576da2b82d82585957b41c..a5b226ee83ee1b3e2bbfbbb41f596a6534839d25 100644 --- a/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap +++ b/lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap @@ -137,3 +137,26 @@ Array [ }, ] `; + +exports[`.updateArtifacts() updates Cargo.lock based on the lookupName, when given 1`] = ` +Array [ + Object { + "cmd": "cargo update --manifest-path Cargo.toml --package dep1", + "options": Object { + "cwd": "/tmp/github/some/repo", + "encoding": "utf-8", + "env": Object { + "HOME": "/home/user", + "HTTPS_PROXY": "https://example.com", + "HTTP_PROXY": "http://example.com", + "LANG": "en_US.UTF-8", + "LC_ALL": "en_US", + "NO_PROXY": "localhost", + "PATH": "/tmp/path", + }, + "maxBuffer": 10485760, + "timeout": 900000, + }, + }, +] +`; diff --git a/lib/manager/cargo/artifacts.spec.ts b/lib/manager/cargo/artifacts.spec.ts index c65ee47d8e255419c914c26f84e82f0b93e2e5dc..1e480556c013ea4829bf9c4c69e9f4de1a3be887 100644 --- a/lib/manager/cargo/artifacts.spec.ts +++ b/lib/manager/cargo/artifacts.spec.ts @@ -107,6 +107,28 @@ describe('.updateArtifacts()', () => { expect(execSnapshots).toMatchSnapshot(); }); + it('updates Cargo.lock based on the lookupName, when given', async () => { + fs.stat.mockResolvedValueOnce({ name: 'Cargo.lock' } as any); + git.getFile.mockResolvedValueOnce('Old Cargo.lock'); + const execSnapshots = mockExecAll(exec); + fs.readFile.mockResolvedValueOnce('New Cargo.lock' as any); + const updatedDeps = [ + { + depName: 'renamedDep1', + lookupName: 'dep1', + }, + ]; + expect( + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps, + newPackageFileContent: '{}', + config, + }) + ).not.toBeNull(); + expect(execSnapshots).toMatchSnapshot(); + }); + it('returns updated workspace Cargo.lock', async () => { fs.stat.mockRejectedValueOnce(new Error('crates/one/Cargo.lock not found')); fs.stat.mockRejectedValueOnce(new Error('crates/Cargo.lock not found')); diff --git a/lib/manager/cargo/artifacts.ts b/lib/manager/cargo/artifacts.ts index 351bdb3de46fae17a0826268211fa28e6ba6c6d4..02a3562dc7ab19aef7855d63381be917f179f76d 100644 --- a/lib/manager/cargo/artifacts.ts +++ b/lib/manager/cargo/artifacts.ts @@ -86,7 +86,7 @@ export async function updateArtifacts({ const dep = updatedDeps[i]; // Update dependency `${dep}` in Cargo.lock file corresponding to Cargo.toml file located // at ${localPackageFileName} path - await cargoUpdate(packageFileName, dep.depName); + await cargoUpdate(packageFileName, dep.lookupName ?? dep.depName); } if (isLockFileMaintenance) { await cargoUpdate(packageFileName);