Skip to content

Commit

Permalink
Use factories in test and Storybook
Browse files Browse the repository at this point in the history
  • Loading branch information
jamie-suse committed May 22, 2024
1 parent ec8937b commit 1dde68d
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 169 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ function UpgradablePackagesList({
key: 'patches',
render: (content, { to_package_id }) => (
<div>
{content.map(({ advisory }) => (
<div key={`${to_package_id}-${advisory}`}>{advisory}</div>
{content.map(({ advisory_name }) => (
<div key={`${to_package_id}-${advisory_name}`}>
{advisory_name}
</div>
))}
</div>
),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { upgradablePackageFactory } from '@lib/test-utils/factories/upgradablePackage';
import UpgradablePackagesList from './UpgradablePackagesList';

export default {
Expand All @@ -21,137 +22,6 @@ export default {
export const Default = {
args: {
hostname: 'Example Host',
upgradablePackages: [
{
from_epoch: ' ',
to_release: '150100.8.33.1',
name: 'saptune',
from_release: '150400.3.208.1',
to_epoch: ' ',
arch: 'x86_64',
to_package_id: 39942,
from_version: '3.1.0',
to_version: '3.1.2',
from_arch: 'x86_64',
to_arch: 'x86_64',
patches: [
{
issue_date: '2023-05-30',
last_modified_date: '2023-05-30',
advisory: 'SUSE-15-SP4-2023-2317',
type: 'bugfix',
synopsis: 'Recommended update for util-linux',
update_date: '2023-05-30',
},
{
issue_date: '2024-03-13',
last_modified_date: '2024-03-13',
advisory: 'SUSE-15-SP4-2024-877',
type: 'security_advisory',
synopsis: 'important: Security update for sudo',
update_date: '2024-03-13',
},
{
issue_date: '2024-03-13',
last_modified_date: '2024-03-13',
advisory: 'SUSE-15-SP4-2024-871',
type: 'security_advisory',
synopsis: 'important: Security update for vim',
update_date: '2024-03-13',
},
],
},
{
from_epoch: ' ',
to_release: '150300.3.30.1',
name: 'openssh-server',
from_release: '150300.3.15.4',
to_epoch: ' ',
arch: 'x86_64',
to_package_id: 39543,
from_version: '8.4p1',
to_version: '8.4p1',
from_arch: 'x86_64',
to_arch: 'x86_64',
patches: [
{
issue_date: '2024-03-11',
last_modified_date: '2024-03-11',
advisory: 'SUSE-15-SP4-2024-833',
type: 'security_advisory',
synopsis: 'moderate: Security update for openssl-1_1',
update_date: '2024-03-11',
},
],
},
{
from_epoch: ' ',
to_release: '150400.6.10.1',
name: 'libQt5Network5',
from_release: '150400.6.3.1',
to_epoch: ' ',
arch: 'x86_64',
to_package_id: 38289,
from_version: '5.15.2+kde294',
to_version: '5.15.2+kde294',
from_arch: 'x86_64',
to_arch: 'x86_64',
patches: [],
},
{
from_epoch: ' ',
to_release: '150300.10.51.1',
name: 'libpython3_6m1_0',
from_release: '150300.10.40.1',
to_epoch: ' ',
arch: 'x86_64',
to_package_id: 36262,
from_version: '3.6.15',
to_version: '3.6.15',
from_arch: 'x86_64',
to_arch: 'x86_64',
patches: [
{
issue_date: '2023-03-22',
last_modified_date: '2023-03-22',
advisory: 'SUSE-15-SP4-2023-868',
type: 'security_advisory',
synopsis: 'important: Security update for python3',
update_date: '2023-03-22',
},
],
},
{
from_epoch: ' ',
to_release: '150400.6.10.1',
name: 'libQt5Gui5',
from_release: '150400.6.3.1',
to_epoch: ' ',
arch: 'x86_64',
to_package_id: 38391,
from_version: '5.15.2+kde294',
to_version: '5.15.2+kde294',
from_arch: 'x86_64',
to_arch: 'x86_64',
patches: [
{
issue_date: '2024-03-13',
last_modified_date: '2024-03-13',
advisory: 'SUSE-15-SP4-2024-870',
type: 'security_advisory',
synopsis: 'moderate: Security update for glibc',
update_date: '2024-03-13',
},
{
issue_date: '2024-02-28',
last_modified_date: '2024-02-28',
advisory: 'SUSE-15-SP4-2024-641',
type: 'bugfix',
synopsis: 'Recommended update for gcc7',
update_date: '2024-02-28',
},
],
},
],
upgradablePackages: upgradablePackageFactory.buildList(4),
},
};
Original file line number Diff line number Diff line change
@@ -1,43 +1,15 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import '@testing-library/jest-dom';
import { faker } from '@faker-js/faker';
import { upgradablePackageFactory } from '@lib/test-utils/factories/upgradablePackage';
import UpgradablePackagesList from './UpgradablePackagesList';

describe('UpgradablePackagesList component', () => {
it('should render the upgradable packages list', () => {
const hostname = 'Example Host';
const patches = [
{
issue_date: '2024-03-13',
last_modified_date: '2024-03-13',
advisory: 'SUSE-15-SP4-2024-870',
type: 'security_advisory',
synopsis: 'moderate: Security update for glibc',
update_date: '2024-03-13',
},
{
issue_date: '2024-02-28',
last_modified_date: '2024-02-28',
advisory: 'SUSE-15-SP4-2024-641',
type: 'bugfix',
synopsis: 'Recommended update for gcc7',
update_date: '2024-02-28',
},
];
const upgradablePackage = {
from_epoch: ' ',
to_release: '150400.6.10.1',
name: 'libQt5Gui5',
from_release: '150400.6.3.1',
to_epoch: ' ',
arch: 'x86_64',
to_package_id: 38391,
from_version: '5.15.2+kde294',
to_version: '5.15.2+kde294',
from_arch: 'x86_64',
to_arch: 'x86_64',
patches,
};
const hostname = faker.company.buzzNoun();
const upgradablePackage = upgradablePackageFactory.build();
const { patches } = upgradablePackage;

const expectedInstalledPackage = `${upgradablePackage.name}-${upgradablePackage.from_version}-${upgradablePackage.from_release}.${upgradablePackage.arch}`;
const expectedLatestPackage = `${upgradablePackage.name}-${upgradablePackage.to_version}-${upgradablePackage.to_release}.${upgradablePackage.arch}`;
Expand All @@ -52,8 +24,8 @@ describe('UpgradablePackagesList component', () => {
expect(screen.getByText(hostname)).toBeVisible();
expect(screen.getByText(expectedInstalledPackage)).toBeVisible();
expect(screen.getByText(expectedLatestPackage)).toBeVisible();
patches.forEach(({ advisory }) => {
expect(screen.getByText(advisory)).toBeVisible();
patches.forEach(({ advisory_name }) => {
expect(screen.getByText(advisory_name)).toBeVisible();
});
});
});
21 changes: 21 additions & 0 deletions assets/js/lib/test-utils/factories/upgradablePackage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { faker } from '@faker-js/faker';
import { Factory } from 'fishery';
import { relevantPatchFactory } from './relevantPatches';

const releaseVersionFactory = () =>
`${faker.number.int({ min: 100000, max: 160000 })}.${faker.system.semver()}`;

export const upgradablePackageFactory = Factory.define(() => ({
from_epoch: faker.date.anytime(),
to_release: releaseVersionFactory(),
name: faker.company.buzzNoun(),
from_release: releaseVersionFactory(),
to_epoch: faker.date.anytime(),
arch: faker.airline.flightNumber(),
to_package_id: faker.number.int({ min: 2000, max: 5000 }),
from_version: faker.system.semver(),
to_version: faker.system.semver(),
from_arch: faker.airline.flightNumber(),
to_arch: faker.airline.flightNumber(),
patches: relevantPatchFactory.buildList(2),
}));

0 comments on commit 1dde68d

Please sign in to comment.