podman-desktop/packages/renderer/src/lib/preferences/item-formats/StringItem.spec.ts
Florent Benoit 4a89ece59f chore: add missing copryright headers in files
related to https://github.com/containers/podman-desktop/issues/6372
Signed-off-by: Florent Benoit <fbenoit@redhat.com>
2024-03-15 11:53:23 +01:00

75 lines
2.5 KiB
TypeScript

/**********************************************************************
* Copyright (C) 2023-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 '@testing-library/jest-dom/vitest';
import { test, expect, vi, beforeAll } from 'vitest';
import { render, screen } from '@testing-library/svelte';
import type { IConfigurationPropertyRecordedSchema } from '../../../../../main/src/plugin/configuration-registry';
import StringItem from './StringItem.svelte';
beforeAll(() => {
(window as any).getConfigurationValue = vi.fn();
});
test('Ensure HTMLInputElement', async () => {
const record: IConfigurationPropertyRecordedSchema = {
id: 'record',
title: 'record',
parentId: 'parent.record',
description: 'record-description',
type: 'string',
};
render(StringItem, { record, value: '' });
const input = screen.getByLabelText('record-description');
expect(input).toBeInTheDocument();
expect(input instanceof HTMLInputElement).toBe(true);
});
test('Ensure placeholder is correctly used', async () => {
const record: IConfigurationPropertyRecordedSchema = {
id: 'record',
title: 'record',
parentId: 'parent.record',
description: 'record-description',
type: 'string',
placeholder: 'placeholder',
};
render(StringItem, { record, value: '' });
const input = screen.getByLabelText('record-description');
expect(input).toBeInTheDocument();
expect((input as HTMLInputElement).placeholder).toBe(record.placeholder);
});
test('Ensure HTMLInputElement', async () => {
const record: IConfigurationPropertyRecordedSchema = {
id: 'record',
title: 'record',
parentId: 'parent.record',
description: 'record-description',
type: 'string',
readonly: true,
};
render(StringItem, { record, value: '' });
const input = screen.getByLabelText('record-description');
expect(input).toBeInTheDocument();
expect((input as HTMLInputElement).readOnly).toBeTruthy();
});