From daef97146724df5bbc96af5e5f5bd0059324e7b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Fri, 16 Feb 2024 21:54:09 +0100 Subject: [PATCH] chore: add getDockerInstallation test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anders F Björklund --- extensions/docker/src/docker-cli.spec.ts | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 extensions/docker/src/docker-cli.spec.ts diff --git a/extensions/docker/src/docker-cli.spec.ts b/extensions/docker/src/docker-cli.spec.ts new file mode 100644 index 00000000000..98809a484af --- /dev/null +++ b/extensions/docker/src/docker-cli.spec.ts @@ -0,0 +1,58 @@ +/********************************************************************** + * Copyright (C) 2024 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ***********************************************************************/ + +import * as extensionApi from '@podman-desktop/api'; + +import type { Mock } from 'vitest'; +import { expect, test, vi } from 'vitest'; +import { getDockerInstallation } from './docker-cli'; + +// mock the API +vi.mock('@podman-desktop/api', async () => { + return { + env: {}, + process: { + exec: vi.fn(), + }, + }; +}); + +test('should not return podman version', async () => { + const podmanOutput = 'podman version 4.8.3'; + + (extensionApi.process.exec as Mock).mockReturnValue({ + stdout: podmanOutput, + } as extensionApi.RunResult); + + const installedDocker = await getDockerInstallation(); + + expect(installedDocker).toBeUndefined(); +}); + +test('should return docker version', async () => { + const dockerOutput = 'Docker version 25.0.2, build 29cf629'; + + (extensionApi.process.exec as Mock).mockReturnValue({ + stdout: dockerOutput, + } as extensionApi.RunResult); + + const installedDocker = await getDockerInstallation(); + + expect(installedDocker).toBeDefined(); + expect(installedDocker.version).toBe('25.0.2'); +});