feat: ui:disabled allowed in GitlabRepoPicker
Signed-off-by: Nikunj Hudka <nikunjhudka123@gmail.com>
This commit is contained in:
@@ -31,6 +31,73 @@ describe('GitlabRepoPicker', () => {
|
||||
}),
|
||||
),
|
||||
};
|
||||
|
||||
describe('GitlabRepoPicker - isDisabled', () => {
|
||||
it('disables owner input when isDisabled is true', async () => {
|
||||
const { getByRole } = await renderInTestApp(
|
||||
<TestApiProvider apis={[[scaffolderApiRef, scaffolderApiMock]]}>
|
||||
<GitlabRepoPicker
|
||||
onChange={jest.fn()}
|
||||
rawErrors={[]}
|
||||
state={{ repoName: 'repo' }}
|
||||
isDisabled
|
||||
/>
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(getByRole('textbox')).toBeDisabled();
|
||||
});
|
||||
|
||||
it('does not disable owner input when isDisabled is false', async () => {
|
||||
const { getByRole } = await renderInTestApp(
|
||||
<TestApiProvider apis={[[scaffolderApiRef, scaffolderApiMock]]}>
|
||||
<GitlabRepoPicker
|
||||
onChange={jest.fn()}
|
||||
rawErrors={[]}
|
||||
state={{ repoName: 'repo' }}
|
||||
isDisabled={false}
|
||||
/>
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(getByRole('textbox')).not.toBeDisabled();
|
||||
});
|
||||
|
||||
it('disables select input when allowedOwners are provided and isDisabled is true', async () => {
|
||||
const allowedOwners = ['owner1', 'owner2'];
|
||||
const { getByRole } = await renderInTestApp(
|
||||
<TestApiProvider apis={[[scaffolderApiRef, scaffolderApiMock]]}>
|
||||
<GitlabRepoPicker
|
||||
onChange={jest.fn()}
|
||||
rawErrors={[]}
|
||||
state={{ repoName: 'repo' }}
|
||||
allowedOwners={allowedOwners}
|
||||
isDisabled
|
||||
/>
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(getByRole('combobox')).toBeDisabled();
|
||||
});
|
||||
|
||||
it('does not disable select input when allowedOwners are provided and isDisabled is false', async () => {
|
||||
const allowedOwners = ['owner1', 'owner2'];
|
||||
const { getByRole } = await renderInTestApp(
|
||||
<TestApiProvider apis={[[scaffolderApiRef, scaffolderApiMock]]}>
|
||||
<GitlabRepoPicker
|
||||
onChange={jest.fn()}
|
||||
rawErrors={[]}
|
||||
state={{ repoName: 'repo' }}
|
||||
allowedOwners={allowedOwners}
|
||||
isDisabled={false}
|
||||
/>
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(getByRole('combobox')).not.toBeDisabled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('owner field', () => {
|
||||
it('renders a select if there is a list of allowed owners', async () => {
|
||||
const allowedOwners = ['owner1', 'owner2'];
|
||||
|
||||
@@ -33,7 +33,14 @@ export const GitlabRepoPicker = (
|
||||
accessToken?: string;
|
||||
}>,
|
||||
) => {
|
||||
const { allowedOwners = [], state, onChange, rawErrors, accessToken } = props;
|
||||
const {
|
||||
allowedOwners = [],
|
||||
state,
|
||||
onChange,
|
||||
rawErrors,
|
||||
accessToken,
|
||||
isDisabled,
|
||||
} = props;
|
||||
const [availableGroups, setAvailableGroups] = useState<
|
||||
{ title: string; id: string }[]
|
||||
>([]);
|
||||
@@ -128,7 +135,7 @@ export const GitlabRepoPicker = (
|
||||
),
|
||||
})
|
||||
}
|
||||
disabled={allowedOwners.length === 1}
|
||||
disabled={isDisabled || allowedOwners.length === 1}
|
||||
selected={owner}
|
||||
items={ownerItems}
|
||||
/>
|
||||
@@ -147,10 +154,12 @@ export const GitlabRepoPicker = (
|
||||
<TextField
|
||||
{...params}
|
||||
label={t('fields.gitlabRepoPicker.owner.title')}
|
||||
disabled={isDisabled}
|
||||
required
|
||||
/>
|
||||
)}
|
||||
freeSolo
|
||||
disabled={isDisabled}
|
||||
autoSelect
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user