Wizard: add support of upload custom repositories
This commit is contained in:
parent
e21d09b909
commit
048baffc3f
14 changed files with 162 additions and 108 deletions
|
|
@ -265,13 +265,8 @@ const Packages = () => {
|
|||
searchCustomRpms({
|
||||
apiContentUnitSearchRequest: {
|
||||
search: debouncedSearchTerm,
|
||||
urls: customRepositories.flatMap((repo) => {
|
||||
if (!repo.baseurl) {
|
||||
throw new Error(
|
||||
`Repository (id: ${repo.id}, name: ${repo?.name}) is missing baseurl`
|
||||
);
|
||||
}
|
||||
return repo.baseurl;
|
||||
uuids: customRepositories.flatMap((repo) => {
|
||||
return repo.id;
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
|
@ -326,13 +321,8 @@ const Packages = () => {
|
|||
searchCustomGroups({
|
||||
apiContentUnitSearchRequest: {
|
||||
search: debouncedSearchTerm.substr(1),
|
||||
urls: customRepositories?.flatMap((repo) => {
|
||||
if (!repo.baseurl) {
|
||||
throw new Error(
|
||||
`Repository (id: ${repo.id}, name: ${repo?.name}) is missing baseurl`
|
||||
);
|
||||
}
|
||||
return repo.baseurl;
|
||||
uuids: customRepositories.flatMap((repo) => {
|
||||
return repo.id;
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import { BulkSelect } from './components/BulkSelect';
|
|||
import Empty from './components/Empty';
|
||||
import { Error } from './components/Error';
|
||||
import { Loading } from './components/Loading';
|
||||
import UploadRepositoryLabel from './components/UploadRepositoryLabel';
|
||||
import {
|
||||
convertSchemaToIBCustomRepo,
|
||||
convertSchemaToIBPayloadRepo,
|
||||
|
|
@ -81,10 +82,10 @@ const Repositories = () => {
|
|||
() =>
|
||||
new Set(
|
||||
[
|
||||
...customRepositories.map(({ baseurl }) => baseurl || []).flat(1),
|
||||
...(payloadRepositories.map(({ baseurl }) => baseurl) || []),
|
||||
...(recommendedRepos.map(({ url }) => url) || []),
|
||||
].filter((url) => !!url) as string[]
|
||||
...customRepositories.map(({ id }) => id).flat(1),
|
||||
...payloadRepositories.map(({ id }) => id),
|
||||
...recommendedRepos.map(({ uuid }) => uuid),
|
||||
].filter((id) => !!id) as string[]
|
||||
),
|
||||
[customRepositories, payloadRepositories, recommendedRepos]
|
||||
);
|
||||
|
|
@ -101,10 +102,10 @@ const Repositories = () => {
|
|||
{
|
||||
availableForArch: arch,
|
||||
availableForVersion: version,
|
||||
origin: ContentOrigin.EXTERNAL,
|
||||
origin: ContentOrigin.CUSTOM,
|
||||
limit: 999, // O.O Oh dear, if possible this whole call should be removed
|
||||
offset: 0,
|
||||
url: [...initialSelectedState].join(','),
|
||||
uuid: [...initialSelectedState].join(','),
|
||||
},
|
||||
{ refetchOnMountOrArgChange: false }
|
||||
);
|
||||
|
|
@ -126,11 +127,11 @@ const Repositories = () => {
|
|||
availableForArch: arch,
|
||||
availableForVersion: version,
|
||||
contentType: 'rpm',
|
||||
origin: ContentOrigin.EXTERNAL,
|
||||
origin: ContentOrigin.CUSTOM,
|
||||
limit: perPage,
|
||||
offset: perPage * (page - 1),
|
||||
search: debouncedFilterValue,
|
||||
url:
|
||||
uuid:
|
||||
toggleSelected === 'toggle-group-selected'
|
||||
? [...selected].join(',')
|
||||
: '',
|
||||
|
|
@ -153,17 +154,17 @@ const Repositories = () => {
|
|||
if ((repo as ApiRepositoryResponseRead[])?.length) {
|
||||
reposToAdd = (repo as ApiRepositoryResponseRead[]).filter(
|
||||
(r) =>
|
||||
r.url &&
|
||||
!isRepoDisabled(r, selected.has(r.url))[0] &&
|
||||
!selected.has(r.url)
|
||||
r.uuid &&
|
||||
!isRepoDisabled(r, selected.has(r.uuid))[0] &&
|
||||
!selected.has(r.uuid)
|
||||
);
|
||||
} else {
|
||||
// Then it should be a single item
|
||||
const singleRepo = repo as ApiRepositoryResponseRead;
|
||||
if (
|
||||
singleRepo?.url &&
|
||||
!isRepoDisabled(singleRepo, selected.has(singleRepo.url))[0] &&
|
||||
!selected.has(singleRepo.url)
|
||||
singleRepo?.uuid &&
|
||||
!isRepoDisabled(singleRepo, selected.has(singleRepo.uuid))[0] &&
|
||||
!selected.has(singleRepo.uuid)
|
||||
) {
|
||||
reposToAdd.push(singleRepo);
|
||||
}
|
||||
|
|
@ -184,9 +185,11 @@ const Repositories = () => {
|
|||
};
|
||||
|
||||
const clearSelected = () => {
|
||||
const recommendedReposSet = new Set(recommendedRepos.map(({ url }) => url));
|
||||
const recommendedReposSet = new Set(
|
||||
recommendedRepos.map(({ uuid }) => uuid)
|
||||
);
|
||||
const initiallySelected = [...selected].some(
|
||||
(url) => url && initialSelectedState.has(url)
|
||||
(uuid) => uuid && initialSelectedState.has(uuid)
|
||||
);
|
||||
|
||||
if (initiallySelected) {
|
||||
|
|
@ -197,17 +200,12 @@ const Repositories = () => {
|
|||
|
||||
dispatch(
|
||||
changeCustomRepositories(
|
||||
customRepositories.filter(({ baseurl }) =>
|
||||
baseurl?.some((url) => recommendedReposSet.has(url))
|
||||
)
|
||||
customRepositories.filter(({ id }) => recommendedReposSet.has(id))
|
||||
)
|
||||
);
|
||||
|
||||
dispatch(
|
||||
changePayloadRepositories(
|
||||
payloadRepositories.filter(({ baseurl }) =>
|
||||
recommendedReposSet.has(baseurl)
|
||||
)
|
||||
payloadRepositories.filter(({ id }) => recommendedReposSet.has(id))
|
||||
)
|
||||
);
|
||||
};
|
||||
|
|
@ -217,41 +215,34 @@ const Repositories = () => {
|
|||
) => {
|
||||
if ((repo as ApiRepositoryResponseRead[])?.length) {
|
||||
const itemsToRemove = new Set(
|
||||
(repo as ApiRepositoryResponseRead[]).map(({ url }) => url)
|
||||
(repo as ApiRepositoryResponseRead[]).map(({ uuid }) => uuid)
|
||||
);
|
||||
|
||||
dispatch(
|
||||
changeCustomRepositories(
|
||||
customRepositories.filter(
|
||||
({ baseurl }) => !baseurl?.some((url) => itemsToRemove.has(url))
|
||||
)
|
||||
customRepositories.filter(({ id }) => !itemsToRemove.has(id))
|
||||
)
|
||||
);
|
||||
|
||||
dispatch(
|
||||
changePayloadRepositories(
|
||||
payloadRepositories.filter(
|
||||
({ baseurl }) => !itemsToRemove.has(baseurl)
|
||||
)
|
||||
payloadRepositories.filter(({ id }) => !itemsToRemove.has(id))
|
||||
)
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const urlToRemove = (repo as ApiRepositoryResponseRead)?.url;
|
||||
if (urlToRemove) {
|
||||
const uuidToRemove = (repo as ApiRepositoryResponseRead)?.uuid;
|
||||
if (uuidToRemove) {
|
||||
dispatch(
|
||||
changeCustomRepositories(
|
||||
customRepositories.filter(
|
||||
({ baseurl }) => !baseurl?.some((url) => urlToRemove === url)
|
||||
)
|
||||
customRepositories.filter(({ id }) => uuidToRemove !== id)
|
||||
)
|
||||
);
|
||||
|
||||
dispatch(
|
||||
changePayloadRepositories(
|
||||
payloadRepositories.filter(({ baseurl }) => urlToRemove !== baseurl)
|
||||
payloadRepositories.filter(({ id }) => uuidToRemove !== id)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
@ -264,11 +255,11 @@ const Repositories = () => {
|
|||
if (selected) return addSelected(repo);
|
||||
if ((repo as ApiRepositoryResponseRead[])?.length) {
|
||||
const initiallySelectedItems = (repo as ApiRepositoryResponseRead[]).map(
|
||||
({ url }) => url
|
||||
({ uuid }) => uuid
|
||||
);
|
||||
|
||||
const hasSome = initiallySelectedItems.some(
|
||||
(url) => url && initialSelectedState.has(url)
|
||||
(uuid) => uuid && initialSelectedState.has(uuid)
|
||||
);
|
||||
|
||||
if (hasSome) {
|
||||
|
|
@ -278,11 +269,13 @@ const Repositories = () => {
|
|||
}
|
||||
} else {
|
||||
const isInitiallySelected =
|
||||
(repo as ApiRepositoryResponseRead).url &&
|
||||
initialSelectedState.has((repo as ApiRepositoryResponseRead).url || '');
|
||||
(repo as ApiRepositoryResponseRead).uuid &&
|
||||
initialSelectedState.has(
|
||||
(repo as ApiRepositoryResponseRead).uuid || ''
|
||||
);
|
||||
if (isInitiallySelected) {
|
||||
setModalOpen(true);
|
||||
setReposToRemove([(repo as ApiRepositoryResponseRead).url as string]);
|
||||
setReposToRemove([(repo as ApiRepositoryResponseRead).uuid as string]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -296,10 +289,10 @@ const Repositories = () => {
|
|||
previousReposData.length !== initialSelectedState.size &&
|
||||
previousReposData.length < initialSelectedState.size
|
||||
) {
|
||||
const prevSet = new Set(previousReposData.map(({ url }) => url));
|
||||
const prevSet = new Set(previousReposData.map(({ uuid }) => uuid));
|
||||
const itemsToRemove = [...initialSelectedState]
|
||||
.filter((url) => !prevSet.has(url))
|
||||
.map((url) => ({ url })) as ApiRepositoryResponseRead[];
|
||||
.filter((uuid) => !prevSet.has(uuid))
|
||||
.map((uuid) => ({ uuid })) as ApiRepositoryResponseRead[];
|
||||
removeSelected(itemsToRemove);
|
||||
return initialSelectedState.size - previousReposData.length;
|
||||
}
|
||||
|
|
@ -382,17 +375,13 @@ const Repositories = () => {
|
|||
|
||||
dispatch(
|
||||
changeCustomRepositories(
|
||||
customRepositories.filter(
|
||||
({ baseurl }) => !baseurl?.some((url) => itemsToRemove.has(url))
|
||||
)
|
||||
customRepositories.filter(({ id }) => !itemsToRemove.has(id))
|
||||
)
|
||||
);
|
||||
|
||||
dispatch(
|
||||
changePayloadRepositories(
|
||||
payloadRepositories.filter(
|
||||
({ baseurl }) => !itemsToRemove.has(baseurl || '')
|
||||
)
|
||||
payloadRepositories.filter(({ id }) => !itemsToRemove.has(id || ''))
|
||||
)
|
||||
);
|
||||
|
||||
|
|
@ -446,7 +435,8 @@ const Repositories = () => {
|
|||
(!selected.size && !contentList.length) ||
|
||||
contentList.every(
|
||||
(repo) =>
|
||||
repo.url && isRepoDisabled(repo, selected.has(repo.url))[0]
|
||||
repo.uuid &&
|
||||
isRepoDisabled(repo, selected.has(repo.uuid))[0]
|
||||
)
|
||||
}
|
||||
/>
|
||||
|
|
@ -514,9 +504,11 @@ const Repositories = () => {
|
|||
<Tbody>
|
||||
{contentList.map((repo, rowIndex) => {
|
||||
const {
|
||||
uuid = '',
|
||||
url = '',
|
||||
name,
|
||||
status = '',
|
||||
origin = '',
|
||||
distribution_arch,
|
||||
distribution_versions,
|
||||
package_count,
|
||||
|
|
@ -526,14 +518,17 @@ const Repositories = () => {
|
|||
|
||||
const [isDisabled, disabledReason] = isRepoDisabled(
|
||||
repo,
|
||||
selected.has(url)
|
||||
selected.has(uuid)
|
||||
);
|
||||
|
||||
return (
|
||||
<Tr key={url}>
|
||||
<Tr
|
||||
key={`${uuid}-${rowIndex}`}
|
||||
data-testid="repositories-row"
|
||||
>
|
||||
<Td
|
||||
select={{
|
||||
isSelected: selected.has(url),
|
||||
isSelected: selected.has(uuid),
|
||||
rowIndex: rowIndex,
|
||||
onSelect: (_, isSelecting) =>
|
||||
handleAddRemove(repo, isSelecting),
|
||||
|
|
@ -543,18 +538,24 @@ const Repositories = () => {
|
|||
/>
|
||||
<Td dataLabel={'Name'}>
|
||||
{name}
|
||||
<br />
|
||||
<Button
|
||||
component="a"
|
||||
target="_blank"
|
||||
variant="link"
|
||||
icon={<ExternalLinkAltIcon />}
|
||||
iconPosition="right"
|
||||
isInline
|
||||
href={url}
|
||||
>
|
||||
{url}
|
||||
</Button>
|
||||
{origin === ContentOrigin.UPLOAD ? (
|
||||
<UploadRepositoryLabel />
|
||||
) : (
|
||||
<>
|
||||
<br />
|
||||
<Button
|
||||
component="a"
|
||||
target="_blank"
|
||||
variant="link"
|
||||
icon={<ExternalLinkAltIcon />}
|
||||
iconPosition="right"
|
||||
isInline
|
||||
href={url}
|
||||
>
|
||||
{url}
|
||||
</Button>
|
||||
</>
|
||||
)}
|
||||
</Td>
|
||||
<Td dataLabel={'Architecture'}>
|
||||
{distribution_arch || '-'}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,11 @@ const RepositoriesStatus = ({
|
|||
isInline
|
||||
isPlain
|
||||
/>
|
||||
<p className="pf-v5-u-pb-md">Cannot fetch {repoUrl}</p>
|
||||
{repoUrl ? (
|
||||
<p className="pf-v5-u-pb-md">Cannot fetch {repoUrl}</p>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
{(repoIntrospections || repoFailCount) && (
|
||||
<>
|
||||
<DescriptionList
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ export function BulkSelect({
|
|||
}: BulkSelectProps) {
|
||||
const [dropdownIsOpen, setDropdownIsOpen] = useState(false);
|
||||
|
||||
const allChecked = !contentList.some(({ url }) => !selected.has(url!));
|
||||
const allChecked = !contentList.some(({ uuid }) => !selected.has(uuid!));
|
||||
|
||||
const someChecked =
|
||||
allChecked || contentList.some(({ url }) => selected.has(url!));
|
||||
allChecked || contentList.some(({ uuid }) => selected.has(uuid!));
|
||||
|
||||
const toggleDropdown = () => setDropdownIsOpen(!dropdownIsOpen);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
import React from 'react';
|
||||
|
||||
import { Button, Label, Text, Tooltip } from '@patternfly/react-core';
|
||||
import { ExternalLinkAltIcon, UploadIcon } from '@patternfly/react-icons';
|
||||
|
||||
import { CONTENT_URL } from '../../../../../constants';
|
||||
|
||||
const UploadRepositoryLabel = () => {
|
||||
return (
|
||||
<Tooltip
|
||||
content={
|
||||
<Text>
|
||||
Upload repository: Snapshots will only be taken when new content is
|
||||
uploaded.
|
||||
<Button
|
||||
component="a"
|
||||
target="_blank"
|
||||
variant="link"
|
||||
iconPosition="right"
|
||||
isInline
|
||||
icon={<ExternalLinkAltIcon />}
|
||||
href={CONTENT_URL}
|
||||
>
|
||||
Create and manage repositories here.
|
||||
</Button>
|
||||
</Text>
|
||||
}
|
||||
>
|
||||
<Label
|
||||
variant="outline"
|
||||
isCompact
|
||||
icon={<UploadIcon />}
|
||||
style={{ marginLeft: '8px' }}
|
||||
>
|
||||
Upload
|
||||
</Label>
|
||||
</Tooltip>
|
||||
);
|
||||
};
|
||||
|
||||
export default UploadRepositoryLabel;
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
import { ContentOrigin } from '../../../../../constants';
|
||||
import { ApiRepositoryResponseRead } from '../../../../../store/contentSourcesApi';
|
||||
import {
|
||||
CustomRepository,
|
||||
|
|
@ -11,7 +12,7 @@ export const convertSchemaToIBCustomRepo = (
|
|||
const imageBuilderRepo: CustomRepository = {
|
||||
id: repo.uuid!,
|
||||
name: repo.name,
|
||||
baseurl: [repo.url!],
|
||||
baseurl: repo.origin === ContentOrigin.UPLOAD ? undefined : [repo.url!],
|
||||
check_gpg: false,
|
||||
};
|
||||
// only include the flag if enabled
|
||||
|
|
@ -32,7 +33,8 @@ export const convertSchemaToIBPayloadRepo = (
|
|||
repo: ApiRepositoryResponseRead
|
||||
) => {
|
||||
const imageBuilderRepo: Repository = {
|
||||
baseurl: repo.url,
|
||||
id: repo.uuid!,
|
||||
baseurl: repo.origin === ContentOrigin.UPLOAD ? undefined : repo.url!,
|
||||
rhsm: false,
|
||||
check_gpg: false,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,18 +28,18 @@ import {
|
|||
import PackageInfoNotAvailablePopover from '../Packages/components/PackageInfoNotAvailablePopover';
|
||||
|
||||
type repoPropType = {
|
||||
repoUrl: string[] | undefined;
|
||||
repoUuid: string | undefined;
|
||||
};
|
||||
|
||||
const RepoName = ({ repoUrl }: repoPropType) => {
|
||||
const RepoName = ({ repoUuid }: repoPropType) => {
|
||||
const { data, isSuccess, isFetching, isError } = useListRepositoriesQuery(
|
||||
{
|
||||
// @ts-ignore if repoUrl is undefined the query is going to get skipped, so it's safe to ignore the linter here
|
||||
url: repoUrl,
|
||||
uuid: repoUuid ?? '',
|
||||
contentType: 'rpm',
|
||||
origin: ContentOrigin.EXTERNAL,
|
||||
origin: ContentOrigin.CUSTOM,
|
||||
},
|
||||
{ skip: !repoUrl }
|
||||
{ skip: !repoUuid }
|
||||
);
|
||||
|
||||
const errorLoading = () => {
|
||||
|
|
@ -64,7 +64,7 @@ const RepoName = ({ repoUrl }: repoPropType) => {
|
|||
- query finished and the repo was found -> render the name of the repo
|
||||
- query finished, but the repo was not found -> render an error
|
||||
*/}
|
||||
{isSuccess && data?.data?.[0]?.name && <p>{data.data?.[0].name}</p>}
|
||||
{isSuccess && data?.data?.[0]?.name && <p>{data.data[0].name}</p>}
|
||||
{isSuccess && !data?.data?.[0]?.name && errorLoading()}
|
||||
{isFetching && <Spinner size="md" />}
|
||||
{isError && errorLoading()}
|
||||
|
|
@ -129,7 +129,7 @@ export const SnapshotTable = ({
|
|||
}) => {
|
||||
const { data, isSuccess, isLoading, isError } = useListRepositoriesQuery({
|
||||
uuid: snapshotForDate.map(({ repository_uuid }) => repository_uuid).join(),
|
||||
origin: ContentOrigin.REDHAT + ',' + ContentOrigin.EXTERNAL, // Make sure to show both redhat and external
|
||||
origin: ContentOrigin.REDHAT + ',' + ContentOrigin.CUSTOM, // Make sure to show both redhat and external
|
||||
});
|
||||
|
||||
const isAfterSet = new Set(
|
||||
|
|
@ -262,10 +262,10 @@ export const RepositoriesTable = () => {
|
|||
</Tr>
|
||||
</Thead>
|
||||
<Tbody data-testid="repositories-tbody-review">
|
||||
{repositoriesList?.map((repo, repoIndex) => (
|
||||
{repositoriesList.map((repo, repoIndex) => (
|
||||
<Tr key={repoIndex + 1}>
|
||||
<Td className="pf-m-width-60">
|
||||
<RepoName repoUrl={repo.baseurl} />
|
||||
<RepoName repoUuid={repo.id} />
|
||||
</Td>
|
||||
</Tr>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import {
|
|||
BlueprintResponse,
|
||||
CreateBlueprintRequest,
|
||||
Customizations,
|
||||
CustomRepository,
|
||||
DistributionProfileItem,
|
||||
Distributions,
|
||||
File,
|
||||
|
|
@ -746,7 +747,13 @@ const getFirewall = (state: RootState) => {
|
|||
};
|
||||
|
||||
const getCustomRepositories = (state: RootState) => {
|
||||
const customRepositories = selectCustomRepositories(state);
|
||||
const customRepositories = selectCustomRepositories(state).map((cr) => {
|
||||
return {
|
||||
...cr,
|
||||
baseurl: cr.baseurl && cr.baseurl.length !== 0 ? cr.baseurl : undefined,
|
||||
} as CustomRepository;
|
||||
});
|
||||
|
||||
const recommendedRepositories = selectRecommendedRepositories(state);
|
||||
|
||||
const customAndRecommendedRepositories = [...customRepositories];
|
||||
|
|
|
|||
|
|
@ -99,14 +99,11 @@ const getRows = async () => {
|
|||
|
||||
const comparePackageSearchResults = async () => {
|
||||
const availablePackages = await getRows();
|
||||
await waitFor(() => expect(availablePackages).toHaveLength(6));
|
||||
await waitFor(() => expect(availablePackages).toHaveLength(3));
|
||||
|
||||
expect(availablePackages[0]).toHaveTextContent('test');
|
||||
expect(availablePackages[1]).toHaveTextContent('test-sources');
|
||||
expect(availablePackages[2]).toHaveTextContent('testPkg');
|
||||
expect(availablePackages[3]).toHaveTextContent('testPkg-sources');
|
||||
expect(availablePackages[4]).toHaveTextContent('lib-test');
|
||||
expect(availablePackages[5]).toHaveTextContent('lib-test-sources');
|
||||
expect(availablePackages[1]).toHaveTextContent('testPkg');
|
||||
expect(availablePackages[2]).toHaveTextContent('lib-test');
|
||||
};
|
||||
|
||||
const clickFirstPackageCheckbox = async () => {
|
||||
|
|
@ -371,9 +368,9 @@ describe('Step Packages', () => {
|
|||
await typeIntoSearchBox('test');
|
||||
|
||||
await toggleSelected();
|
||||
const selectedPackages = await getRows();
|
||||
expect(selectedPackages[0]).toHaveTextContent('test');
|
||||
expect(selectedPackages[1]).toHaveTextContent('test-sources');
|
||||
const availablePackages = await getRows();
|
||||
expect(availablePackages[0]).toHaveTextContent('test');
|
||||
expect(availablePackages[1]).toHaveTextContent('testPkg');
|
||||
});
|
||||
|
||||
test('should display recommendations', async () => {
|
||||
|
|
@ -425,9 +422,9 @@ describe('Step Packages', () => {
|
|||
|
||||
// the pagination in the top right
|
||||
const top = await screen.findByTestId('packages-pagination-top');
|
||||
expect(top).toHaveTextContent('of 6');
|
||||
expect(top).toHaveTextContent('of 3');
|
||||
const bottom = await screen.findByTestId('packages-pagination-bottom');
|
||||
expect(bottom).toHaveTextContent('of 6');
|
||||
expect(bottom).toHaveTextContent('of 3');
|
||||
});
|
||||
|
||||
test('itemcount correct after toggling selected', async () => {
|
||||
|
|
|
|||
|
|
@ -288,6 +288,7 @@ describe('Repositories request generated correctly', () => {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v2.0.22 (GNU/Linux)\n\nmQENBE5OMmIBCAD+FPYKGriGGf7NqwKfWC83cBV01gabgVWQmZbMcFzeW+hMsgxH\nW6iimD0RsfZ9oEbfJCPG0CRSZ7ppq5pKamYs2+EJ8Q2ysOFHHwpGrA2C8zyNAs4I\nQxnZZIbETgcSwFtDun0XiqPwPZgyuXVm9PAbLZRbfBzm8wR/3SWygqZBBLdQk5TE\nfDR+Eny/M1RVR4xClECONF9UBB2ejFdI1LD45APbP2hsN/piFByU1t7yK2gpFyRt\n97WzGHn9MV5/TL7AmRPM4pcr3JacmtCnxXeCZ8nLqedoSuHFuhwyDnlAbu8I16O5\nXRrfzhrHRJFM1JnIiGmzZi6zBvH0ItfyX6ttABEBAAG0KW5naW54IHNpZ25pbmcg\na2V5IDxzaWduaW5nLWtleUBuZ2lueC5jb20+iQE+BBMBAgAoAhsDBgsJCAcDAgYV\nCAIJCgsEFgIDAQIeAQIXgAUCV2K1+AUJGB4fQQAKCRCr9b2Ce9m/YloaB/9XGrol\nkocm7l/tsVjaBQCteXKuwsm4XhCuAQ6YAwA1L1UheGOG/aa2xJvrXE8X32tgcTjr\nKoYoXWcdxaFjlXGTt6jV85qRguUzvMOxxSEM2Dn115etN9piPl0Zz+4rkx8+2vJG\nF+eMlruPXg/zd88NvyLq5gGHEsFRBMVufYmHtNfcp4okC1klWiRIRSdp4QY1wdrN\n1O+/oCTl8Bzy6hcHjLIq3aoumcLxMjtBoclc/5OTioLDwSDfVx7rWyfRhcBzVbwD\noe/PD08AoAA6fxXvWjSxy+dGhEaXoTHjkCbz/l6NxrK3JFyauDgU4K4MytsZ1HDi\nMgMW8hZXxszoICTTiQEcBBABAgAGBQJOTkelAAoJEKZP1bF62zmo79oH/1XDb29S\nYtWp+MTJTPFEwlWRiyRuDXy3wBd/BpwBRIWfWzMs1gnCjNjk0EVBVGa2grvy9Jtx\nJKMd6l/PWXVucSt+U/+GO8rBkw14SdhqxaS2l14v6gyMeUrSbY3XfToGfwHC4sa/\nThn8X4jFaQ2XN5dAIzJGU1s5JA0tjEzUwCnmrKmyMlXZaoQVrmORGjCuH0I0aAFk\nRS0UtnB9HPpxhGVbs24xXZQnZDNbUQeulFxS4uP3OLDBAeCHl+v4t/uotIad8v6J\nSO93vc1evIje6lguE81HHmJn9noxPItvOvSMb2yPsE8mH4cJHRTFNSEhPW6ghmlf\nWa9ZwiVX5igxcvaIRgQQEQIABgUCTk5b0gAKCRDs8OkLLBcgg1G+AKCnacLb/+W6\ncflirUIExgZdUJqoogCeNPVwXiHEIVqithAM1pdY/gcaQZmIRgQQEQIABgUCTk5f\nYQAKCRCpN2E5pSTFPnNWAJ9gUozyiS+9jf2rJvqmJSeWuCgVRwCcCUFhXRCpQO2Y\nVa3l3WuB+rgKjsQ=\n=EWWI\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'f087f9ad-dfe6-4627-9d53-447d1a997de5',
|
||||
rhsm: false,
|
||||
};
|
||||
|
||||
|
|
|
|||
8
src/test/fixtures/composes.ts
vendored
8
src/test/fixtures/composes.ts
vendored
|
|
@ -689,6 +689,7 @@ export const mockStatus = (composeId: string): ComposeStatus => {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'd4b6d3db-bd15-4750-98c0-667f42995566',
|
||||
rhsm: false,
|
||||
},
|
||||
],
|
||||
|
|
@ -752,6 +753,7 @@ export const mockStatus = (composeId: string): ComposeStatus => {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'dbad4dfc-1547-45f8-b5af-1d7fec0476c6',
|
||||
rhsm: false,
|
||||
},
|
||||
{
|
||||
|
|
@ -760,6 +762,7 @@ export const mockStatus = (composeId: string): ComposeStatus => {
|
|||
check_gpg: false,
|
||||
check_repo_gpg: false,
|
||||
gpgkey: '',
|
||||
id: '9cf1d45d-aa06-46fe-87ea-121845cc6bbb',
|
||||
rhsm: false,
|
||||
},
|
||||
],
|
||||
|
|
@ -1311,6 +1314,7 @@ export const mockComposesRecreateImage = {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'd4b6d3db-bd15-4750-98c0-667f42995566',
|
||||
rhsm: false,
|
||||
},
|
||||
{
|
||||
|
|
@ -1319,6 +1323,7 @@ export const mockComposesRecreateImage = {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'dbad4dfc-1547-45f8-b5af-1d7fec0476c6',
|
||||
rhsm: false,
|
||||
},
|
||||
],
|
||||
|
|
@ -1381,6 +1386,7 @@ export const mockComposesRecreateImage = {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'dbad4dfc-1547-45f8-b5af-1d7fec0476c6',
|
||||
rhsm: false,
|
||||
},
|
||||
{
|
||||
|
|
@ -1389,6 +1395,7 @@ export const mockComposesRecreateImage = {
|
|||
check_gpg: false,
|
||||
check_repo_gpg: false,
|
||||
gpgkey: '',
|
||||
id: '9cf1d45d-aa06-46fe-87ea-121845cc6bbb',
|
||||
rhsm: false,
|
||||
},
|
||||
|
||||
|
|
@ -1399,6 +1406,7 @@ export const mockComposesRecreateImage = {
|
|||
gpg_key: [
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v2.0.22 (GNU/Linux)\n\nmQENBE5OMmIBCAD+FPYKGriGGf7NqwKfWC83cBV01gabgVWQmZbMcFzeW+hMsgxH\nW6iimD0RsfZ9oEbfJCPG0CRSZ7ppq5pKamYs2+EJ8Q2ysOFHHwpGrA2C8zyNAs4I\nQxnZZIbETgcSwFtDun0XiqPwPZgyuXVm9PAbLZRbfBzm8wR/3SWygqZBBLdQk5TE\nfDR+Eny/M1RVR4xClECONF9UBB2ejFdI1LD45APbP2hsN/piFByU1t7yK2gpFyRt\n97WzGHn9MV5/TL7AmRPM4pcr3JacmtCnxXeCZ8nLqedoSuHFuhwyDnlAbu8I16O5\nXRrfzhrHRJFM1JnIiGmzZi6zBvH0ItfyX6ttABEBAAG0KW5naW54IHNpZ25pbmcg\na2V5IDxzaWduaW5nLWtleUBuZ2lueC5jb20+iQE+BBMBAgAoAhsDBgsJCAcDAgYV\nCAIJCgsEFgIDAQIeAQIXgAUCV2K1+AUJGB4fQQAKCRCr9b2Ce9m/YloaB/9XGrol\nkocm7l/tsVjaBQCteXKuwsm4XhCuAQ6YAwA1L1UheGOG/aa2xJvrXE8X32tgcTjr\nKoYoXWcdxaFjlXGTt6jV85qRguUzvMOxxSEM2Dn115etN9piPl0Zz+4rkx8+2vJG\nF+eMlruPXg/zd88NvyLq5gGHEsFRBMVufYmHtNfcp4okC1klWiRIRSdp4QY1wdrN\n1O+/oCTl8Bzy6hcHjLIq3aoumcLxMjtBoclc/5OTioLDwSDfVx7rWyfRhcBzVbwD\noe/PD08AoAA6fxXvWjSxy+dGhEaXoTHjkCbz/l6NxrK3JFyauDgU4K4MytsZ1HDi\nMgMW8hZXxszoICTTiQEcBBABAgAGBQJOTkelAAoJEKZP1bF62zmo79oH/1XDb29S\nYtWp+MTJTPFEwlWRiyRuDXy3wBd/BpwBRIWfWzMs1gnCjNjk0EVBVGa2grvy9Jtx\nJKMd6l/PWXVucSt+U/+GO8rBkw14SdhqxaS2l14v6gyMeUrSbY3XfToGfwHC4sa/\nThn8X4jFaQ2XN5dAIzJGU1s5JA0tjEzUwCnmrKmyMlXZaoQVrmORGjCuH0I0aAFk\nRS0UtnB9HPpxhGVbs24xXZQnZDNbUQeulFxS4uP3OLDBAeCHl+v4t/uotIad8v6J\nSO93vc1evIje6lguE81HHmJn9noxPItvOvSMb2yPsE8mH4cJHRTFNSEhPW6ghmlf\nWa9ZwiVX5igxcvaIRgQQEQIABgUCTk5b0gAKCRDs8OkLLBcgg1G+AKCnacLb/+W6\ncflirUIExgZdUJqoogCeNPVwXiHEIVqithAM1pdY/gcaQZmIRgQQEQIABgUCTk5f\nYQAKCRCpN2E5pSTFPnNWAJ9gUozyiS+9jf2rJvqmJSeWuCgVRwCcCUFhXRCpQO2Y\nVa3l3WuB+rgKjsQ=\n=EWWI\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
],
|
||||
id: 'f087f9ad-dfe6-4627-9d53-447d1a997de5',
|
||||
rhsm: false,
|
||||
module_hotfixes: true,
|
||||
},
|
||||
|
|
|
|||
2
src/test/fixtures/customizations.ts
vendored
2
src/test/fixtures/customizations.ts
vendored
|
|
@ -28,6 +28,7 @@ export const customizations: Customizations = {
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'dbad4dfc-1547-45f8-b5af-1d7fec0476c6',
|
||||
rhsm: false,
|
||||
},
|
||||
{
|
||||
|
|
@ -35,6 +36,7 @@ export const customizations: Customizations = {
|
|||
'http://mirror.stream.centos.org/SIGs/9/kmods/x86_64/packages-main/',
|
||||
rhsm: false,
|
||||
check_gpg: false,
|
||||
id: '9cf1d45d-aa06-46fe-87ea-121845cc6bbb',
|
||||
},
|
||||
],
|
||||
filesystem: [
|
||||
|
|
|
|||
1
src/test/fixtures/editMode.ts
vendored
1
src/test/fixtures/editMode.ts
vendored
|
|
@ -96,6 +96,7 @@ export const expectedPayloadRepositories: Repository[] = [
|
|||
check_repo_gpg: false,
|
||||
gpgkey:
|
||||
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGN9300BEAC1FLODu0cL6saMMHa7yJY1JZUc+jQUI/HdECQrrsTaPXlcc7nM\nykYMMv6amPqbnhH/R5BW2Ano+OMse+PXtUr0NXU4OcvxbnnXkrVBVUf8mXI9DzLZ\njw8KoD+4/s0BuzO78zAJF5uhuyHMAK0ll9v0r92kK45Fas9iZTfRFcqFAzvgjScf\n5jeBnbRs5U3UTz9mtDy802mk357o1A8BD0qlu3kANDpjLbORGWdAj21A6sMJDYXy\nHS9FBNV54daNcr+weky2L9gaF2yFjeu2rSEHCSfkbWfpSiVUx/bDTj7XS6XDOuJT\nJqvGS8jHqjHAIFBirhCA4cY/jLKxWyMr5N6IbXpPAYgt8/YYz2aOYVvdyB8tZ1u1\nkVsMYSGcvTBexZCn1cDkbO6I+waIlsc0uxGqUGBKF83AVYCQqOkBjF1uNnu9qefE\nkEc9obr4JZsAgnisboU25ss5ZJddKlmFMKSi66g4S5ChLEPFq7MB06PhLFioaD3L\nEXza7XitoW5VBwr0BSVKAHMC0T2xbm70zY06a6gQRlvr9a10lPmv4Tptc7xgQReg\nu1TlFPbrkGJ0d8O6vHQRAd3zdsNaVr4gX0Tg7UYiqT9ZUkP7hOc8PYXQ28hHrHTB\nA63MTq0aiPlJ/ivTuX8M6+Bi25dIV6N6IOUi/NQKIYxgovJCDSdCAAM0fQARAQAB\ntCFMdWNhcyBHYXJmaWVsZCA8bHVjYXNAcmVkaGF0LmNvbT6JAlcEEwEIAEEWIQTO\nQZeiHnXqdjmfUURc6PeuecS2PAUCY33fTQIbAwUJA8JnAAULCQgHAgIiAgYVCgkI\nCwIEFgIDAQIeBwIXgAAKCRBc6PeuecS2PCk3D/9jW7xrBB/2MQFKd5l+mNMFyKwc\nL9M/M5RFI9GaQRo55CwnPb0nnxOJR1V5GzZ/YGii53H2ose65CfBOE2L/F/RvKF0\nH9S9MInixlahzzKtV3TpDoZGk5oZIHEMuPmPS4XaHggolrzExY0ib0mQuBBE/uEV\n/HlyHEunBKPhTkAe+6Q+2dl22SUuVfWr4Uzlp65+DkdN3M37WI1a3Suhnef3rOSM\nV6puUzWRR7qcYs5C2In87AcYPn92P5ur1y/C32r8Ftg3fRWnEzI9QfRG52ojNOLK\nyGQ8ZC9PGe0q7VFcF7ridT/uzRU+NVKldbJg+rvBnszb1MjNuR7rUQHyvGmbsUVQ\nRCsgdovkee3lP4gfZHzk2SSLVSo0+NJRNaM90EmPk14Pgi/yfRSDGBVvLBbEanYI\nv1ZtdIPRyKi+/IaMOu/l7nayM/8RzghdU+0f1FAif5qf9nXuI13P8fqcqfu67gNd\nkh0UUF1XyR5UHHEZQQDqCuKEkZJ/+27jYlsG1ZiLb1odlIWoR44RP6k5OJl0raZb\nyLXbAfpITsXiJJBpCam9P9+XR5VSfgkqp5hIa7J8piN3DoMpoExg4PPQr6PbLAJy\nOUCOnuB7yYVbj0wYuMXTuyrcBHh/UymQnS8AMpQoEkCLWS/A/Hze/pD23LgiBoLY\nXIn5A2EOAf7t2IMSlA==\n=OanT\n-----END PGP PUBLIC KEY BLOCK-----',
|
||||
id: 'ae39f556-6986-478a-95d1-f9c7e33d066c',
|
||||
rhsm: false,
|
||||
},
|
||||
];
|
||||
|
|
|
|||
2
src/test/fixtures/repositories.ts
vendored
2
src/test/fixtures/repositories.ts
vendored
|
|
@ -108,7 +108,7 @@ const testingRepos: ApiRepositoryResponseRead[] = [
|
|||
snapshot: true,
|
||||
},
|
||||
{
|
||||
uuid: 'ae39f556-6986-478a-95d1-f9c7e33d066c',
|
||||
uuid: 'b77cc1a0-91ec-4d64-bb6d-21717737ea3c',
|
||||
name: '02-test-invalid-repo',
|
||||
url: 'http://invalid.link.to.repo.org/x86_64/',
|
||||
distribution_versions: ['9'],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue