From e1715db70568e0a4148c3a6ae1cf5e9075f8d91d Mon Sep 17 00:00:00 2001 From: axel7083 <42176370+axel7083@users.noreply.github.com> Date: Mon, 25 Sep 2023 09:26:42 +0200 Subject: [PATCH] feat: indeterminate progress bar (#4016) * feat: indeterminate progress bar Signed-off-by: axel7083 <42176370+axel7083@users.noreply.github.com> --- .../src/lib/task-manager/ProgressBar.spec.ts | 38 +++++++++++++++++++ .../src/lib/task-manager/ProgressBar.svelte | 35 +++++++++++++++++ .../lib/task-manager/TaskManagerItem.svelte | 8 +--- 3 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 packages/renderer/src/lib/task-manager/ProgressBar.spec.ts create mode 100644 packages/renderer/src/lib/task-manager/ProgressBar.svelte diff --git a/packages/renderer/src/lib/task-manager/ProgressBar.spec.ts b/packages/renderer/src/lib/task-manager/ProgressBar.spec.ts new file mode 100644 index 00000000000..2b5cb764c0d --- /dev/null +++ b/packages/renderer/src/lib/task-manager/ProgressBar.spec.ts @@ -0,0 +1,38 @@ +/********************************************************************** + * Copyright (C) 2023 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 '@testing-library/jest-dom/vitest'; +import { test, expect } from 'vitest'; +import { render, screen } from '@testing-library/svelte'; +import ProgressBar from '/@/lib/task-manager/ProgressBar.svelte'; + +test('Expect that the progress bar is indeterminate', async () => { + render(ProgressBar, { progress: undefined }); + + // expect the progress bar to have the indeterminate class + const progressBar = screen.getByRole('progressbar'); + expect(progressBar).toHaveClass('progress-bar-indeterminate'); +}); + +test('Expect that the progress bar is not indeterminate', async () => { + render(ProgressBar, { progress: 5 }); + + // expect the progress bar to not have the indeterminate class + const progressBar = screen.getByRole('progressbar'); + expect(progressBar.classList.contains('progress-bar-indeterminate')).toBe(false); +}); diff --git a/packages/renderer/src/lib/task-manager/ProgressBar.svelte b/packages/renderer/src/lib/task-manager/ProgressBar.svelte new file mode 100644 index 00000000000..e7780e550a9 --- /dev/null +++ b/packages/renderer/src/lib/task-manager/ProgressBar.svelte @@ -0,0 +1,35 @@ + + + + +