diff --git a/packages/main/src/plugin/kubernetes-client.ts b/packages/main/src/plugin/kubernetes-client.ts index d74d26c4eee..ffe4de9e3ec 100644 --- a/packages/main/src/plugin/kubernetes-client.ts +++ b/packages/main/src/plugin/kubernetes-client.ts @@ -197,6 +197,7 @@ export class KubernetesClient { type: 'string', default: defaultKubeconfigPath, format: 'file', + readonly: false, }, }, }; diff --git a/packages/renderer/src/lib/preferences/PreferencesRenderingItemFormat.spec.ts b/packages/renderer/src/lib/preferences/PreferencesRenderingItemFormat.spec.ts index 71c5de6b8be..1183924d244 100644 --- a/packages/renderer/src/lib/preferences/PreferencesRenderingItemFormat.spec.ts +++ b/packages/renderer/src/lib/preferences/PreferencesRenderingItemFormat.spec.ts @@ -160,10 +160,28 @@ test('Expect a fileinput when record is type string and format file', async () = expect(readOnlyInput).toBeInTheDocument(); expect(readOnlyInput instanceof HTMLInputElement).toBe(true); expect((readOnlyInput as HTMLInputElement).placeholder).toBe(record.placeholder); + expect((readOnlyInput as HTMLInputElement).readOnly).toBeTruthy(); const input = screen.getByLabelText('browse'); expect(input).toBeInTheDocument(); }); +test('Expect an editable text fileinput when record is type string and format file', async () => { + const record: IConfigurationPropertyRecordedSchema = { + title: 'record', + parentId: 'parent.record', + placeholder: 'Example: text', + description: 'record-description', + type: 'string', + format: 'file', + readonly: false, + }; + await awaitRender(record, {}); + const writeInput = screen.getByLabelText('record-description'); + expect(writeInput).toBeInTheDocument(); + expect(writeInput instanceof HTMLInputElement).toBe(true); + expect((writeInput as HTMLInputElement).readOnly).toBeFalsy(); +}); + test('Expect a fileinput when record is type string and format folder', async () => { const record: IConfigurationPropertyRecordedSchema = { title: 'record', diff --git a/packages/renderer/src/lib/preferences/item-formats/FileItem.svelte b/packages/renderer/src/lib/preferences/item-formats/FileItem.svelte index c054998f42b..2fa9afb2af3 100644 --- a/packages/renderer/src/lib/preferences/item-formats/FileItem.svelte +++ b/packages/renderer/src/lib/preferences/item-formats/FileItem.svelte @@ -30,7 +30,7 @@ $: if (value !== lastValue) { id="input-standard-{record.id}" name={record.id} bind:value={value} - readonly + readonly={record.readonly ?? true} placeholder={record.placeholder} options={dialogOptions} aria-invalid={invalidEntry}