Skip to content

Commit

Permalink
fix(cargo): use lockupName to specify updated package in cmd (#11048)
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristianMoesl committed Aug 5, 2021
1 parent 1f46c71 commit 11c3d38
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 1 deletion.
23 changes: 23 additions & 0 deletions lib/manager/cargo/__snapshots__/artifacts.spec.ts.snap
Expand Up @@ -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,
},
},
]
`;
22 changes: 22 additions & 0 deletions lib/manager/cargo/artifacts.spec.ts
Expand Up @@ -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'));
Expand Down
2 changes: 1 addition & 1 deletion lib/manager/cargo/artifacts.ts
Expand Up @@ -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);
Expand Down

0 comments on commit 11c3d38

Please sign in to comment.