Merge pull request #1643 from balena-os/1636-purge-null-volumes

Patch list volumes to always return an array
This commit is contained in:
bulldozer-balena[bot] 2021-04-02 00:39:41 +00:00 committed by GitHub
commit b1c5a56740
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -154,6 +154,6 @@ export async function removeOrphanedVolumes(
}
async function list(): Promise<VolumeInspectInfo[]> {
const allVolumes = await docker.listVolumes();
return _.get(allVolumes, 'Volumes', []);
const dockerResponse = await docker.listVolumes();
return Array.isArray(dockerResponse.Volumes) ? dockerResponse.Volumes : [];
}

View File

@ -5,6 +5,7 @@ import * as mockedDockerode from './lib/mocked-dockerode';
import * as volumeManager from '../src/compose/volume-manager';
import log from '../src/lib/supervisor-console';
import Volume from '../src/compose/volume';
import { VolumeInspectInfo } from 'dockerode';
describe('Volume Manager', () => {
let logDebug: SinonStub;
@ -74,6 +75,16 @@ describe('Volume Manager', () => {
});
});
it('can parse null Volumes', async () => {
// Setup volume data
// @ts-ignore
const volumeData: VolumeInspectInfo[] = null;
// Perform test
await mockedDockerode.testWithData({ volumes: volumeData }, async () => {
await expect(volumeManager.getAll()).to.eventually.deep.equal([]);
});
});
it('gets a Volume for an application', async () => {
// Setup volume data
const volumeData = [