import React from 'react';
import { render } from 'react-testing-lib-wrapper';
import * as hooks from 'foremanReact/components/PF4/TableIndexPage/Table/TableHooks';
import ContentViewDetailsCard from '../ContentViewDetailsCard';
const baseHostDetails = {
organization_id: 1,
content_facet_attributes: {
content_view: {
name: 'CV',
id: 100,
composite: false,
content_view_default: false,
},
lifecycle_environment: {
name: 'ENV',
id: 300,
},
content_view_version_id: 1000,
content_view_version: '1.0',
content_view_version_latest: true,
content_view_environments: [
{
content_view: {
name: 'CV',
id: 100,
composite: false,
content_view_default: false,
content_view_version_id: 1000,
content_view_version: '1.0',
content_view_version_latest: true,
},
lifecycle_environment: {
name: 'ENV',
id: 300,
},
},
],
},
subscription_facet_attributes: {
uuid: '123',
},
};
beforeEach(() => {
jest.spyOn(hooks, 'useUrlParams').mockImplementation(() => ({}));
});
test('shows content view details when host is registered', () => {
const { getByText } = render();
expect(getByText('Version {version} (latest)')).toBeInTheDocument();
});
test('does not show content view details when host is not registered', () => {
const hostDetails = {
...baseHostDetails,
subscription_facet_attributes: undefined,
};
const { queryByText } = render();
expect(queryByText('Version {version}')).toBeNull();
});
test('shows when the CV in use is not the latest version', () => {
const hostDetails = {
...baseHostDetails,
content_facet_attributes: {
...baseHostDetails.content_facet_attributes,
content_view_environments: [
{
content_view: {
...baseHostDetails.content_facet_attributes.content_view_environments[0].content_view,
content_view_version_latest: false,
},
lifecycle_environment: baseHostDetails.content_facet_attributes.lifecycle_environment,
},
],
},
};
const { getByText, queryByText } = render();
expect(getByText('Version {version}')).toBeInTheDocument();
expect(queryByText('Version {version} (latest)')).toBeNull();
});
test('does not show version info when using Default Organization View', () => {
const hostDetails = {
...baseHostDetails,
content_facet_attributes: {
...baseHostDetails.content_facet_attributes,
content_view_environments: [
{
content_view: {
...baseHostDetails.content_facet_attributes.content_view_environments[0].content_view,
content_view_default: true,
name: 'Default Organization View',
},
lifecycle_environment: baseHostDetails.content_facet_attributes.lifecycle_environment,
},
],
},
};
const { queryByText } = render();
expect(queryByText('Default Organization View')).toBeInTheDocument();
expect(queryByText('Version {version}')).toBeNull();
});